第5章MCS-51單片機(jī)輸入輸出口_第1頁(yè)
第5章MCS-51單片機(jī)輸入輸出口_第2頁(yè)
第5章MCS-51單片機(jī)輸入輸出口_第3頁(yè)
第5章MCS-51單片機(jī)輸入輸出口_第4頁(yè)
第5章MCS-51單片機(jī)輸入輸出口_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、外外界界CPU內(nèi)核內(nèi)核SFR(21)外圍應(yīng)用模塊外圍應(yīng)用模塊(功能部件)(功能部件)軟件軟件讀讀/寫(xiě)寫(xiě)硬件硬件映射映射用戶編程用戶編程自動(dòng)對(duì)應(yīng)自動(dòng)對(duì)應(yīng)I/O引腳引腳人機(jī)交互手段人機(jī)交互手段第五章第五章 MCS-51單片機(jī)輸入單片機(jī)輸入/輸出口輸出口(并行(并行I/O口)口) 本講內(nèi)容提要本講內(nèi)容提要:5.0、并行、并行I/O口概述口概述5.1、并行、并行I/O口的功能和內(nèi)部結(jié)構(gòu)口的功能和內(nèi)部結(jié)構(gòu)5.2、并行、并行I/O口編程方法口編程方法5.3、并行、并行I/O口基本應(yīng)用口基本應(yīng)用 I/O端口,即端口,即輸入輸入/輸出輸出端口,是端口,是微控制器(微控制器(MCU)同外界進(jìn)行交互的重要通道。同

2、外界進(jìn)行交互的重要通道。5.0 并行并行I/O口概述口概述 輸入端口:輸入端口:負(fù)責(zé)從外界接收檢測(cè)信號(hào)、鍵盤(pán)信負(fù)責(zé)從外界接收檢測(cè)信號(hào)、鍵盤(pán)信號(hào)等各種開(kāi)關(guān)信號(hào)。號(hào)等各種開(kāi)關(guān)信號(hào)。 輸出端口:輸出端口:負(fù)責(zé)向外界輸送內(nèi)部電路產(chǎn)生的處負(fù)責(zé)向外界輸送內(nèi)部電路產(chǎn)生的處理結(jié)果、顯示信息、控制命令、驅(qū)動(dòng)信號(hào)等。理結(jié)果、顯示信息、控制命令、驅(qū)動(dòng)信號(hào)等。 作用作用DIP40P0P0口口P2P2口口P1P1口口P3P3口口書(shū)書(shū)P24D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻輸出電路:一個(gè)輸出電路:一個(gè)D觸發(fā)器、一個(gè)場(chǎng)效應(yīng)管觸發(fā)器、一

3、個(gè)場(chǎng)效應(yīng)管輸入電路:兩個(gè)三態(tài)門(mén)輸入電路:兩個(gè)三態(tài)門(mén)5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu)基本模型基本模型D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻內(nèi)部總線內(nèi)部總線特點(diǎn):特點(diǎn): PX口口可以單根輸入輸出,也可以并行輸入輸出??梢詥胃斎胼敵?,也可以并行輸入輸出。控制控制總

4、線總線數(shù)據(jù)數(shù)據(jù)總線總線5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu)基本模型基本模型5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu)工作原理工作原理011001導(dǎo)通導(dǎo)通D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻NPN特點(diǎn):特點(diǎn):(1)PX口口做數(shù)字輸出時(shí)做數(shù)字輸出時(shí),輸出數(shù)據(jù)是通過(guò)寫(xiě)輸出數(shù)據(jù)是通過(guò)寫(xiě)SFR區(qū)區(qū)PX寄存器實(shí)現(xiàn)。寄存器實(shí)現(xiàn)。(2)PX口具有輸出鎖存功能。口具有輸出鎖存功能。P0P0口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口一位輸出CLR P0.XS

