第7章顯示器與鍵盤接口技術_第1頁
第7章顯示器與鍵盤接口技術_第2頁
第7章顯示器與鍵盤接口技術_第3頁
第7章顯示器與鍵盤接口技術_第4頁
第7章顯示器與鍵盤接口技術_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、非編碼鍵盤接口非編碼鍵盤接口 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章第七章 顯示器與鍵盤接口技術顯示器與鍵盤接口技術 LEDLED數(shù)碼管顯示接口數(shù)碼管顯示接口 LEDLED(發(fā)光二極管)(發(fā)光二極管)是單片機系統(tǒng)的重要外設,是單片機系統(tǒng)的重要外設,用于顯示控制過程和運算結果。用于顯示控制過程和運算結果。 第七章 顯示器與鍵盤接口技術第一節(jié) LED數(shù)碼管顯示接口1. 1. LEDLED數(shù)碼管顯示原理數(shù)碼管顯示原理 LEDLED顯示器是單片機顯示器是單片機應用系統(tǒng)常用的輸出器應用系統(tǒng)常用的輸出器件。由若干發(fā)光二極管件。由若干發(fā)光二極管組成。組成。 控制不同組合的發(fā)光控制不同組合的發(fā)光二極管導通,就能

2、顯示二極管導通,就能顯示出各種不同的字形。出各種不同的字形。這種顯示器可分為共這種顯示器可分為共陰極和共陽極兩種,它陰極和共陽極兩種,它們的結構分別如右圖。們的結構分別如右圖。 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術GGabcdefgspspgfedcbadp.gfedcbadpcGdeg f Ga b(a) (a) 外型外型 (b) (b) 共陰極共陰極 (c) (c) 共陽極共陽極 圖圖 7-1 LED7-1 LED顯示器結構圖顯示器結構圖 表表7-1 八段八段LED段碼表段碼表第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術顯示顯示字符字符共陰極接法八段狀態(tài)共陰

3、極接法八段狀態(tài) s 共陰極接法共陰極接法段碼段碼(十六進制十六進制)共陽極接法共陽極接法段碼段碼(十六進制十六進制)0001111113FHC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011116FH90HA0111011177H88Hb011111007CH83Hc0011100139HC6Hd010111105EHA1HE0111100179H86HF0111000171H8EH滅(

4、空格)0000000000HFFHP0111001173H8CHH0111011076H89H1000000080H7FH0100000040HBFH2.2.數(shù)碼管顯示器的顯示方式數(shù)碼管顯示器的顯示方式 單片機應用系統(tǒng)單片機應用系統(tǒng) ,通常由多塊,通常由多塊LEDLED顯示器構成一個顯示器構成一個N N位的位的LEDLED顯示器顯示器; N N位位LEDLED顯示器有顯示器有N N根位選線和根位選線和8 8N N根段選線;根段選線; 位選線用于選中一個位選線用于選中一個LEDLED顯示器,段選線控制顯示的字形。顯示器,段選線控制顯示的字形。 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口

5、技術顯示方式顯示方式分類分類靜態(tài)顯示靜態(tài)顯示 動態(tài)顯示動態(tài)顯示 1 1). .數(shù)碼管顯示器的靜態(tài)顯示方式數(shù)碼管顯示器的靜態(tài)顯示方式 靜態(tài)顯示是指靜態(tài)顯示是指LED顯示器顯示某一字符時,相應的發(fā)光二極管恒定導通顯示器顯示某一字符時,相應的發(fā)光二極管恒定導通或恒定截止?;蚝愣ń刂?。 圖圖7-2所示為單片機所示為單片機AT89C51控制的控制的2位靜態(tài)位靜態(tài)LED顯示器接口電路,圖顯示器接口電路,圖中顯示器為共陽極顯示器。中顯示器為共陽極顯示器。 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術L E D 1L E D 2GGabcdefggfedcba圖圖 7-2 7-2 數(shù)碼管靜態(tài)顯示實

