第五顯示和鍵盤接口技術_第1頁
第五顯示和鍵盤接口技術_第2頁
第五顯示和鍵盤接口技術_第3頁
第五顯示和鍵盤接口技術_第4頁
第五顯示和鍵盤接口技術_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、 本章內(nèi)容本章內(nèi)容p單片機與單片機與LED數(shù)碼管接口數(shù)碼管接口pLED大屏幕顯示器和接口大屏幕顯示器和接口p字符字符LCD 液晶顯示和接口液晶顯示和接口p單片機與鍵盤接口單片機與鍵盤接口第第5 5章章 顯示和鍵盤接口技術顯示和鍵盤接口技術單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED數(shù)碼管結(jié)構(gòu)及原理 單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED數(shù)碼管結(jié)構(gòu)及原理 單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED數(shù)碼管字型編碼 p若將數(shù)值0送至單片機的P1口,數(shù)碼管上不會顯示數(shù)字“0”。顯然,要使數(shù)碼管顯示出數(shù)字或字符,直接將相應的數(shù)字或字符送至數(shù)碼管的段控制端是不行的,必

2、須使段控制端輸出相應的字形編碼。p將單片機P1口的P1.0、P1.1 P1.7八個引腳依次與數(shù)碼管的a、bf、dp八個段控制引腳相連接。如果使用的是共陽極數(shù)碼管,COM端接+5V,要顯示數(shù)字“0”,則數(shù)碼管的a、b、c、d、e、f六個段應點亮,其它段熄滅,需向P1口傳送數(shù)據(jù)11000000B(C0H),該數(shù)據(jù)就是與字符“0”相對應的共陽極字型編碼。若共陰極的數(shù)碼管COM端接地,要顯示數(shù)字“1”,則數(shù)碼管的b、c兩段點亮,其他段熄滅,需向P1口傳送數(shù)據(jù)00000110(06H),這就是字符“1”的共陰極字型碼了。單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED靜態(tài)顯示 靜態(tài)顯示是指數(shù)碼管顯

3、示某一字符時,相應的發(fā)光二極管恒定導通或恒定截止。這種顯示方式的各位數(shù)碼管的公共端恒定接地(共陰極)或+5V(共陽極)。每個數(shù)碼管的八個段控制引腳分別與一個八位I/O端口相連。只要I/O端口有顯示字型碼輸出,數(shù)碼管就顯示給定字符,并保持不變,直到I/O口輸出新的段碼。 單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED靜態(tài)顯示 單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED動態(tài)顯示 單片機與單片機與LEDLED數(shù)碼管接口數(shù)碼管接口LED動態(tài)顯示 動態(tài)顯示是一種按位輪流點亮各位數(shù)碼管的顯示方式,即在某一時段,只讓其中一位數(shù)碼管“位選端”有效,并送出相應的字型顯示編碼。此時,其它位的數(shù)

4、碼管因“位選端”無效而都處于熄滅狀態(tài);下一時段按順序選通另外一位數(shù)碼管,并送出相應的字型顯示編碼,依此規(guī)律循環(huán)下去,即可使各位數(shù)碼管分別間斷地顯示出相應的字符。這一過程稱為動態(tài)掃描顯示。 LEDLED大屏幕顯示器和接口大屏幕顯示器和接口 LED大屏幕顯示器結(jié)構(gòu)及原理LED點陣顯示器是把很多LED發(fā)光二極管按矩陣方式排列在一起,通過對每個LED進行發(fā)光控制,完成各種字符或圖形的顯示。最常見的LED點陣顯示模塊有57(5列7行),79(7列9行),88(8列8行)結(jié)構(gòu)。LED點陣由一個一個的點(LED發(fā)光二極管)組成,總點數(shù)為行數(shù)與列數(shù)之積,引腳數(shù)為行數(shù)與列數(shù)之和。LEDLED大屏幕顯示器和接口大