5、ETB P0.XMOV P0.X,C并行輸出MOV P0,#data截至截至?xí)鴷?shū)P21基本的數(shù)字輸出原理基本的數(shù)字輸出原理010導(dǎo)通導(dǎo)通截止截止011D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻NPN特點(diǎn):特點(diǎn):(1)PX口口做數(shù)字輸入時(shí),輸入數(shù)據(jù)是通過(guò)讀做數(shù)字輸入時(shí),輸入數(shù)據(jù)是通過(guò)讀PX寄存器采集寄存器采集。(2)PX口具有輸入緩沖功能。口具有輸入緩沖功能。 (3)PX口口做數(shù)字輸入時(shí),需先輸出做數(shù)字輸入時(shí),需先輸出“1”使場(chǎng)效應(yīng)管截止,保證輸入信號(hào)能被正常采集。使場(chǎng)效應(yīng)管截止,保證輸入信號(hào)能被正常采集。P0P0

6、口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口MOV P0 ,0 xFF一位輸入MC, P0.X并行輸入MOV A,P05.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu)工作原理工作原理基本的數(shù)字輸入原理基本的數(shù)字輸入原理D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vcc(1)P0口口(P0.0P0.7,39腳腳32腳腳)引腳引腳N-FETP-FET地址地址/ /數(shù)據(jù)數(shù)據(jù)控制控制MUXP0.xPNPNPN10截止截止截止截止封鎖封鎖10截至截至輸出極輸出極開(kāi)路開(kāi)路0101解封解封011導(dǎo)通導(dǎo)通100特點(diǎn):特

7、點(diǎn):(1)P0口引腳作基本的口引腳作基本的I/O用時(shí),因輸出用時(shí),因輸出“1”時(shí)漏極開(kāi)路,需外接上拉電阻以保證輸出時(shí)漏極開(kāi)路,需外接上拉電阻以保證輸出“1” 。(2)P0口引腳作總線地址口引腳作總線地址/數(shù)據(jù)的數(shù)據(jù)的I/0用時(shí),采用推挽式輸出電路,驅(qū)動(dòng)能力更強(qiáng)。用時(shí),采用推挽式輸出電路,驅(qū)動(dòng)能力更強(qiáng)。推挽式輸出電路并行輸出MOVX DPTR,AMOVX Ri,A并行輸入MOVX A,DPTRMOVX A, Ri vcc外接上外接上拉電阻拉電阻導(dǎo)通導(dǎo)通5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu) 一條一條P0端口引腳內(nèi)部邏輯電路圖端口引腳內(nèi)部邏輯電路圖P1.x(2) P1口口(P1.0P1.7,1腳腳

8、8腳腳)D QCLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內(nèi)部上內(nèi)部上拉電阻拉電阻5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu) 一條一條P1端口引腳內(nèi)部邏輯電路圖端口引腳內(nèi)部邏輯電路圖地址地址D QCLK QMUX讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳控制控制 一條一條P2端口引腳內(nèi)部邏輯電路圖端口引腳內(nèi)部邏輯電路圖引腳引腳P2.x(3)P2口口(P2.0P2.7,21腳腳28腳腳)vccN-FET00導(dǎo)通導(dǎo)通010110截止截止1101并行輸出MOVX DPTR,AMOVX Ri,A5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu)D Q

9、CLK Q讀讀鎖存器鎖存器內(nèi)部總線內(nèi)部總線寫(xiě)寫(xiě)鎖存器鎖存器讀讀引腳引腳引腳引腳P3.xvcc(4)P3口口(P3.0P3.7,10腳腳17腳腳)第第2功能功能輸出輸出第第2功能功能輸入輸入N-FET1開(kāi)放開(kāi)放0001導(dǎo)通導(dǎo)通截止截止11001開(kāi)放開(kāi)放5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu) 一條一條P3端口引腳內(nèi)部邏輯電路圖端口引腳內(nèi)部邏輯電路圖pPX口的輸入輸出操作是通過(guò)對(duì)口的輸入輸出操作是通過(guò)對(duì)SFR區(qū)對(duì)應(yīng)的特殊功能寄存區(qū)對(duì)應(yīng)的特殊功能寄存器器PX進(jìn)行讀寫(xiě)操作來(lái)實(shí)現(xiàn)。即給進(jìn)行讀寫(xiě)操作來(lái)實(shí)現(xiàn)。即給PX寄存器寫(xiě)數(shù)據(jù)完成寄存器寫(xiě)數(shù)據(jù)完成PX口信號(hào)的輸出,讀取口信號(hào)的輸出,讀取PX寄存器的數(shù)據(jù)就完成