6、例數(shù)碼管靜態(tài)顯示實例 圖圖7-3所示所示流程圖:完流程圖:完成成099的計的計數(shù)功能。數(shù)功能。其中其中LED2顯顯示十位計數(shù)示十位計數(shù)值,值,LED1顯顯示個位計數(shù)示個位計數(shù)值。值。 靜態(tài)顯示靜態(tài)顯示唯有當計數(shù)唯有當計數(shù)值發(fā)生改變值發(fā)生改變時,才進行時,才進行數(shù)據(jù)的顯示數(shù)據(jù)的顯示更新更新! 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術圖圖 7-3 7-3 數(shù)碼管靜態(tài)顯示程序流程圖數(shù)碼管靜態(tài)顯示程序流程圖 實例實例7-17-1:根據(jù)如圖根據(jù)如圖7-2所示的數(shù)碼管靜態(tài)顯示實例和圖所示的數(shù)碼管靜態(tài)顯示實例和圖7-3所示的所示的流程圖,請列寫出實現(xiàn)流程圖,請列寫出實現(xiàn)099循環(huán)計數(shù)靜態(tài)顯示

7、的程序循環(huán)計數(shù)靜態(tài)顯示的程序( )。 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術MHzfosc12解:相應程序如下:解:相應程序如下: CNT_H EQU 61H ;計數(shù)待顯示十位數(shù)據(jù)計數(shù)待顯示十位數(shù)據(jù)CNT_L EQU 60H ;計數(shù)待顯示個位數(shù)據(jù)計數(shù)待顯示個位數(shù)據(jù) ORG 0000HLJMP MAINORG 0066HMAIN: MOV SP, #70HMOV CNT_H, #00H ;清除清除RAM 61H、60H單元內容單元內容MOV CNT_L, #00HLCALL DISPLAY ;調用顯示子程序調用顯示子程序第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術L

8、OOP: LCALL DELAY1SINCCNT_LMOVA, CNT_LXRLA, #10JNZDSPMOVCNT_L, #00HINCCNT_HMOVA, CNT_HXRLA, #10JNZDSPMOVCNT_H, #00H第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術DSP:LCALL DISPLAY ;調用顯示子程序調用顯示子程序LJMPLOOP;*DISPLAY:MOVDPTR, #TABLE ;顯示子程序顯示子程序MOVA, CNT_HMOVC A, A+DPTRMOVP3, AMOVDPTR, #TABLEMOVA, CNT_LMOVC A, A+DPTRMOVP1,

9、ARET第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術;*DELAY1S: MOVR3, #04H;延時延時1秒子程序秒子程序LOOP3: MOVR2, #0FAHLOOP2: MOVR1, #0F9H NOPLOOP1: NOP NOP DJNZR1, LOOP1 DJNZR2, LOOP2 DJNZR3, LOOP3 RETTABLE: DB C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END 2 2). .數(shù)碼管顯示器的動態(tài)顯示方式數(shù)碼管顯示器的動態(tài)顯示方式 動態(tài)顯示是一位一位地輪流循環(huán)點亮各位顯示器動態(tài)顯示是一位一位地輪流循環(huán)點亮各

10、位顯示器 。 每位延時點亮的時間為每位延時點亮的時間為15ms 。 利用人眼的視覺暫留效應,就可以給人同時顯示的感覺。利用人眼的視覺暫留效應,就可以給人同時顯示的感覺。圖圖7-4所示為單片機所示為單片機AT89C51控制的控制的2位動態(tài)位動態(tài)LED顯示器接口電路顯示器接口電路 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術L E D 1L E D 2abcdefgd pGA B /B AC EA 1A 2A 3A 4A 5A 6A 7A 0B 0Gd pgf edcbaB 7B 6B 5B 4B 3B 2B 1圖圖 7-4 數(shù)碼管動態(tài)顯示實例數(shù)碼管動態(tài)顯示實例 圖圖7-5所示所示流程