5、屏幕顯示器和接口 LED大屏幕顯示器結(jié)構(gòu)及原理LEDLED大屏幕顯示器和接口大屏幕顯示器和接口 LED大屏幕顯示器結(jié)構(gòu)及原理“大”字顯示字型碼示意圖LEDLED大屏幕顯示器和接口大屏幕顯示器和接口 LED大屏幕顯示器結(jié)構(gòu)及原理顯示字符“大”的過程如下:先給第一行送高電平(行高電平有效),同時給8列送11110111(列低電平有效 ) ; 然 后 給 第 二 行 送 高 電 平 , 同 時 給 8 列 送11110111,最后給第八行送高電平,同時給8列送11111111。每行點亮延時時間為1ms,第八行結(jié)束后再從第一行開始循環(huán)顯示。利用視覺駐留現(xiàn)象,人們看到的就是一個穩(wěn)定的圖形。LEDLED大

6、屏幕顯示器和接口大屏幕顯示器和接口 LED大屏幕顯示器接口LEDLED大屏幕顯示器和接口大屏幕顯示器和接口 LED大屏幕顯示器擴展接口液晶顯示器液晶顯示器LCDLCD(Liquid Crystal DisplayLiquid Crystal Display),它的主要原),它的主要原理是以電流刺激液晶分子產(chǎn)生點、線、面配合背部燈管理是以電流刺激液晶分子產(chǎn)生點、線、面配合背部燈管構(gòu)成畫面。它由一定數(shù)量的彩色或黑白像素組成,放置構(gòu)成畫面。它由一定數(shù)量的彩色或黑白像素組成,放置于光源或者反射面前方。于光源或者反射面前方。液晶顯示器由于體積小、重量輕、耗電小等優(yōu)點已成為液晶顯示器由于體積小、重量輕、耗

7、電小等優(yōu)點已成為各種嵌入式系統(tǒng)所采用的顯示器,尤其適用于使用電池各種嵌入式系統(tǒng)所采用的顯示器,尤其適用于使用電池的電子設備。如手機、的電子設備。如手機、PDAPDA,以及家電產(chǎn)品,儀器儀表,以及家電產(chǎn)品,儀器儀表產(chǎn)品等,產(chǎn)品等,LCDLCD是首選的顯示器。是首選的顯示器。1LCD 的特點的特點2LCD 顯示器的分類顯示器的分類從液晶顯示器的使用和顯示內(nèi)容來分,從液晶顯示器的使用和顯示內(nèi)容來分,LCD LCD 可分為字可分為字段式(筆劃式),點陣字符式,點陣圖形式三種。段式(筆劃式),點陣字符式,點陣圖形式三種。 字段式液晶顯示器字段式液晶顯示器同同LEDLED數(shù)碼管有些相似,它是以長條數(shù)碼管有

8、些相似,它是以長條筆劃狀或一些特殊固定圖形與漢字顯示象素組成的液筆劃狀或一些特殊固定圖形與漢字顯示象素組成的液晶顯示器件,簡稱段型顯示器。段型顯示器以七段顯晶顯示器件,簡稱段型顯示器。段型顯示器以七段顯示器最為常見,特殊圖形與字符類的段型液晶顯示器示器最為常見,特殊圖形與字符類的段型液晶顯示器一般要生產(chǎn)廠家定做。段型液晶顯示器在數(shù)字儀表、一般要生產(chǎn)廠家定做。段型液晶顯示器在數(shù)字儀表、計數(shù)器,家電產(chǎn)品中應用較多。計數(shù)器,家電產(chǎn)品中應用較多。點陣字符式液晶顯示器點陣字符式液晶顯示器一般是一個功能模塊,它由小面積的液晶顯示屏和一般是一個功能模塊,它由小面積的液晶顯示屏和驅(qū)動電路組合而成。模塊中內(nèi)置有