10、寄存器的數(shù)據(jù)就完成PX口信號(hào)的輸口信號(hào)的輸入。入。pPX口既可以并行輸入口既可以并行輸入/輸出,也可以單獨(dú)一根輸出,也可以單獨(dú)一根I/O引腳輸入引腳輸入/輸出。即讀寫(xiě)輸出。即讀寫(xiě)PX寄存器完成寄存器完成PX口的并行輸入口的并行輸入/輸出,讀輸出,讀寫(xiě)寫(xiě)PX寄存器的某位寄存器的某位PX.X完成完成PX.X引腳的輸入引腳的輸入/輸出。輸出。pPX口做輸入口時(shí)需要做一次性初始化操作,先做偽輸出??谧鲚斎肟跁r(shí)需要做一次性初始化操作,先做偽輸出。實(shí)現(xiàn)方法為先把實(shí)現(xiàn)方法為先把PX口做輸出口且輸出高電平,即先給口做輸出口且輸出高電平,即先給PX寄寄存器寫(xiě)存器寫(xiě)0XFF。pPX口有輸出數(shù)據(jù)鎖存、輸入數(shù)據(jù)緩沖的

11、功能??谟休敵鰯?shù)據(jù)鎖存、輸入數(shù)據(jù)緩沖的功能。P0口內(nèi)部電口內(nèi)部電路無(wú)上拉電阻,因此使用該口做輸出時(shí)必須外接上拉電阻。路無(wú)上拉電阻,因此使用該口做輸出時(shí)必須外接上拉電阻。5.1 I/O端口內(nèi)部結(jié)構(gòu)端口內(nèi)部結(jié)構(gòu)基本特性總結(jié)基本特性總結(jié)P0P0口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口書(shū)書(shū)P215.2 I/O并行端口編程方法并行端口編程方法輸出匯編語(yǔ)言C語(yǔ)言一位輸出CLR P0.0 或CLR C MOV P0.0,CSETB P0.0 或SETB C MOV P0.0,Csbit P0_0=0X80; 或 sfr P0=0X80

12、; sbit P0_0=P00;P0_0=0; /輸出0P0_0=1; /輸出1并行輸出MOV P0,#datasfr P0=0X80;P0=data; /輸出data書(shū)書(shū)P21輸入?yún)R編語(yǔ)言C語(yǔ)言一位輸入SETB P0.0MOV C, P0.0sbit P0_0=0X80; 或 sfr P0=0X80; sbit P0_0=P00;bit flag;P0_0=1; /輸入口線初始化flag=P0_0;(或做條件表達(dá)式)/讀取輸入口線并行輸入MOV P0,#0XFFMOV A, P0sfr P0=0X80;unsigned char data buffer;P0=0XFF; /輸入口線初始化bu

13、ffer=P0;(或做條件表達(dá)式 ) /讀取輸入口線P0P0口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口5.2 I/O并行端口編程方法并行端口編程方法51單片機(jī)最小系統(tǒng)電路原型+5V123J1DC/AC_9V+C4470uF+C6220uFC70.1uF+5VD2POWER+312-4D1DQ123VVGNDINOUTU2LM7805C50.1uFR310K+5VC110uF+5VRSTR1200R210KC220PC320PY112MHzAT89S51RST9XTAL218XTAL119GND20P2.0(A8)21P2.