11、圖:完流程圖:完成成0099的的計數(shù)功能。計數(shù)功能。 共陽極顯共陽極顯示器示器 ! 為了實現(xiàn)為了實現(xiàn)電路的動態(tài)電路的動態(tài)掃描,程序掃描,程序采用采用T0溢出溢出中斷方式,中斷方式,實現(xiàn)實現(xiàn)4ms的的動態(tài)掃描。動態(tài)掃描。 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術圖圖 7-5 數(shù)碼管動態(tài)顯示程序流程圖數(shù)碼管動態(tài)顯示程序流程圖 開 始初始化系統(tǒng)(T0定時器初始化、T0開中斷)延時 1S個位計數(shù)值加1個位計數(shù)值=10 ?個位計數(shù)值清0,且十位計數(shù)值加1十位計數(shù)值=10 ?十位計數(shù)值清0結 束Y YN NY YN N動態(tài)顯示T0中斷服務子程序顯示控制位取反顯示控制位=1?個位數(shù)碼管陽極置

12、高電平十位數(shù)碼管陽極置低電平查找個位數(shù)據(jù)編碼個位數(shù)碼管陽極置低電平十位數(shù)碼管陽極置高電平查找十位數(shù)據(jù)編碼數(shù)據(jù)端口=數(shù)據(jù)編碼恢復現(xiàn)場保護現(xiàn)場 中斷返回Y YN NT0重裝初值實例實例7-27-2:根據(jù)如圖根據(jù)如圖7-4所示的數(shù)碼管動態(tài)顯示實例和圖所示的數(shù)碼管動態(tài)顯示實例和圖7-5所示的所示的流程圖,請編寫實現(xiàn)流程圖,請編寫實現(xiàn)099循環(huán)計數(shù)動態(tài)顯示程序循環(huán)計數(shù)動態(tài)顯示程序 ( )。 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術MHzfosc12解:相應程序如下:解:相應程序如下: H_C EQU P1.0 ;P1.0控制十位數(shù)碼管陽極控制十位數(shù)碼管陽極L_C EQU P1.1 ;P1

13、.1控制個位數(shù)碼管陽極控制個位數(shù)碼管陽極PORT_G EQU P3 ;數(shù)碼管數(shù)據(jù)端數(shù)碼管數(shù)據(jù)端DSP_C EQU 20H.0 ;顯示控制位:顯示控制位:1-顯示個位,顯示個位,0-顯示十位顯示十位CNT_H EQU 61H ;計數(shù)待顯示十位數(shù)據(jù)計數(shù)待顯示十位數(shù)據(jù)CNT_L EQU 60H ;計數(shù)待顯示個位數(shù)據(jù)計數(shù)待顯示個位數(shù)據(jù) ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術ORG0066HMAIN: MOVSP, #70HMOVCNT_H, #00H;清除清除RAM 61H、60H單元內容單元內容MOV

14、CNT_L, #00HMOVTMOD, #01HMOVTH0, #0F0H ;T0裝初值裝初值,延時延時4msMOVTL0, #5FHSETBET0SETBEASETBTR0 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術LOOP: LCALL DELAY1S;調用延時調用延時1秒子程序秒子程序INCCNT_LMOVA, CNT_LXRLA,#10JNZLOOPMOVCNT_L,#00HINCCNT_HMOVA, CNT_HXRLA,#10JNZLOOPMOVCNT_H,#00HLJMPLOOP第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術;*INT_T0:PUSH ACC

15、;T0中斷,實現(xiàn)動態(tài)顯示中斷,實現(xiàn)動態(tài)顯示PUSHPSWCPLDSP_C;顯示子程序顯示子程序JBDSP_C, DSPLCLRL_CSETBH_CMOVDPTR, #TABLE MOVA, CNT_HMOVC A, A+DPTRLJMPDPS_END 第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術DSPL: CLRH_C SETBL_C MOVDPTR, #TABLE MOVA, CNT_L MOVCA, A+DPTRDPS_END: MOVPORT_G, A MOVTH0, #0F0H;T0重裝初值重裝初值 MOVTL0, #5FH POPPSW POPACC RETI第一節(jié) LE