9、驅(qū)動電路組合而成。模塊中內(nèi)置有 192 192 種字符、數(shù)字、字母、標點符號等種字符、數(shù)字、字母、標點符號等可顯示的字型點陣圖形庫,并提供可控制的并行或串行接口以及通信協(xié)議??娠@示的字型點陣圖形庫,并提供可控制的并行或串行接口以及通信協(xié)議。市場上常見的有市場上常見的有 1 1 行、行、2 2 行、行、4 4 行,每行可顯示行,每行可顯示8 8、1212、1616、2424、3232個個 5x7 5x7 點陣字符的通用液晶顯示器。點陣字符的通用液晶顯示器。 點陣圖形式液晶顯示器點陣圖形式液晶顯示器一般顯示面積大于字符式液晶顯示器,點陣從一般顯示面積大于字符式液晶顯示器,點陣從 80 x3280

10、x32到到 1024x7681024x768不等。顯示靈活性好,自由度大,可以顯示各種圖形、不等。顯示靈活性好,自由度大,可以顯示各種圖形、字符和漢字等。但控制最復雜,硬件連接線多,占用字符和漢字等。但控制最復雜,硬件連接線多,占用 MCU MCU 的資源也多。的資源也多。為了適應越來越多的液晶顯示器應用,一些高性能的單片機已經(jīng)將液晶顯為了適應越來越多的液晶顯示器應用,一些高性能的單片機已經(jīng)將液晶顯示器驅(qū)動功能集成在片內(nèi)。目前國內(nèi)一些廠商將驅(qū)動電路、漢字庫和點陣示器驅(qū)動功能集成在片內(nèi)。目前國內(nèi)一些廠商將驅(qū)動電路、漢字庫和點陣液晶顯示器屏做成一個組件模塊,模塊帶有與液晶顯示器屏做成一個組件模塊,

11、模塊帶有與 MCU MCU 通信的并行或串行接通信的并行或串行接口,使用時,只要口,使用時,只要 MCU MCU 通過通信口下發(fā)相應的控制指令就能顯示各種信通過通信口下發(fā)相應的控制指令就能顯示各種信息。息。通用點陣字符液晶顯示器是把通用點陣字符液晶顯示器是把 LCDLCD控制器、點陣驅(qū)動器、控制器、點陣驅(qū)動器、字符存儲器全做在一塊字符存儲器全做在一塊 PCB PCB 板上,構(gòu)成便于應用的顯示器板上,構(gòu)成便于應用的顯示器模塊。該模塊在國際上已經(jīng)規(guī)范化,一般都采用模塊。該模塊在國際上已經(jīng)規(guī)范化,一般都采用HD44780HD44780及其兼容電路作為及其兼容電路作為LCD LCD 的控制器。的控制器

12、。HD44780 HD44780 具有簡單而功能較強的指令集,可實現(xiàn)字符移動、具有簡單而功能較強的指令集,可實現(xiàn)字符移動、閃爍等功能。與閃爍等功能。與 MCU MCU 的數(shù)據(jù)傳輸可采用的數(shù)據(jù)傳輸可采用 8 8 位并行或位并行或4 4位并位并行傳輸兩種方式??捎糜隍?qū)動行傳輸兩種方式??捎糜隍?qū)動 40 40 * * 4 4,16 16 * * 1 1,16 16 * * 2 2,16 16 * * 4 4,20 20 * * 2 2,20 20 * * 4 4等多種點陣字符液晶顯示器。等多種點陣字符液晶顯示器。HD44780 引腳功能定義引腳功能定義 字符字符LCD LCD 液晶顯示和接口液晶顯示

13、和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊模塊Vss: +5V電源管腳(Vcc)VDD: 地管腳(GND)Vo: 液晶顯示驅(qū)動電源(0V5V)字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊DB0DB7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接,節(jié)約單片機資源,本實驗中采用的是八位連接方法。字符字符LCD LCD 液晶顯示和接口液晶顯

14、示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊A:背光控制正電源K:背光控制地字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊單片機與LCD模塊之間有四種基本操作: 寫命令寫命令 讀狀態(tài)讀狀態(tài) 寫顯示數(shù)據(jù)寫顯示數(shù)據(jù) 讀顯示數(shù)據(jù)讀顯示數(shù)據(jù)字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 12345678910111213141516VSS