14、1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN29ALE(PROG)30EA(VPP)31P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)39VCC40P1.01P1.12P1.23P1.34P1.45P1.5(MOSI)6P1.6(MISO)7P1.7(SCK)8P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(

15、T0)14P3.5(T1)15P3.6(WR)16P3.7(RO)17U1復(fù)復(fù)位位電電路路電電源源電電路路時(shí)時(shí)鐘鐘電電路路5.3 I/O端口應(yīng)用端口應(yīng)用(參考材料參考材料)參考資料部分參考資料部分無(wú)源晶振(無(wú)源晶振(Crystal )瓷片電容瓷片電容電解電容電解電容常開(kāi)按鈕常開(kāi)按鈕發(fā)光二極管發(fā)光二極管方形整流橋方形整流橋圓形整流橋圓形整流橋直流電源插座直流電源插座穩(wěn)壓器穩(wěn)壓器78055151單片機(jī)實(shí)驗(yàn)板單片機(jī)實(shí)驗(yàn)板5.3 I/O端口基本應(yīng)用端口基本應(yīng)用發(fā)光二極管發(fā)光二極管LED數(shù)碼管數(shù)碼管LED點(diǎn)陣點(diǎn)陣按鍵開(kāi)關(guān)按鍵開(kāi)關(guān)鍵盤(pán)鍵盤(pán)蜂鳴器蜂鳴器LCD液晶顯示器液晶顯示器生活中的應(yīng)用實(shí)例生活中的應(yīng)用實(shí)

16、例LEDLED夜景夜景裝飾裝飾LEDLED燈飾燈飾LEDLED廣告燈廣告燈LEDLED燈花燈花LEDLED發(fā)光二極管相關(guān)知識(shí)發(fā)光二極管相關(guān)知識(shí)1、元件外形、元件外形2、元件電路符號(hào)、元件電路符號(hào)3、應(yīng)用電路、應(yīng)用電路I/O引腳vccGNDI/O引腳(1) 高電平驅(qū)動(dòng)高電平驅(qū)動(dòng)(2) 低電平驅(qū)動(dòng)低電平驅(qū)動(dòng)拉電流拉電流灌電流灌電流正極正極負(fù)極負(fù)極10亮亮亮亮內(nèi)部結(jié)構(gòu)機(jī)械式觸點(diǎn)式按鍵開(kāi)關(guān)相關(guān)知識(shí)機(jī)械式觸點(diǎn)式按鍵開(kāi)關(guān)相關(guān)知識(shí)1、元件外形、元件外形2、元件電路符號(hào)、元件電路符號(hào)3、應(yīng)用電路、應(yīng)用電路1按下按下松開(kāi)松開(kāi)0按下按下松開(kāi)松開(kāi)10VCCI/O引腳方法一VCCI/O引腳方法二去抖動(dòng)措施:去抖動(dòng)措施

17、:鍵數(shù)較少時(shí),鍵數(shù)較少時(shí),采用硬件去抖采用硬件去抖;鍵數(shù)較多時(shí),鍵數(shù)較多時(shí),采用軟件去抖采用軟件去抖。 觸點(diǎn)式按鍵的機(jī)械抖動(dòng)波形機(jī)械式觸點(diǎn)式按鍵開(kāi)關(guān)相關(guān)知識(shí)機(jī)械式觸點(diǎn)式按鍵開(kāi)關(guān)相關(guān)知識(shí)4、抖動(dòng)問(wèn)題及去抖動(dòng)措施、抖動(dòng)問(wèn)題及去抖動(dòng)措施VCCI/O引腳X 位位X 段數(shù)碼管段數(shù)碼管LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)1、LED數(shù)碼管外形數(shù)碼管外形8段段LED顯示的數(shù)字和字母顯示的數(shù)字和字母LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)1、8段段LED外形外形2、8段段LED管腳分布管腳分布內(nèi)部結(jié)構(gòu)圖COM引腳接低電平引腳接低電平高電平驅(qū)動(dòng)筆段亮高電平驅(qū)動(dòng)筆段亮共陰LED共陽(yáng)LEDCOM引腳接低電平引腳接

18、低電平低電平驅(qū)動(dòng)筆段亮低電平驅(qū)動(dòng)筆段亮LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)3、8段段LED內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)靜態(tài)顯示電路3、應(yīng)用電路、應(yīng)用電路LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)優(yōu)點(diǎn):顯示程序十分簡(jiǎn)單,顯示亮度大,節(jié)約優(yōu)點(diǎn):顯示程序十分簡(jiǎn)單,顯示亮度大,節(jié)約CPU的工作時(shí)間的工作時(shí)間缺點(diǎn):占用的缺點(diǎn):占用的I/O口線較多,硬件成本較高??诰€較多,硬件成本較高。I/O(1)I/O(2)dpabcdefgdpabcdefgcomdpdpabcdefgdpabcdefgcomdp筆段筆段控制控制筆段筆段控制控制共陽(yáng)極共陽(yáng)極LED靜態(tài)顯示電路4、應(yīng)用電路、應(yīng)用電路LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管