16、D數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術;*DELAY1S:MOVR3, #04H;延時延時1秒子程序秒子程序LOOP3:MOVR2, #0FAHLOOP2:MOVR1, #0F9HNOPLOOP1:NOPNOPDJNZR1, LOOP1DJNZR2, LOOP2DJNZR3, LOOP3RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H END 鍵盤是若干按鍵的集合,是單片機的常用輸入鍵盤是若干按鍵的集合,是單片機的常用輸入設備,操作人員可以通過鍵盤輸入數(shù)據(jù)或命令,設備,操作人員可以通過鍵盤輸入數(shù)據(jù)或命令,實現(xiàn)人機通信

17、實現(xiàn)人機通信; ;單片機的鍵盤通常使用機械觸點式按鍵開關單片機的鍵盤通常使用機械觸點式按鍵開關; 圖圖 7-6 7-6 反映了按鍵觸點的機械抖動情況反映了按鍵觸點的機械抖動情況。第七章 顯示器與鍵盤接口技術第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口 圖圖 7-6 7-6 按鍵觸點的機械抖動按鍵觸點的機械抖動 理想波形實際波形穩(wěn)定閉合釋放抖動按下抖動觸點去抖動:分觸點去抖動:分軟件去抖動軟件去抖動(軟件延時軟件延時10ms10ms)和和硬件去抖動硬件去抖動;鍵盤可以分為鍵盤可以分為獨立連接式獨立連接式和和行列(矩陣)式行列(矩陣)式兩類,每一類又可根據(jù)對鍵盤的譯碼方法分為兩類,每一類又可根據(jù)對鍵盤的譯

18、碼方法分為編碼鍵盤編碼鍵盤和和非編碼鍵盤非編碼鍵盤兩種類型。兩種類型。 第七章 顯示器與鍵盤接口技術第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口 編碼鍵盤編碼鍵盤是通過一個編碼電路來識別閉合鍵的鍵碼,是通過一個編碼電路來識別閉合鍵的鍵碼,具有去抖動功能,但硬件較復雜,具有去抖動功能,但硬件較復雜,PCPC機所用的標準鍵盤機所用的標準鍵盤就屬于這種;就屬于這種; 非編碼鍵盤非編碼鍵盤是通過軟件來識別鍵碼,需占用是通過軟件來識別鍵碼,需占用CPUCPU一定一定的時間,但硬件簡單,可以方便地增減鍵的數(shù)量,單片的時間,但硬件簡單,可以方便地增減鍵的數(shù)量,單片機應用系統(tǒng)中得到廣泛的應用;機應用系統(tǒng)中得到廣泛的應

19、用; 本節(jié)僅介紹本節(jié)僅介紹非編碼鍵盤非編碼鍵盤的原理和接口電路。的原理和接口電路。 第七章 顯示器與鍵盤接口技術第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口 1.1.獨立式按鍵接口獨立式按鍵接口 獨立式鍵獨立式鍵盤是每個按盤是每個按鍵獨立地占鍵獨立地占用一根數(shù)據(jù)用一根數(shù)據(jù)輸入線,圖輸入線,圖7-77-7所示。所示。 通常應用通常應用于按鍵數(shù)量于按鍵數(shù)量較少的場合較少的場合。 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口 第七章 顯示器與鍵盤接口技術圖圖 7-7 AT89C517-7 AT89C51對獨立式鍵盤的接口對獨立式鍵盤的接口 實例實例7-37-3:根據(jù)如圖根據(jù)如圖7-77-7所示的所示的AT89C51

20、AT89C51單片機與獨立式鍵盤的接口單片機與獨立式鍵盤的接口電路,請用查詢的方式寫出其鍵盤掃描程序。電路,請用查詢的方式寫出其鍵盤掃描程序。 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術解:相應程序如下:解:相應程序如下: ORG 0100HKEYSCAN: MOV P1, #0FFH ;置置P1口為輸入態(tài)口為輸入態(tài) MOV A, P1 ;讀入鍵值讀入鍵值 LCALL DELAY10ms ;延時延時10ms,去抖動,去抖動 MOV B, P1 ;再讀鍵值再讀鍵值 CJNE A, B, GORET ;兩次鍵值不一致,直接返回兩次鍵值不一致,直接返回 JNB ACC.0, K

