




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、外外界界CPU內核內核SFR(21)外圍應用模塊外圍應用模塊(功能部件)(功能部件)軟件軟件讀讀/寫寫硬件硬件映射映射用戶編程用戶編程自動對應自動對應I/O引腳引腳人機交互手段人機交互手段第五章第五章 MCS-51單片機輸入單片機輸入/輸出口輸出口(并行(并行I/O口)口) 本講內容提要本講內容提要:5.0、并行、并行I/O口概述口概述5.1、并行、并行I/O口的功能和內部結構口的功能和內部結構5.2、并行、并行I/O口編程方法口編程方法5.3、并行、并行I/O口基本應用口基本應用 I/O端口,即端口,即輸入輸入/輸出輸出端口,是端口,是微控制器(微控制器(MCU)同外界進行交互的重要通道。同
2、外界進行交互的重要通道。5.0 并行并行I/O口概述口概述 輸入端口:輸入端口:負責從外界接收檢測信號、鍵盤信負責從外界接收檢測信號、鍵盤信號等各種開關信號。號等各種開關信號。 輸出端口:輸出端口:負責向外界輸送內部電路產生的處負責向外界輸送內部電路產生的處理結果、顯示信息、控制命令、驅動信號等。理結果、顯示信息、控制命令、驅動信號等。 作用作用DIP40P0P0口口P2P2口口P1P1口口P3P3口口書書P24D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻輸出電路:一個輸出電路:一個D觸發(fā)器、一個場效應管觸發(fā)器、一
3、個場效應管輸入電路:兩個三態(tài)門輸入電路:兩個三態(tài)門5.1 I/O端口內部結構端口內部結構基本模型基本模型D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻內部總線內部總線特點:特點: PX口口可以單根輸入輸出,也可以并行輸入輸出??梢詥胃斎胼敵?,也可以并行輸入輸出??刂瓶刂瓶?/p>
4、線總線數據數據總線總線5.1 I/O端口內部結構端口內部結構基本模型基本模型5.1 I/O端口內部結構端口內部結構工作原理工作原理011001導通導通D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻NPN特點:特點:(1)PX口口做數字輸出時做數字輸出時,輸出數據是通過寫輸出數據是通過寫SFR區(qū)區(qū)PX寄存器實現。寄存器實現。(2)PX口具有輸出鎖存功能。口具有輸出鎖存功能。P0P0口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口一位輸出CLR P0.XS
5、ETB P0.XMOV P0.X,C并行輸出MOV P0,#data截至截至書書P21基本的數字輸出原理基本的數字輸出原理010導通導通截止截止011D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻NPN特點:特點:(1)PX口口做數字輸入時,輸入數據是通過讀做數字輸入時,輸入數據是通過讀PX寄存器采集寄存器采集。(2)PX口具有輸入緩沖功能??诰哂休斎刖彌_功能。 (3)PX口口做數字輸入時,需先輸出做數字輸入時,需先輸出“1”使場效應管截止,保證輸入信號能被正常采集。使場效應管截止,保證輸入信號能被正常采集。P0P0
6、口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口MOV P0 ,0 xFF一位輸入MC, P0.X并行輸入MOV A,P05.1 I/O端口內部結構端口內部結構工作原理工作原理基本的數字輸入原理基本的數字輸入原理D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vcc(1)P0口口(P0.0P0.7,39腳腳32腳腳)引腳引腳N-FETP-FET地址地址/ /數據數據控制控制MUXP0.xPNPNPN10截止截止截止截止封鎖封鎖10截至截至輸出極輸出極開路開路0101解封解封011導通導通100特點:特
7、點:(1)P0口引腳作基本的口引腳作基本的I/O用時,因輸出用時,因輸出“1”時漏極開路,需外接上拉電阻以保證輸出時漏極開路,需外接上拉電阻以保證輸出“1” 。(2)P0口引腳作總線地址口引腳作總線地址/數據的數據的I/0用時,采用推挽式輸出電路,驅動能力更強。用時,采用推挽式輸出電路,驅動能力更強。推挽式輸出電路并行輸出MOVX DPTR,AMOVX Ri,A并行輸入MOVX A,DPTRMOVX A, Ri vcc外接上外接上拉電阻拉電阻導通導通5.1 I/O端口內部結構端口內部結構 一條一條P0端口引腳內部邏輯電路圖端口引腳內部邏輯電路圖P1.x(2) P1口口(P1.0P1.7,1腳腳
8、8腳腳)D QCLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳vccN-FET引腳引腳內部上內部上拉電阻拉電阻5.1 I/O端口內部結構端口內部結構 一條一條P1端口引腳內部邏輯電路圖端口引腳內部邏輯電路圖地址地址D QCLK QMUX讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳控制控制 一條一條P2端口引腳內部邏輯電路圖端口引腳內部邏輯電路圖引腳引腳P2.x(3)P2口口(P2.0P2.7,21腳腳28腳腳)vccN-FET00導通導通010110截止截止1101并行輸出MOVX DPTR,AMOVX Ri,A5.1 I/O端口內部結構端口內部結構D Q
9、CLK Q讀讀鎖存器鎖存器內部總線內部總線寫寫鎖存器鎖存器讀讀引腳引腳引腳引腳P3.xvcc(4)P3口口(P3.0P3.7,10腳腳17腳腳)第第2功能功能輸出輸出第第2功能功能輸入輸入N-FET1開放開放0001導通導通截止截止11001開放開放5.1 I/O端口內部結構端口內部結構 一條一條P3端口引腳內部邏輯電路圖端口引腳內部邏輯電路圖pPX口的輸入輸出操作是通過對口的輸入輸出操作是通過對SFR區(qū)對應的特殊功能寄存區(qū)對應的特殊功能寄存器器PX進行讀寫操作來實現。即給進行讀寫操作來實現。即給PX寄存器寫數據完成寄存器寫數據完成PX口信號的輸出,讀取口信號的輸出,讀取PX寄存器的數據就完成
10、寄存器的數據就完成PX口信號的輸口信號的輸入。入。pPX口既可以并行輸入口既可以并行輸入/輸出,也可以單獨一根輸出,也可以單獨一根I/O引腳輸入引腳輸入/輸出。即讀寫輸出。即讀寫PX寄存器完成寄存器完成PX口的并行輸入口的并行輸入/輸出,讀輸出,讀寫寫PX寄存器的某位寄存器的某位PX.X完成完成PX.X引腳的輸入引腳的輸入/輸出。輸出。pPX口做輸入口時需要做一次性初始化操作,先做偽輸出??谧鲚斎肟跁r需要做一次性初始化操作,先做偽輸出。實現方法為先把實現方法為先把PX口做輸出口且輸出高電平,即先給口做輸出口且輸出高電平,即先給PX寄寄存器寫存器寫0XFF。pPX口有輸出數據鎖存、輸入數據緩沖的
11、功能??谟休敵鰯祿i存、輸入數據緩沖的功能。P0口內部電口內部電路無上拉電阻,因此使用該口做輸出時必須外接上拉電阻。路無上拉電阻,因此使用該口做輸出時必須外接上拉電阻。5.1 I/O端口內部結構端口內部結構基本特性總結基本特性總結P0P0口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口書書P215.2 I/O并行端口編程方法并行端口編程方法輸出匯編語言C語言一位輸出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書書P21輸入匯編語言C語言一位輸入SETB P0.0MOV C, P0.0sbit P0_0=0X80; 或 sfr P0=0X80; sbit P0_0=P00;bit flag;P0_0=1; /輸入口線初始化flag=P0_0;(或做條件表達式)/讀取輸入口線并行輸入MOV P0,#0XFFMOV A, P0sfr P0=0X80;unsigned char data buffer;P0=0XFF; /輸入口線初始化bu
13、ffer=P0;(或做條件表達式 ) /讀取輸入口線P0P0口口SFR0FFH0B0H0A0H90H80H(P0)(P1)(P2)(P3)P2P2口口P3P3口口P1P1口口5.2 I/O并行端口編程方法并行端口編程方法51單片機最小系統電路原型+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復復位位電電路路電電源源電電路路時時鐘鐘電電路路5.3 I/O端口應用端口應用(參考材料參考材料)參考資料部分參考資料部分無源晶振(無源晶振(Crystal )瓷片電容瓷片電容電解電容電解電容常開按鈕常開按鈕發(fā)光二極管發(fā)光二極管方形整流橋方形整流橋圓形整流橋圓形整流橋直流電源插座直流電源插座穩(wěn)壓器穩(wěn)壓器78055151單片機實驗板單片機實驗板5.3 I/O端口基本應用端口基本應用發(fā)光二極管發(fā)光二極管LED數碼管數碼管LED點陣點陣按鍵開關按鍵開關鍵盤鍵盤蜂鳴器蜂鳴器LCD液晶顯示器液晶顯示器生活中的應用實例生活中的應用實
16、例LEDLED夜景夜景裝飾裝飾LEDLED燈飾燈飾LEDLED廣告燈廣告燈LEDLED燈花燈花LEDLED發(fā)光二極管相關知識發(fā)光二極管相關知識1、元件外形、元件外形2、元件電路符號、元件電路符號3、應用電路、應用電路I/O引腳vccGNDI/O引腳(1) 高電平驅動高電平驅動(2) 低電平驅動低電平驅動拉電流拉電流灌電流灌電流正極正極負極負極10亮亮亮亮內部結構機械式觸點式按鍵開關相關知識機械式觸點式按鍵開關相關知識1、元件外形、元件外形2、元件電路符號、元件電路符號3、應用電路、應用電路1按下按下松開松開0按下按下松開松開10VCCI/O引腳方法一VCCI/O引腳方法二去抖動措施:去抖動措施
17、:鍵數較少時,鍵數較少時,采用硬件去抖采用硬件去抖;鍵數較多時,鍵數較多時,采用軟件去抖采用軟件去抖。 觸點式按鍵的機械抖動波形機械式觸點式按鍵開關相關知識機械式觸點式按鍵開關相關知識4、抖動問題及去抖動措施、抖動問題及去抖動措施VCCI/O引腳X 位位X 段數碼管段數碼管LEDLED數碼管相關知識數碼管相關知識1、LED數碼管外形數碼管外形8段段LED顯示的數字和字母顯示的數字和字母LEDLED數碼管相關知識數碼管相關知識1、8段段LED外形外形2、8段段LED管腳分布管腳分布內部結構圖COM引腳接低電平引腳接低電平高電平驅動筆段亮高電平驅動筆段亮共陰LED共陽LEDCOM引腳接低電平引腳接
18、低電平低電平驅動筆段亮低電平驅動筆段亮LEDLED數碼管相關知識數碼管相關知識3、8段段LED內部結構內部結構靜態(tài)顯示電路3、應用電路、應用電路LEDLED數碼管相關知識數碼管相關知識優(yōu)點:顯示程序十分簡單,顯示亮度大,節(jié)約優(yōu)點:顯示程序十分簡單,顯示亮度大,節(jié)約CPU的工作時間的工作時間缺點:占用的缺點:占用的I/O口線較多,硬件成本較高??诰€較多,硬件成本較高。I/O(1)I/O(2)dpabcdefgdpabcdefgcomdpdpabcdefgdpabcdefgcomdp筆段筆段控制控制筆段筆段控制控制共陽極共陽極LED靜態(tài)顯示電路4、應用電路、應用電路LEDLED數碼管相關知識數碼管
19、相關知識I/O(1)I/O(2)dpabcdefgdpabcdefgcomdpdpabcdefgdpabcdefgcomdp筆段筆段控制控制筆段筆段控制控制共陰極共陰極LED送顯示數據送顯示數據1筆段碼筆段碼送顯示數據送顯示數據2筆段碼筆段碼動態(tài)掃描顯示電路3、應用電路、應用電路LEDLED數碼管相關知識數碼管相關知識優(yōu)點:顯示程序較復雜,顯示亮度小,浪費優(yōu)點:顯示程序較復雜,顯示亮度小,浪費CPU的工作時間的工作時間缺點:占用的缺點:占用的I/O口線較少,硬件成本較低??诰€較少,硬件成本較低。dpabcdefgdpabcdefgcomdpI/O(1)I/O(2)dpabcdefgdpabcd
20、efgcomdpdpabcdefgdpabcdefgcomdp筆段筆段控制控制位選位選控制控制送位選通碼送位選通碼選通一位選通一位LED送顯示數據送顯示數據筆段碼筆段碼延時延時5.3 I/O口應用鍵控燈 如圖如圖P0口是口是8個獨立個獨立鍵鍵的的輸入口,輸入口,P1口口是是8 8個個LED發(fā)光管發(fā)光管驅驅動動口。任務要求,按下鍵,對應的口。任務要求,按下鍵,對應的led燈亮,未按下鍵,對應的燈亮,未按下鍵,對應的led燈熄滅。燈熄滅。#include void main() unsigned char i;P0=0 xff;for( ; ; ) i=P0; P1=i;5.3 I/O口應用獨立鍵
21、控單獨立鍵控單LED發(fā)光管流水燈發(fā)光管流水燈 任務要求:有鍵按下左流水,無鍵則右流水。5.3 I/O口應用獨立鍵控單獨立鍵控單LED發(fā)光管流水燈發(fā)光管流水燈顯示筆段顯示筆段0 xC00 x3F筆段位筆段位共陽共陽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數碼管相關知識數碼管相關知識4、顯示原理、顯示原理顯示筆段顯示筆段筆段位筆段位dp g f e d c b aD7 D6 D5 D4 D3 D2 D1 D0LEDLED數碼管相關知識數碼管相關知識4、顯示原理、顯示原理0 xF9
22、0 x06共陽共陽1 1 1 1 1 0 0 1 0 0 0 0 0 1 1 0共陰共陰八段共陽八段共陽LED數碼管數碼管字形編碼字形編碼(筆段碼筆段碼)表表八段共陰八段共陰LED數碼管數碼管字形編碼字形編碼(筆段碼筆段碼)表表3FH3FH06H06H5BH5BH4FH4FH66H66H6DH6DH7DH7DH07H07H7FH7FH6FH6FH77H77H7CH7CH39H39H5EH5EH79H79H71H71H十位十位個位個位例例1:LED顯示控制顯示控制電路原理圖設計電路原理圖設計有興趣了解一下點陣顯示器有興趣了解一下點陣顯示器做廣告用做廣告用5.3 I/O5.3 I/O口應用口應用3
23、3點陣(自學)點陣(自學)5.3 I/O5.3 I/O口應用口應用33鍵盤鍵盤VCCI/O引腳引腳K1K2K3K410K10K10K10KVCCI/O引腳引腳K1K2K3K4獨立式鍵盤獨立式鍵盤(線性鍵盤)(線性鍵盤)矩陣矩陣式鍵盤式鍵盤(行列行列式鍵盤)式鍵盤)鍵盤相關知識鍵盤相關知識1、鍵盤電路鍵盤電路行線行線列線列線2.1 行(列)掃描法行(列)掃描法2.2 線反轉法線反轉法行行線線列列線線鍵盤相關知識鍵盤相關知識2、矩陣、矩陣鍵盤識鍵原理鍵盤識鍵原理及編程方法及編程方法鍵盤相關知識鍵盤相關知識VCCK1K2K3K4011001按下按下按下按下01矩陣矩陣式鍵盤式鍵盤(行列行列式鍵盤)式
24、鍵盤)行行0行行1列列0列列12.1 行掃描法原理行掃描法原理第第0行行(10)第第1行行(01)I/O引腳引腳行行(輸出輸出)列列(輸入輸入)鍵鍵號號01101100K1K2無鍵無鍵多鍵多鍵01101100K3K4無鍵無鍵多鍵多鍵行列行列鍵位置鍵位置鍵號鍵號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鍵盤相關知識鍵盤相關知識鍵盤相關知識鍵盤相關知識編程識別步驟編程識別步驟 首先判斷有無按鍵首先判斷有無按鍵n行線輸出全行線輸出全0,列線輸入初始化,列線輸入初始化n讀列線判斷有無按鍵讀列線判斷有無按鍵 逐行掃描按鍵(逐行輸出逐行掃描按鍵(逐行輸出0)n 輸出行掃描值輸出行掃描值n 讀列線判斷有無按鍵,如有則把讀列線判斷有無按鍵,如有則把剛輸出的行掃描值和讀入的列值組剛輸出的行掃描值和讀入的列值組合返回,否則繼續(xù)掃描下一行合返回,否則繼續(xù)掃描下一行開始開始輸出全行掃描值輸出全行掃描值
27、掃到最后一行?掃到最后一行?NYN該行該行有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時去抖動延時去抖動準備行掃描初值準備行掃描初值YNNY輸出行掃描值輸出行掃描值產生下一行掃描值產生下一行掃描值返回按鍵位返回按鍵位置編碼置編碼返回無鍵返回無鍵標識標識組合當前行組合當前行掃描值和讀掃描值和讀入的列值入的列值YN鍵盤掃描流程圖鍵盤掃描流程圖開始開始輸出全行掃描值輸出全行掃描值掃到最后一行?掃到最后一行?NYN該行該行有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時去抖動延時去抖動準備行掃描初值準備行掃描初值YNNY輸出行掃描值輸出行掃描值產生下一行掃描值產生下一行掃描值返回
28、按鍵位返回按鍵位置編碼置編碼返回無鍵返回無鍵標識標識組合當前行組合當前行掃描值和讀掃描值和讀入的列值入的列值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;鍵盤相關知識鍵盤相關知識輸輸出出列列線線VCC輸輸入入行行線線編程識別步驟編程識別步驟 首先判斷有無按鍵首先判斷有無按鍵n列線輸出全列線輸出全0,行線輸入初始化,行線輸入初始化n讀行線判斷有無按鍵讀行線判斷有無按鍵 逐行掃描按鍵(逐行輸出逐行掃描按鍵(逐行輸出0)n 輸出列掃描值輸出列掃描值n 讀
30、行線判斷有無按鍵,如有則把讀行線判斷有無按鍵,如有則把剛輸出的列掃描值和讀入的行值組剛輸出的列掃描值和讀入的行值組合返回,否則繼續(xù)掃描下一列合返回,否則繼續(xù)掃描下一列開始開始輸出全列掃描值輸出全列掃描值掃到最后一列?掃到最后一列?NYN該列該列有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時去抖動延時去抖動準備列掃描初值準備列掃描初值YNNY輸出列掃描值輸出列掃描值產生下一列掃描值產生下一列掃描值返回按鍵位返回按鍵位置編碼置編碼返回無鍵返回無鍵標識標識組合當前列組合當前列掃描值和讀掃描值和讀入的行值入的行值鍵盤掃描流程圖鍵盤掃描流程圖鍵盤相關知識鍵盤相關知識VCCK1K2K3K400
31、01按下按下按下按下00100111111行行(輸出輸出)列列(輸入輸入)列列號號0010011100第0列無鍵無鍵多鍵多鍵第1列列列(輸出輸出)行行(輸入輸入)行行號號0010011100第0行無鍵無鍵多鍵多鍵第1行行列行列鍵位置鍵位置鍵號鍵號0行行0列列0行行1列列1行行0列列1行行1列列0110100110100101K2K1K4K30按下按下2.2 線反轉法原理線反轉法原理閉合鍵所在行、列的狀態(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。鍵盤相關知識鍵盤相關知識faHMLmixiriladoso48c/37=*260- 159+判斷按鍵所在行判斷按鍵所在行n行線輸入初始化,列線輸出全行線輸入初始化,列線輸出全0。n讀端口得行碼讀端口得行碼 得按鍵編碼得按鍵編碼合并第合并第 步所得按鍵行列碼返回。步所得按鍵行列碼返回。編程識別步驟編程識別步驟判斷按鍵所在列判斷按鍵所在列n列線輸入初始化,行線輸出全列線輸入初始化,行線輸出全0。n讀端口得列碼讀端口得列碼鍵盤相關知識鍵盤相關知識開始開始按鍵閉合?按鍵閉合?按鍵閉合?按鍵閉合?行線輸入初
34、始化行線輸入初始化列線輸出列線輸出0 0讀取行線保存行碼讀取行線保存行碼延時延時10ms10ms去抖動去抖動列線輸入初始化列線輸入初始化行線輸出行線輸出0 0讀取列線保存列碼讀取列線保存列碼行列碼組合行列碼組合按鍵松開?按鍵松開?返回返回YYYNNN鍵盤掃描流程圖鍵盤掃描流程圖VCC返回無返回無鍵標識鍵標識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); 鍵盤掃描程序鍵盤掃描程序行掃描法行掃描法開始開始輸出全行掃描值輸出全行掃描值掃到最后一行?掃到最后一行?NYN該行該行有鍵按下有鍵按下?有鍵按下有鍵按下?有鍵按下有鍵按下?延時去抖動延時去抖動準備行掃描初值準備行掃描初值YNNY輸出行掃描值輸出行掃描值
36、產生下一行掃描值產生下一行掃描值返回按鍵位返回按鍵位置編碼置編碼返回無鍵返回無鍵標識標識組合當前行組合當前行掃描值和讀掃描值和讀入的列值入的列值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 ;得得行行碼碼組組合合開始開始按鍵閉合?按鍵閉合?按鍵閉合?按鍵閉合?行線輸入初始化行線輸入初始化列線輸出列線輸出0 0讀取行線保存行碼讀取行線保存行碼延時延時10ms10ms去抖動去抖動列線輸入初始化列線輸入初始化行線輸出行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025外匯質押人民幣貸款合同范本
- 民間資金借款抵押合同
- 藥材種植協議書范本
- 2025商業(yè)混凝土銷售合同范本
- 婚后貸款協議書范本
- 藏獒轉賣協議書模板
- 2025年03月河北邯鄲武安市事業(yè)單位春季博碩人才引進55名筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年03月新疆阿勒泰地區(qū)吉木乃縣紅十字會招募紅十字志愿者筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- Unit 9 From Here to There 第三課時Developing the Topic(含答案)仁愛版2024七下英語日清限時練
- 武漢鐵路職業(yè)技術學院《智能機器人》2023-2024學年第二學期期末試卷
- 2024年廣東省萬閱大灣區(qū)百校聯盟中考一模數學試題
- 《短視頻拍攝與制作》課件-3短視頻中期拍攝
- 數字貿易學 課件 馬述忠 第13-22章 數字貿易綜合服務概述- 數字貿易規(guī)則構建與WTO新一輪電子商務談判
- 2024年電路保護元器件行業(yè)營銷策略方案
- 污泥技術污泥運輸方案
- 年產3.5萬噸丙烯腈合成工段工藝設計課程設計
- 【方案】分布式光伏項目勘察及建設方案
- 半導體行業(yè)對國家國防戰(zhàn)略的支撐與應用
- 智能點滴自動監(jiān)控方法設計
- 辦學許可證續(xù)期申請書
- Cpk及Ppk計算電子表格模板
評論
0/150
提交評論