19、相關(guān)知識(shí)I/O(1)I/O(2)dpabcdefgdpabcdefgcomdpdpabcdefgdpabcdefgcomdp筆段筆段控制控制筆段筆段控制控制共陰極共陰極LED送顯示數(shù)據(jù)送顯示數(shù)據(jù)1筆段碼筆段碼送顯示數(shù)據(jù)送顯示數(shù)據(jù)2筆段碼筆段碼動(dòng)態(tài)掃描顯示電路3、應(yīng)用電路、應(yīng)用電路LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)優(yōu)點(diǎn):顯示程序較復(fù)雜,顯示亮度小,浪費(fèi)優(yōu)點(diǎn):顯示程序較復(fù)雜,顯示亮度小,浪費(fèi)CPU的工作時(shí)間的工作時(shí)間缺點(diǎn):占用的缺點(diǎn):占用的I/O口線較少,硬件成本較低??诰€較少,硬件成本較低。dpabcdefgdpabcdefgcomdpI/O(1)I/O(2)dpabcdefgdpabcd

20、efgcomdpdpabcdefgdpabcdefgcomdp筆段筆段控制控制位選位選控制控制送位選通碼送位選通碼選通一位選通一位LED送顯示數(shù)據(jù)送顯示數(shù)據(jù)筆段碼筆段碼延時(shí)延時(shí)5.3 I/O口應(yīng)用鍵控?zé)?如圖如圖P0口是口是8個(gè)獨(dú)立個(gè)獨(dú)立鍵鍵的的輸入口,輸入口,P1口口是是8 8個(gè)個(gè)LED發(fā)光管發(fā)光管驅(qū)驅(qū)動(dòng)動(dòng)口。任務(wù)要求,按下鍵,對(duì)應(yīng)的口。任務(wù)要求,按下鍵,對(duì)應(yīng)的led燈亮,未按下鍵,對(duì)應(yīng)的燈亮,未按下鍵,對(duì)應(yīng)的led燈熄滅。燈熄滅。#include void main() unsigned char i;P0=0 xff;for( ; ; ) i=P0; P1=i;5.3 I/O口應(yīng)用獨(dú)立鍵

21、控單獨(dú)立鍵控單LED發(fā)光管流水燈發(fā)光管流水燈 任務(wù)要求:有鍵按下左流水,無(wú)鍵則右流水。5.3 I/O口應(yīng)用獨(dú)立鍵控單獨(dú)立鍵控單LED發(fā)光管流水燈發(fā)光管流水燈顯示筆段顯示筆段0 xC00 x3F筆段位筆段位共陽(yáng)共陽(yáng)1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1共陰共陰dp g f e d c b aD7 D6 D5 D4 D3 D2 D1 D0LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)4、顯示原理、顯示原理顯示筆段顯示筆段筆段位筆段位dp g f e d c b aD7 D6 D5 D4 D3 D2 D1 D0LEDLED數(shù)碼管相關(guān)知識(shí)數(shù)碼管相關(guān)知識(shí)4、顯示原理、顯示原理0 xF9

22、0 x06共陽(yáng)共陽(yáng)1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0共陰共陰八段共陽(yáng)八段共陽(yáng)LED數(shù)碼管數(shù)碼管字形編碼字形編碼(筆段碼筆段碼)表表八段共陰八段共陰LED數(shù)碼管數(shù)碼管字形編碼字形編碼(筆段碼筆段碼)表表3FH3FH06H06H5BH5BH4FH4FH66H66H6DH6DH7DH7DH07H07H7FH7FH6FH6FH77H77H7CH7CH39H39H5EH5EH79H79H71H71H十位十位個(gè)位個(gè)位例例1:LED顯示控制顯示控制電路原理圖設(shè)計(jì)電路原理圖設(shè)計(jì)有興趣了解一下點(diǎn)陣顯示器有興趣了解一下點(diǎn)陣顯示器做廣告用做廣告用5.3 I/O5.3 I/O口應(yīng)用口應(yīng)用3