21、EY0 ;0號鍵按下,轉號鍵按下,轉0號鍵功能程序號鍵功能程序 JNB ACC.1, KEY1 ;1號鍵按下,轉號鍵按下,轉1號鍵功能程序號鍵功能程序 JNB ACC.2, KEY2 ;2號鍵按下,轉號鍵按下,轉2號鍵功能程序號鍵功能程序 JNB ACC.3, KEY3 ;3號鍵按下,轉號鍵按下,轉3號鍵功能程序號鍵功能程序 JNB ACC.4, KEY4 ;4號鍵按下,轉號鍵按下,轉4號鍵功能程序號鍵功能程序 JNB ACC.5, KEY5 ;5號鍵按下,轉號鍵按下,轉5號鍵功能程序號鍵功能程序 JNB ACC.6, KEY6 ;6號鍵按下,轉號鍵按下,轉6號鍵功能程序號鍵功能程序 JNB

22、ACC.7, KEY7 ;7號鍵按下,轉號鍵按下,轉7號鍵功能程序號鍵功能程序GORET: RET ;從鍵盤服務子程序返回從鍵盤服務子程序返回第一節(jié) LED數(shù)碼管顯示接口第七章 顯示器與鍵盤接口技術KEY0: LCALL FUNC0;執(zhí)行執(zhí)行0號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY1: LCALL FUNC1;執(zhí)行執(zhí)行1號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY2: LCALL FUNC2;執(zhí)行執(zhí)行2號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY3: LCALL

23、FUNC3;執(zhí)行執(zhí)行3號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY4: LCALL FUNC4;執(zhí)行執(zhí)行4號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY5: LCALL FUNC5;執(zhí)行執(zhí)行5號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY6: LCALL FUNC6;執(zhí)行執(zhí)行6號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程序返回KEY7: LCALL FUNC7;執(zhí)行執(zhí)行7號鍵功能服務程序號鍵功能服務程序RET;從鍵盤服務子程序返回從鍵盤服務子程

24、序返回 2.2.行列式非編碼鍵盤接口行列式非編碼鍵盤接口 行列式鍵盤行列式鍵盤又稱矩陣式鍵又稱矩陣式鍵盤盤。 它是將它是將I/OI/O線的一部分作線的一部分作為行線,另一為行線,另一部分作為列線部分作為列線,按鍵設置在,按鍵設置在行線和列線的行線和列線的交叉處。交叉處。 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口 第七章 顯示器與鍵盤接口技術圖圖 7-8 47-8 44 4矩陣鍵盤電路圖矩陣鍵盤電路圖 x3x2x1x0y3y2y1y01514131211109876543210第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口 第七章 顯示器與鍵盤接口技術判別是否有鍵按下判別是否有鍵按下 識別按鍵位置(行掃描法)

25、識別按鍵位置(行掃描法) 鍵值的計算鍵值的計算 1 1). .判別是否有鍵按下判別是否有鍵按下 首先把首先把I/OI/O口口P1.0P1.0P1.3 P1.3 設置成輸出口,把設置成輸出口,把P1.4P1.4P1.7P1.7設置成輸入口,接著把全設置成輸入口,接著把全“0”0”送到送到P1.0P1.0 P1.3P1.3,這樣就可以在所有行線這樣就可以在所有行線x0 x0 x3x3上得到低電平,然后讀取上得到低電平,然后讀取y0y0y3y3上的列值就可以判斷是否有鍵按下。上的列值就可以判斷是否有鍵按下。 若無鍵按下,則所讀列值必全為若無鍵按下,則所讀列值必全為“1”1”;若;若有鍵按下有鍵按下,

26、則所讀列值必因被按按鍵的行、列線接通而則所讀列值必因被按按鍵的行、列線接通而不全為不全為“1”1”。 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術2 2). .識別按鍵位置(行掃描法)識別按鍵位置(行掃描法) 當鍵盤上某一個按鍵閉合時,則該按鍵所對當鍵盤上某一個按鍵閉合時,則該按鍵所對應的列線與行線短接。應的列線與行線短接。 應用應用“行掃描法行掃描法”來識別按鍵的位置。來識別按鍵的位置。第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術3 3). .鍵值的計算鍵值的計算 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術設鍵盤為設鍵盤為 矩陣鍵