15、 VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊RSR/W操作操作00寫命令寫命令操作(初始化、光標操作(初始化、光標定位等)定位等)01讀狀態(tài)讀狀態(tài)操作(讀忙標志)操作(讀忙標志)10寫數(shù)據(jù)寫數(shù)據(jù)操作(要顯示的內(nèi)容)操作(要顯示的內(nèi)容)11讀數(shù)據(jù)讀數(shù)據(jù)操作(可以把顯示存操作(可以把顯示存儲區(qū)中的數(shù)據(jù)反讀出來)儲區(qū)中的數(shù)據(jù)反讀出來)字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊RS:數(shù)據(jù)和指令選擇控制

16、端,RS=0:命令/狀態(tài);RS=1:數(shù)據(jù)R/W:讀寫控制線,R/W=0:寫操作;R/W=1:讀操作E:數(shù)據(jù)讀寫操作控制位,E線向LCD模塊發(fā)送一個脈沖,LCD模塊與單片機之間將進行一次數(shù)據(jù)交換字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 讀狀態(tài)操作 狀態(tài)字的最高位的BF為忙標志位,1表示LCD正在忙,0表示不忙。通過判斷最高位BF的0、1狀態(tài),就可以知道LCD當前是否處于忙狀態(tài),如果LCD一直處于忙狀態(tài),則繼續(xù)查詢等待,否則進行下面的操作。查詢忙狀態(tài)程序段如下:do i=lcd_r_start(); / 調(diào)用讀狀態(tài)函數(shù),讀取LCD狀態(tài)字 i&=0 x80; / 采用與操作屏蔽掉

17、低7位 delay(2);/ 延時 while(i!=0); / LCD忙,繼續(xù)查詢,否則退出循環(huán)字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 寫命令操作 LCD上電時,都必須按照一定的時序?qū)CD進行初始化操作,主要任務是設置LCD的工作方式、顯示狀態(tài)、清屏、輸入方式、光標位置等。 字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 寫命令操作 編號指令名稱控制信號命令字D7 D6 D5 D4 D3 D2 D1 D01清屏0 00 0 0 0 0 0 0 12歸home位0 00 0 0 0 0 0 1 3輸入方式設置0 00 0 0 0 0 1 I/D S4顯示狀態(tài)設置0 00

18、0 0 0 1 D C B5光標畫面滾動0 00 0 0 1 S/C R/L 6工作方式設置0 00 0 1 DL N F 7CGRAM地址設置0 00 1 A5 A4 A3 A2 A1 A08DDRAM地址設置0 01 A6 A5 A4 A3 A2 A1 A09讀BF和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 初始化操作 LCD初始工作方式設置顯示狀態(tài)設置清屏返回輸入方式設置001DL N F * *設置單片機與LCD接口數(shù)據(jù)位數(shù)DL、顯示行數(shù)N、字型FDL=1:8位、DL=0:4位; N=1:2行、N=0:1

19、行F=1:510、F=0:57例:00111000B(38H)設置數(shù)據(jù)位數(shù)8位,2行顯示,57點陣字符00001DCB設整體顯示開關D、光標開關C、光標位的字符閃耀BD=1:開顯示;C=0:不顯示光標;B=0:光標位字符不閃爍例:00001100B(0CH)打開LCD顯示,光標不顯示,光標位字符不閃爍清屏命令字01H,將光標設置為第一行第一列000001 I/D S設光標移動方向并確定整體顯示是否移動I/D=1:增量方式右移、I/D=0:減量方式左移S=1:移位、S=0:不移位例:00000110B(06H)設置光標增量方式右移,顯示字符不移動字符字符LCD LCD 液晶顯示和接口液晶顯示和接