23、3點(diǎn)陣(自學(xué))點(diǎn)陣(自學(xué))5.3 I/O5.3 I/O口應(yīng)用口應(yīng)用33鍵盤(pán)鍵盤(pán)VCCI/O引腳引腳K1K2K3K410K10K10K10KVCCI/O引腳引腳K1K2K3K4獨(dú)立式鍵盤(pán)獨(dú)立式鍵盤(pán)(線性鍵盤(pán))(線性鍵盤(pán))矩陣矩陣式鍵盤(pán)式鍵盤(pán)(行列行列式鍵盤(pán))式鍵盤(pán))鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)1、鍵盤(pán)電路鍵盤(pán)電路行線行線列線列線2.1 行(列)掃描法行(列)掃描法2.2 線反轉(zhuǎn)法線反轉(zhuǎn)法行行線線列列線線鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)2、矩陣、矩陣鍵盤(pán)識(shí)鍵原理鍵盤(pán)識(shí)鍵原理及編程方法及編程方法鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)VCCK1K2K3K4011001按下按下按下按下01矩陣矩陣式鍵盤(pán)式鍵盤(pán)(行列行列式鍵盤(pán))式

24、鍵盤(pán))行行0行行1列列0列列12.1 行掃描法原理行掃描法原理第第0行行(10)第第1行行(01)I/O引腳引腳行行(輸出輸出)列列(輸入輸入)鍵鍵號(hào)號(hào)01101100K1K2無(wú)鍵無(wú)鍵多鍵多鍵01101100K3K4無(wú)鍵無(wú)鍵多鍵多鍵行列行列鍵位置鍵位置鍵號(hào)鍵號(hào)0行行0列列0行行1列列1行行0列列1行行1列列0110100110100101K2K1K4K3閉合鍵所在行、列的狀態(tài)均為閉合鍵所在行、列的狀態(tài)均為0,其余皆為,其余皆為1。VCC行行0行行1列列0列列1行行2行行3列列2列列3I/O(1)低四位低四位I/O(1)高四位高四位 0X7E 0X7D 0X7B 0X77 0XBE 0XBD 0

25、XBB 0XB7 0XDE 0XDD 0XDB 0XD7 0XEE 0XED 0XEB 0XE748c/37=*260- 159+faHMLmixiriladoso閉合鍵所在行、列的狀態(tài)均為閉合鍵所在行、列的狀態(tài)均為0,其余皆為,其余皆為1。行列行列鍵位置碼鍵位置碼0行行0列列111011100行行1列列110111100行行2列列101111100行行3列列011111101行行0列列111011011行行1列列110111011行行2列列101111011行行3列列011111012行行0列列111010112行行1列列110110112行行2列列101110112行行3列列0111101

26、13行行0列列111001113行行1列列110101113行行2列列101101113行行3列列01110111鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)編程識(shí)別步驟編程識(shí)別步驟 首先判斷有無(wú)按鍵首先判斷有無(wú)按鍵n行線輸出全行線輸出全0,列線輸入初始化,列線輸入初始化n讀列線判斷有無(wú)按鍵讀列線判斷有無(wú)按鍵 逐行掃描按鍵(逐行輸出逐行掃描按鍵(逐行輸出0)n 輸出行掃描值輸出行掃描值n 讀列線判斷有無(wú)按鍵,如有則把讀列線判斷有無(wú)按鍵,如有則把剛輸出的行掃描值和讀入的列值組剛輸出的行掃描值和讀入的列值組合返回,否則繼續(xù)掃描下一行合返回,否則繼續(xù)掃描下一行開(kāi)始開(kāi)始輸出全行掃描值輸出全行掃描值

27、掃到最后一行?掃到最后一行?NYN該行該行有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)準(zhǔn)備行掃描初值準(zhǔn)備行掃描初值YNNY輸出行掃描值輸出行掃描值產(chǎn)生下一行掃描值產(chǎn)生下一行掃描值返回按鍵位返回按鍵位置編碼置編碼返回?zé)o鍵返回?zé)o鍵標(biāo)識(shí)標(biāo)識(shí)組合當(dāng)前行組合當(dāng)前行掃描值和讀掃描值和讀入的列值入的列值YN鍵盤(pán)掃描流程圖鍵盤(pán)掃描流程圖開(kāi)始開(kāi)始輸出全行掃描值輸出全行掃描值掃到最后一行?掃到最后一行?NYN該行該行有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)準(zhǔn)備行掃描初值準(zhǔn)備行掃描初值YNNY輸出行掃描值輸出行掃描值產(chǎn)生下一行掃描值產(chǎn)生下一行掃描值返回