27、盤,其中,矩陣鍵盤,其中, 為行數(shù),為行數(shù), 為列數(shù)為列數(shù)。如果由掃描法得按下按鍵的行號和列號分別為。如果由掃描法得按下按鍵的行號和列號分別為m m和和n n,則所按下按鍵的鍵值為:則所按下按鍵的鍵值為: 。nKmLLHKKHKLK 圖圖7-97-9為鍵盤掃描子程序的程序流程圖為鍵盤掃描子程序的程序流程圖第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術圖圖 7-9 7-9 鍵盤掃描子程序流程圖鍵盤掃描子程序流程圖 實例實例7-47-4:根據(jù)圖根據(jù)圖7-87-8所示的所示的4 44 4矩陣鍵盤電路圖矩陣鍵盤電路圖(程序流程圖如圖(程序流程圖如圖7-97-9所示),請寫出其鍵盤掃描

28、程序。所示),請寫出其鍵盤掃描程序。 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術解:相應程序如下:解:相應程序如下: KEYSCAN:ACALL KSCAN ;查有沒有鍵按下查有沒有鍵按下 JZ GORET ;A=0表示沒有鍵按下,返回表示沒有鍵按下,返回 LCALL DELAY10ms ;有鍵按下,延時有鍵按下,延時10ms,防抖動。,防抖動。;(延時(延時10ms的子程序的子程序DELAY10ms略)略) ACALL KSCAN ;再查有沒有鍵按下再查有沒有鍵按下 JZ GORET ;A=0表示沒有鍵按下,返回表示沒有鍵按下,返回 ACALL KEYSUM ;有鍵按下

29、,掃描確定鍵值有鍵按下,掃描確定鍵值 RL A RL A ;鍵值鍵值4; 主要考慮主要考慮FTAB 以下指令以下指令LCALL(3字節(jié))和字節(jié))和RET(1字節(jié))的總字節(jié))的總;字節(jié)數(shù)為字節(jié)數(shù)為4 MOV DPTR, #FTAB JMP A+DPTR ;散轉,執(zhí)行所按鍵相應功能子程序散轉,執(zhí)行所按鍵相應功能子程序GORET: RET 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術FTAB: LCALL FUNC0;調用調用0號鍵功能子程序號鍵功能子程序RETLCALL FUNC1;調用調用1鍵功能子程序鍵功能子程序RET . . .LCALL FUNC15;調用調用15鍵功能

30、子程序鍵功能子程序RETLCALL ERRSUB;鍵值為鍵值為16,異常處理,異常處理RET第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術; KSCAN為判斷有無鍵按下子程序,表示有鍵按下為判斷有無鍵按下子程序,表示有鍵按下KSCAN: MOVP1, #0F0H ;行線置低電平,列線置輸入態(tài)行線置低電平,列線置輸入態(tài) MOV A, P1 ;讀列線數(shù)據(jù)讀列線數(shù)據(jù) CPL A ;A取反取反 ANL A, #0F0H ;屏蔽行線屏蔽行線 RET ;返回,表示有鍵按下返回,表示有鍵按下; KEYSUM為求鍵值子程序,鍵值在為求鍵值子程序,鍵值在A中中KEYSUM:MOV R6, #0

31、0H ;R6存放每行最左鍵的鍵值,初始清零存放每行最左鍵的鍵值,初始清零 MOV R7, #0FEH ;準備掃描第準備掃描第0行行 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術LOOP: MOVP1, R7;逐行輸出逐行輸出0掃描掃描MOVA, P1;讀列線數(shù)據(jù)讀列線數(shù)據(jù)SWAP A;A的高低半字節(jié)交換的高低半字節(jié)交換JBACC.0, L1;第第0列無鍵按下,轉查第列無鍵按下,轉查第1列列MOVA, #0;第第0列有鍵按下,列有鍵按下,SJMPKSOLVE;轉求鍵值轉求鍵值L1:JBACC.1, L2;第第1列無鍵按下,轉查第列無鍵按下,轉查第2列列MOVA, #1;第第1