20、口 寫命令操作 void lcd_w_cmd(unsigned char com) unsigned char i; do / 查LCD忙操作 i=lcd_r_start(); / 調(diào)用讀狀態(tài)字函數(shù) i=i&0 x80; / 與操作屏蔽掉低7位 delay(2); while(i!=0); / LCD忙,繼續(xù)查詢,否則退出循環(huán) RW=0; delay1(); RS=0; / RW=1,RS=0,寫LCD命令字 delay1(); E=1; /E端時序 delay1(); P1=com; /將com中的命令字寫入LCD數(shù)據(jù)口 delay1(); E=0; delay1(); RW=1;

21、delay(255);字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 寫數(shù)據(jù)操作 光標位置與相應命令字 列行 123456789101112131415161808182838485868788898A8B8C8D8E8F2C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF注:表中命令字以十六進制形式給出,該命令字就是與LCD顯示位置相對應的DDRAM地址。字符字符LCD LCD 液晶顯示和接口液晶顯示和接口 void lcd_w_dat(unsigned char dat) unsigned char i; do / 查忙操作 i=lcd_r_start();/ 調(diào)用讀狀

22、態(tài)字函數(shù) i=i&0 x80; / 與操作屏蔽掉低7位 delay(2); while(i!=0); / LCD忙,繼續(xù)查詢,否則退出循環(huán) RW=0; delay1(); RS=1;/ RW=1,RS=0,寫LCD命令字 delay1(); E=1;/ E端時序 delay1(); P1=dat;/ 將dat中的顯示數(shù)據(jù)寫入LCD數(shù)據(jù)口 delay1(); E=0; delay1(); RW=1; delay(255);單片機與鍵盤接口單片機與鍵盤接口單片機與鍵盤接口單片機與鍵盤接口p按鍵按照結(jié)構(gòu)原理可分為兩類,一類是觸點式開關按鍵,如機械式開關、導電橡膠式開關等;另一類是無觸點開關按

23、鍵,如電氣式按鍵,磁感應按鍵等。前者造價低,后者壽命長。p按照接口原理可分為編碼鍵盤與非編碼鍵盤兩類。主要區(qū)別是識別鍵符及給出相應鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對按鍵的識別,硬件結(jié)構(gòu)復雜;非編碼鍵盤主要是由軟件來實現(xiàn)按鍵的定義與識別,硬件結(jié)構(gòu)簡單,軟件編程量大。按鍵消抖處理:按鍵消抖處理:按鍵為機械彈性觸點開關,是利用機械觸點接按鍵為機械彈性觸點開關,是利用機械觸點接觸和分離實現(xiàn)電路的通斷。由于機械觸點的彈性作用,加上人們觸和分離實現(xiàn)電路的通斷。由于機械觸點的彈性作用,加上人們按鍵時的力度、方向的不同,按鍵開關從按下到接觸穩(wěn)定要經(jīng)過按鍵時的力度、方向的不同,按鍵開關從按下到接觸穩(wěn)定要經(jīng)

24、過數(shù)毫秒的彈跳抖動,既在按下的幾十毫秒時間里會連續(xù)產(chǎn)生多個數(shù)毫秒的彈跳抖動,既在按下的幾十毫秒時間里會連續(xù)產(chǎn)生多個脈沖。釋放按鍵時同樣會產(chǎn)生抖動脈沖。釋放按鍵時同樣會產(chǎn)生抖動 。這兩次抖動的時間分別為。這兩次抖動的時間分別為 5-10ms 左右,按鍵的穩(wěn)定閉合期通常大于左右,按鍵的穩(wěn)定閉合期通常大于 0.3-0.5 秒。為了確保秒。為了確保 MCU 對一次按鍵動作只確認一次,在確認按鍵是否閉合時,必須對一次按鍵動作只確認一次,在確認按鍵是否閉合時,必須要進行消抖處理。要進行消抖處理。硬件消抖硬件消抖,需要在按鍵連接的設計上增加硬件消抖電路,需要在按鍵連接的設計上增加硬件消抖電路,如如 R-S