28、按鍵位返回按鍵位置編碼置編碼返回?zé)o鍵返回?zé)o鍵標(biāo)識(shí)標(biāo)識(shí)組合當(dāng)前行組合當(dāng)前行掃描值和讀掃描值和讀入的列值入的列值uchar key_scan() key=0XF0; if( ) delay(10); if(key&0 xf0)!=0 xf0) scan_buf=0 xfe; for(i=0;i4;i+) key=scan_buf; if (key&0 xf0)!=0 xf0) key_h=scan_buf&0 x0f; key_l=key&0 xf0; return(key_h+key_l); else else return(nokey); else #defin

29、e key P1#define uchar unsigned char#define nokey 0 x00(key&0 xF0) !=0 xF0 return(nokey);uchar scan_buf,key_h,key_l;scan_buf=(scan_buf 1)&0 x01;鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)輸輸出出列列線線VCC輸輸入入行行線線編程識(shí)別步驟編程識(shí)別步驟 首先判斷有無(wú)按鍵首先判斷有無(wú)按鍵n列線輸出全列線輸出全0,行線輸入初始化,行線輸入初始化n讀行線判斷有無(wú)按鍵讀行線判斷有無(wú)按鍵 逐行掃描按鍵(逐行輸出逐行掃描按鍵(逐行輸出0)n 輸出列掃描值輸出列掃描值n 讀

30、行線判斷有無(wú)按鍵,如有則把讀行線判斷有無(wú)按鍵,如有則把剛輸出的列掃描值和讀入的行值組剛輸出的列掃描值和讀入的行值組合返回,否則繼續(xù)掃描下一列合返回,否則繼續(xù)掃描下一列開(kāi)始開(kāi)始輸出全列掃描值輸出全列掃描值掃到最后一列?掃到最后一列?NYN該列該列有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)準(zhǔn)備列掃描初值準(zhǔn)備列掃描初值YNNY輸出列掃描值輸出列掃描值產(chǎn)生下一列掃描值產(chǎn)生下一列掃描值返回按鍵位返回按鍵位置編碼置編碼返回?zé)o鍵返回?zé)o鍵標(biāo)識(shí)標(biāo)識(shí)組合當(dāng)前列組合當(dāng)前列掃描值和讀掃描值和讀入的行值入的行值鍵盤(pán)掃描流程圖鍵盤(pán)掃描流程圖鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)VCCK1K2K3K400

31、01按下按下按下按下00100111111行行(輸出輸出)列列(輸入輸入)列列號(hào)號(hào)0010011100第0列無(wú)鍵無(wú)鍵多鍵多鍵第1列列列(輸出輸出)行行(輸入輸入)行行號(hào)號(hào)0010011100第0行無(wú)鍵無(wú)鍵多鍵多鍵第1行行列行列鍵位置鍵位置鍵號(hào)鍵號(hào)0行行0列列0行行1列列1行行0列列1行行1列列0110100110100101K2K1K4K30按下按下2.2 線反轉(zhuǎn)法原理線反轉(zhuǎn)法原理閉合鍵所在行、列的狀態(tài)均為閉合鍵所在行、列的狀態(tài)均為0,其余皆為,其余皆為1。行行0行行1列列0列列1VCC行列行列鍵位置碼鍵位置碼0行行0列列111011100行行1列列110111100行行2列列10111110