32、列有鍵按下,列有鍵按下,SJMPKSOLVE;轉求鍵值轉求鍵值L2:JBACC.2, L3;第第2列無鍵按下,轉查第列無鍵按下,轉查第3列列MOVA, #2;第第2列有鍵按下,列有鍵按下,SJMPKSOLVE;轉求鍵值轉求鍵值L3:JBACC.3, NEXT;4列均無鍵按下,本行掃描結束列均無鍵按下,本行掃描結束MOVA, #3;第第3列有鍵按下,列有鍵按下,SJMPKSOLVE;轉求鍵值轉求鍵值 第二節(jié) 非編碼鍵盤接口非編碼鍵盤接口第七章 顯示器與鍵盤接口技術NEXT: MOV A, R7;準備掃描下一行準備掃描下一行 JNB ACC.3,ERR;掃描完未讀到鍵值,異常處理掃描完未讀到鍵值,

33、異常處理 RL A;R7循環(huán)左移一位循環(huán)左移一位 MOV R7, A;得到下一行行掃描字得到下一行行掃描字 ADD R6, #4;得到下一行首鍵鍵值得到下一行首鍵鍵值 SJMP LOOP;轉轉LOOP,掃描下一行,掃描下一行ERR: MOV A, #16;鍵值賦鍵值賦16,表示出錯,表示出錯! RETKSOLVE:ADD A,R6;得鍵值得鍵值 PUSH ACC;鍵值進棧暫存鍵值進棧暫存WAIT: ACALL KSCAN;查按鍵釋放否?防止重復執(zhí)行鍵功能查按鍵釋放否?防止重復執(zhí)行鍵功能 JNZ WAIT;沒有釋放,等待沒有釋放,等待 POP ACC;鍵值出棧鍵值出棧 RET 在單片機應用系統(tǒng)中

34、,為節(jié)省在單片機應用系統(tǒng)中,為節(jié)省I/OI/O口線,可將口線,可將顯示電路和鍵盤做在一起,構成實用的鍵盤、顯示電路和鍵盤做在一起,構成實用的鍵盤、顯示器電路顯示器電路。 圖圖7-10 7-10 所示為實用的鍵盤所示為實用的鍵盤/ /顯示器接口電路顯示器接口電路。第七章 顯示器與鍵盤接口技術第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章 顯示器與鍵盤接口技術第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) IC0IC1IC2IC3共陽x3x2x1x0y3y2y1y01514131211109876543210LED0abcdefgdpGGdpgfedcbaLED1LED2LED3abcdefgdpGGdpgf

35、edcba圖圖 7-10 AT89C517-10 AT89C51對鍵盤對鍵盤/LED/LED的接口的接口 圖圖7-107-10所示的所示的4 44 4矩陣鍵盤電路已在第二節(jié)中矩陣鍵盤電路已在第二節(jié)中介紹過,鍵盤掃描程序與介紹過,鍵盤掃描程序與實例實例7-47-4介紹的介紹的KEYSCANKEYSCAN子程序相同;子程序相同; 圖圖7-107-10所示的所示的4 4位位LEDLED動態(tài)顯示電路與圖動態(tài)顯示電路與圖7-4 7-4 介紹的電路相同,只是介紹的電路相同,只是LEDLED的位數(shù)變成的位數(shù)變成4 4位位 。其其動態(tài)顯示子程序如下:動態(tài)顯示子程序如下: 第七章 顯示器與鍵盤接口技術第三節(jié) 鍵

36、盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章 顯示器與鍵盤接口技術第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) DPLAY: MOV R0,#30H ;R0指針指向顯示緩沖區(qū)首址指針指向顯示緩沖區(qū)首址 MOV DPTR,#SEGTAB MOV R2,#01H ;置位選碼初值置位選碼初值 MOV A,R2DISP: MOV P1,A ;輸出位選碼輸出位選碼 MOV A,R0 ;取出要顯示的數(shù),準備查段選碼取出要顯示的數(shù),準備查段選碼 MOVC A,A+DPTR ;查字型碼查字型碼 MOV P3,A ;段選碼送段選碼送P3口口 ACALL DELAY1ms ;延時延時1ms。延時子程序。延時子程序DELAY1ms略