25、觸發(fā)器或觸發(fā)器或 RC 積分電路等。積分電路等。軟件消抖軟件消抖,在軟件中對按鍵進行兩次確認,第一次檢測到,在軟件中對按鍵進行兩次確認,第一次檢測到按鍵按下后,間隔按鍵按下后,間隔 10ms 左右再次檢測該按鍵是否按下,兩左右再次檢測該按鍵是否按下,兩次都測到按鍵按下時才最終確認,從而消除了抖動的影響。次都測到按鍵按下時才最終確認,從而消除了抖動的影響。硬件消抖方式增加了系統(tǒng)的成本,而利用軟件方式消抖則硬件消抖方式增加了系統(tǒng)的成本,而利用軟件方式消抖則是比較經(jīng)濟的做法,但增加了軟件設計的復雜性。是比較經(jīng)濟的做法,但增加了軟件設計的復雜性。 在按鍵接口軟件中,除了要考慮按鍵消抖外,一般還要判在按

26、鍵接口軟件中,除了要考慮按鍵消抖外,一般還要判別按鍵的釋放,只有檢測到按鍵釋放以后,才能確定為一別按鍵的釋放,只有檢測到按鍵釋放以后,才能確定為一次完整的按鍵動作完成。次完整的按鍵動作完成。 軟件去抖 (a)檢測按鍵 (b)釋放按鍵 按鍵去抖流程圖獨立式按鍵 獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用。矩陣式按鍵 通常,矩陣式鍵盤的列線由單片機輸出口控制,行線連接單片機的輸入口。當鍵盤中按鍵數(shù)量較多時,為了減少對當鍵盤中按鍵數(shù)量較多時,為了減少對 I/O 口的占用,通口的占用,通常將按鍵排列成矩陣形式,也稱為行列鍵盤

27、。常將按鍵排列成矩陣形式,也稱為行列鍵盤。 unsigned char scan_key (void)unsigned char i,temp,m,n;bit find=0;P0=0 xff;for(i=0;i4;i+)P2=0 xfei;temp=P0;temp=temp&0 x0f;while(temp!=0)m=i;find=1;switch(temp)case 0 x01: n=0;break;case 0 x02: n=1;break;case 0 x04: n=2;break;case 0 x08: n=3;break;default: break;if(find=0) r

28、eturn -1;else return (n*4+m);單片機與鍵盤接口單片機與鍵盤接口矩陣式按鍵 鍵盤編程掃描法識別按鍵一般應包括以下內(nèi)容:(1)判別有無鍵按下。(2)鍵盤掃描取得閉合鍵的行、列號。(3)用計算法或查表法得到鍵值。(4)判斷閉合鍵是否釋放,如沒釋放則繼續(xù)等待。(5)將閉合鍵的鍵值保存,同時轉(zhuǎn)去執(zhí)行該閉合鍵的功能。完成鍵盤掃描和處理的程序是系統(tǒng)程序中的一個專完成鍵盤掃描和處理的程序是系統(tǒng)程序中的一個專用子程序,用子程序,MCU 調(diào)用該鍵盤掃描子程序?qū)︽I盤進調(diào)用該鍵盤掃描子程序?qū)︽I盤進行掃描和處理的方式有三種:行掃描和處理的方式有三種:1.程序控制掃描方式程序控制掃描方式。在主

29、控程序中的適當位置調(diào)用鍵盤。在主控程序中的適當位置調(diào)用鍵盤掃描程序,對鍵盤進行讀取和處理。掃描程序,對鍵盤進行讀取和處理。 2.定時掃描方式。定時掃描方式。使用使用 MCU 的一個定時器,使其產(chǎn)生一的一個定時器,使其產(chǎn)生一個個 10ms 的定時中斷,在連續(xù)兩次中斷中都讀到相同的按的定時中斷,在連續(xù)兩次中斷中都讀到相同的按鍵按下(間隔鍵按下(間隔 10ms 作為消抖處理),作為消抖處理),MCU 才執(zhí)行相應才執(zhí)行相應的鍵處理程序。的鍵處理程序。 3.中斷方式。中斷方式。鍵盤的硬件電路要做一定的改動,增加一個鍵盤的硬件電路要做一定的改動,增加一個按鍵產(chǎn)生中斷信號的輸入線,當鍵盤有按鍵按下時,鍵按鍵