32、0行行3列列011111101行行0列列111011011行行1列列110111011行行2列列101111011行行3列列011111012行行0列列111010112行行1列列110110112行行2列列101110112行行3列列011110113行行0列列111001113行行1列列110101113行行2列列101101113行行3列列01110111行行0行行1列列0列列1行行2行行3列列2列列3I/O(1)低四位低四位I/O(1)高四位高四位 0X7E 0X7D 0X7B 0X77 0XBE 0XBD 0XBB 0XB7 0XDE 0XDD 0XDB 0XD7 0XEE 0XED

33、 0XEB 0XE7閉合鍵所在行、列的狀態(tài)均為閉合鍵所在行、列的狀態(tài)均為0,其余皆為,其余皆為1。鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)faHMLmixiriladoso48c/37=*260- 159+判斷按鍵所在行判斷按鍵所在行n行線輸入初始化,列線輸出全行線輸入初始化,列線輸出全0。n讀端口得行碼讀端口得行碼 得按鍵編碼得按鍵編碼合并第合并第 步所得按鍵行列碼返回。步所得按鍵行列碼返回。編程識(shí)別步驟編程識(shí)別步驟判斷按鍵所在列判斷按鍵所在列n列線輸入初始化,行線輸出全列線輸入初始化,行線輸出全0。n讀端口得列碼讀端口得列碼鍵盤(pán)相關(guān)知識(shí)鍵盤(pán)相關(guān)知識(shí)開(kāi)始開(kāi)始按鍵閉合?按鍵閉合?按鍵閉合?按鍵閉合?行線輸入初

34、始化行線輸入初始化列線輸出列線輸出0 0讀取行線保存行碼讀取行線保存行碼延時(shí)延時(shí)10ms10ms去抖動(dòng)去抖動(dòng)列線輸入初始化列線輸入初始化行線輸出行線輸出0 0讀取列線保存列碼讀取列線保存列碼行列碼組合行列碼組合按鍵松開(kāi)?按鍵松開(kāi)?返回返回YYYNNN鍵盤(pán)掃描流程圖鍵盤(pán)掃描流程圖VCC返回?zé)o返回?zé)o鍵標(biāo)識(shí)鍵標(biāo)識(shí)uchar key_scan() uchar scan_buf,key_h,key_l; key=0XF0; if(key&0 xf0)!=0 xf0 ) delay(10); if( (key&0 xf0)!=0 xf0 ) scan_buf= 0 x01; for(i=0

35、;i4;i+) key=scan_buf; if (key&0 xf0)!=0 xf0) key_h=scan_buf&0 x0f; key_l=key&0 xf0; return(key_h+key_l); else scan_buf=1; else return(nokey); else return(nokey); 鍵盤(pán)掃描程序鍵盤(pán)掃描程序行掃描法行掃描法開(kāi)始開(kāi)始輸出全行掃描值輸出全行掃描值掃到最后一行?掃到最后一行?NYN該行該行有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時(shí)去抖動(dòng)延時(shí)去抖動(dòng)準(zhǔn)備行掃描初值準(zhǔn)備行掃描初值YNNY輸出行掃描值輸出行掃描值

36、產(chǎn)生下一行掃描值產(chǎn)生下一行掃描值返回按鍵位返回按鍵位置編碼置編碼返回?zé)o鍵返回?zé)o鍵標(biāo)識(shí)標(biāo)識(shí)組合當(dāng)前行組合當(dāng)前行掃描值和讀掃描值和讀入的列值入的列值uchar key_scan() uchar w1,w2,w; key = 0 x0f; if(key&0 x0f)!=0 x0f) delay(10); if(key&0 x0f)!=0 x0f) w1= key&0 x0f; key = 0 xf0; w2= key&0 xf0;w=w1|w2; while(key&0 xf0)!=0 xf0) return w ; else return error ;得得行行碼碼組組合合開(kāi)始開(kāi)始按鍵閉合?按鍵閉合?按鍵閉合?按鍵閉合?行線輸入初始化行線輸入初始化列線輸出列線輸出0 0讀取行線保存行碼讀取行線保存行碼延時(shí)延時(shí)10ms10ms去抖動(dòng)去抖動(dòng)列線輸入初始化列線輸入初始化行線輸出行

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論