37、略 INC R0 ;修改顯示緩沖區(qū)單元地址修改顯示緩沖區(qū)單元地址 MOV A,R2 JB ACC.3,GORET;4位顯示完否?位顯示完否? RL A ;未顯示完,位選碼左移未顯示完,位選碼左移1位位 MOV R2,A AJMP DISPGORET: RETSEGTAB:DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H DB 88H,83H,C6H,A1H,86H,8EH ;段選碼表段選碼表“0,1,2,,D,E,F” 由于鍵盤和顯由于鍵盤和顯示器共用一個接示器共用一個接口電路,所以鍵口電路,所以鍵盤和顯示器的控盤和顯示器的控制要統(tǒng)籌考慮,制要統(tǒng)籌考慮,程序

38、中既要完成程序中既要完成鍵盤的掃描,又鍵盤的掃描,又要完成要完成LEDLED顯示顯示器的動態(tài)顯示。器的動態(tài)顯示。程序的框圖如程序的框圖如圖圖7-117-11所示。所示。 第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章 顯示器與鍵盤接口技術圖圖 7-11 7-11 鍵盤、顯示程序流程圖鍵盤、顯示程序流程圖 實例實例7-57-5:請寫出圖請寫出圖7-117-11所示的鍵盤、顯示程序流程圖對應的程序所示的鍵盤、顯示程序流程圖對應的程序 。 第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章 顯示器與鍵盤接口技術解:相應程序如下:解:相應程序如下: ORG0000H LJMPMAIN ORG0100HMAIN

39、: . ;初始化部分初始化部分 . .KEYSCAN:LCALLKSCAN ;查有沒有鍵按下查有沒有鍵按下 JZ KS1 ;A=0表示沒有鍵按下,轉表示沒有鍵按下,轉KS1 AJMPKS2KS1: LCALLDPLAY ;調用動態(tài)顯示子程序,顯示一遍調用動態(tài)顯示子程序,顯示一遍 AJMPKEYSCAN第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章 顯示器與鍵盤接口技術;以下循環(huán)次數(shù)以下循環(huán)次數(shù)L的選取要使顯示子程序運行總時間約為的選取要使顯示子程序運行總時間約為10ms,作為防,作為防;抖動延時。抖動延時。KS2:MOVR3, #L;防抖動延時防抖動延時10msDELY: LCALL DPLAY

40、;調用動態(tài)顯示子程序,顯示一遍調用動態(tài)顯示子程序,顯示一遍DJNZR3, DELY;延時結束延時結束LCALL KSCAN;查有沒有鍵按下查有沒有鍵按下JZKS1;A=0表示沒有鍵按下,轉表示沒有鍵按下,轉KS1LCALL KEYSUM;有鍵按下,行掃描法確定鍵值有鍵按下,行掃描法確定鍵值;以下條指令完成鍵值中的內容乘以倍以下條指令完成鍵值中的內容乘以倍 MOVR2, A RL AADDA,R2RL A;鍵值鍵值6 第三節(jié) 鍵盤與顯示系統(tǒng)鍵盤與顯示系統(tǒng) 第七章 顯示器與鍵盤接口技術; 主要考慮主要考慮FTAB 以下指令以下指令LCALL(3字節(jié))和字節(jié))和LJMP(3字節(jié))的總字節(jié))的總;字節(jié)數(shù)為字節(jié)數(shù)為6MOVDPTR, #FTABJMPA+DPTR;散轉,執(zhí)行所按鍵相應功能子程序散轉,執(zhí)行所按鍵相應功能子程序FTAB: LCALL FUNC0;調用調用0號鍵功能子程序號鍵功能子程序LJMPKS1;程序進

溫馨提示

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

評論

0/150

提交評論