30、產(chǎn)生中斷信號的輸入線,當鍵盤有按鍵按下時,鍵盤硬件電路產(chǎn)生一個外部的中斷信號,盤硬件電路產(chǎn)生一個外部的中斷信號,MCU 響應外部中響應外部中斷,進行鍵盤處理。斷,進行鍵盤處理。實際產(chǎn)品中按鍵的功能和使用:實際產(chǎn)品中按鍵的功能和使用:電子手表電子手表 只有只有2-3 個的按鍵,卻要實現(xiàn)時間、日期、個的按鍵,卻要實現(xiàn)時間、日期、鬧鐘時間的設置和查看顯示等多種功能,因此這些按鍵鬧鐘時間的設置和查看顯示等多種功能,因此這些按鍵是多功能(或復用)的,在不同的狀態(tài)下,按鍵的功能是多功能(或復用)的,在不同的狀態(tài)下,按鍵的功能也不同。也不同。手機鍵盤手機鍵盤 按鍵接口設計和實現(xiàn)的核心,更多的體現(xiàn)在軟件接口處

31、按鍵接口設計和實現(xiàn)的核心,更多的體現(xiàn)在軟件接口處理程序的設計中。理程序的設計中。有限狀態(tài)機分析設計的基本原理有限狀態(tài)機分析設計的基本原理 :有限狀態(tài)機由有限的狀態(tài)和相互之間的轉(zhuǎn)移構(gòu)成,有限狀態(tài)機由有限的狀態(tài)和相互之間的轉(zhuǎn)移構(gòu)成,在任何時候只能處于給定數(shù)目的狀態(tài)中的一個。當在任何時候只能處于給定數(shù)目的狀態(tài)中的一個。當接收到一個輸入事件時,狀態(tài)機產(chǎn)生一個輸出,同接收到一個輸入事件時,狀態(tài)機產(chǎn)生一個輸出,同時也可能伴隨著狀態(tài)的轉(zhuǎn)移。時也可能伴隨著狀態(tài)的轉(zhuǎn)移?;跔顟B(tài)機分析的簡單按鍵設計基于狀態(tài)機分析的簡單按鍵設計#define key_input P07 / 按鍵輸入口 #define key_st

32、ate_0 0 #define key_state_1 1 #define key_state_2 2 char read_key(void) static char key_state = 0; char key_press, key_return = 0; key_press = key_input; / 讀按鍵 I/O電平 switch (key_state) case key_state_0: / 按鍵初始態(tài) if (!key_press) key_state = key_state_1; / 鍵被按下,狀態(tài)轉(zhuǎn)換到鍵確認態(tài) break; case key_state_1: / 按鍵確認

33、態(tài) if (!key_press) key_return = 1; / 按鍵仍按下,按鍵確認輸出為“1” key_state = key_state_2; / 狀態(tài)轉(zhuǎn)換到鍵釋放態(tài) else key_state = key_state_0; / 按鍵已抬起,轉(zhuǎn)換到按鍵初始態(tài) break; case key_state_2: if (key_press) key_state = key_state_0; /按鍵已釋放,轉(zhuǎn)換到按鍵初始態(tài) break; return key_return; 定時掃描方式的鍵盤接口程序定時掃描方式的鍵盤接口程序鍵盤接口函數(shù)鍵盤接口函數(shù) read_keyboard()完成了對完成了對 4*3 鍵盤鍵盤的掃描識別和鍵盤的編碼。編碼鍵盤的定義使用的掃描識別和鍵盤的編碼。編碼鍵盤的定義使用 define 語句定義,鍵盤的形式:語句定義,鍵盤的形式:#define No_key 255 #define K1_1 1 #define K1_2 2 #define K1_3 3 #define K2_1 4 #define K2_2 5 #define K2_3 6 #define K3_1 7 #define K3_2 8 #define K3_3 9 #define K4_1 10 #define K4

溫馨提示

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

評論

0/150

提交評論