![第07章 顯示器與鍵盤接口技術(shù)_第1頁(yè)](http://file4.renrendoc.com/view/09cb28259f36bd7eb74d59d2cfebdc96/09cb28259f36bd7eb74d59d2cfebdc961.gif)
![第07章 顯示器與鍵盤接口技術(shù)_第2頁(yè)](http://file4.renrendoc.com/view/09cb28259f36bd7eb74d59d2cfebdc96/09cb28259f36bd7eb74d59d2cfebdc962.gif)
![第07章 顯示器與鍵盤接口技術(shù)_第3頁(yè)](http://file4.renrendoc.com/view/09cb28259f36bd7eb74d59d2cfebdc96/09cb28259f36bd7eb74d59d2cfebdc963.gif)
![第07章 顯示器與鍵盤接口技術(shù)_第4頁(yè)](http://file4.renrendoc.com/view/09cb28259f36bd7eb74d59d2cfebdc96/09cb28259f36bd7eb74d59d2cfebdc964.gif)
![第07章 顯示器與鍵盤接口技術(shù)_第5頁(yè)](http://file4.renrendoc.com/view/09cb28259f36bd7eb74d59d2cfebdc96/09cb28259f36bd7eb74d59d2cfebdc965.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章顯示器與鍵盤接口技術(shù)
鍵盤與顯示系統(tǒng)
非編碼鍵盤接口
LED數(shù)碼管顯示接口
7.1LED數(shù)碼管顯示接口顯示器和鍵盤是兩種重要外設(shè)鍵盤用于輸入數(shù)據(jù)和命令顯示器用于顯示控制過程和運(yùn)算結(jié)果一、LED數(shù)碼管顯示原理
◆LED數(shù)碼管是單片機(jī)系統(tǒng)常用的顯示器件。它由若干發(fā)光二極管組成
◆控制不同組合的發(fā)光二極管導(dǎo)通,就能顯示出不同的數(shù)字◆LED數(shù)碼管分為共陰極和共陽極兩種7.1LED數(shù)碼管顯示接口7.1LED數(shù)碼管顯示接口1.共陰極LED數(shù)碼管
spgfedcba顯示2:01011011=5BH
spgfedcba顯示b:01111100=7CH7.1LED數(shù)碼管顯示接口共陰極數(shù)碼管段碼表7.1LED數(shù)碼管顯示接口2.共陽極LED數(shù)碼管
spgfedcba顯示2:10100100=A4H
spgfedcba顯示b:10000011=83H7.1LED數(shù)碼管顯示接口共陽極數(shù)碼管段碼表二、數(shù)碼管的顯示方式
7.1LED數(shù)碼管顯示接口顯示方式靜態(tài)顯示
動(dòng)態(tài)顯示
◆靜態(tài)顯示是指LED數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止。7.1LED數(shù)碼管顯示接口1.靜態(tài)顯示方式7.1LED數(shù)碼管顯示接口圖示為51單片機(jī)控制2位LED數(shù)碼管靜態(tài)顯示接口電路,圖中數(shù)碼管為共陽極7.1LED數(shù)碼管顯示接口◆完成0~99循環(huán)計(jì)數(shù)靜態(tài)顯示功能的程序流程圖。LED2顯示十位計(jì)數(shù)值LED1顯示個(gè)位計(jì)數(shù)值
7.1LED數(shù)碼管顯示接口源程序
CNT_HEQU61H ;計(jì)數(shù)待顯示十位數(shù)據(jù)
CNT_LEQU60H ;計(jì)數(shù)待顯示個(gè)位數(shù)據(jù)
ORG0000H LJMPMAIN ORG 0066HMAIN: MOVSP,#70H MOVCNT_H,#00H ;61H、60H單元清0 MOVCNT_L,#00H LCALLDISPLAY ;調(diào)用顯示子程序7.1LED數(shù)碼管顯示接口LOOP:LCALLDELAY1S INC CNT_L MOV A, CNT_L XRL A, #10 JNZ DSP MOV CNT_L,#00H INC CNT_H MOV A, CNT_H XRL A, #10 JNZ DSP MOV CNT_H,#00HDSP: LCALLDISPLAY ;調(diào)用顯示子程序
LJMP LOOP7.1LED數(shù)碼管顯示接口DISPLAY:MOVDPTR,#TABLE;顯示子程序
MOV A,CNT_H MOVC A,@A+DPTR MOV P3,A MOV DPTR,#TABLE MOV A,CNT_L MOVC A,@A+DPTR MOV P1,A RETTABLE:DB0C0H,0F9H,0A4H,0B0H,99H DB92H,82H,0F8H,80H,90H7.1LED數(shù)碼管顯示接口;************************************DELAY1S:MOV R3,#04H ;延時(shí)1秒子程序LOOP3:MOV R2,#0FAHLOOP2:MOV R1,#0F9H NOPLOOP1:NOP NOP DJNZ R1,LOOP1 DJNZ R2,LOOP2 DJNZ R3,LOOP3 RET END利用人眼的視覺暫留效應(yīng),就可以給人同時(shí)顯示的感覺7.1LED數(shù)碼管顯示接口2.動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示是一位一位地輪流循環(huán)點(diǎn)亮各位數(shù)碼管,每位點(diǎn)亮的時(shí)間為1~5ms7.1LED數(shù)碼管顯示接口圖示為51單片機(jī)控制的4位LED數(shù)碼管動(dòng)態(tài)顯示接口電路為方便與數(shù)碼管的顯示接口,在片內(nèi)RAM的30H開始設(shè)置顯示緩沖區(qū),如圖所示7.1LED數(shù)碼管顯示接口什么叫顯示緩沖區(qū)?DPLAY:MOV R0,#30H ;R0指針指向顯示緩沖區(qū)首址
MOV DPTR,#SEGTAB MOV R2,#01H ;置位選碼初值
MOV A,R2DISP: MOV P1,A ;輸出位選碼
MOV A,@R0 ;取出要顯示的數(shù),準(zhǔn)備查段選碼
MOVCA,@A+DPTR;查字型碼
MOV P3,A ;段選碼送P3口
ACALLDELAY1MS ;延時(shí)1ms。延時(shí)子程序DELAY1MS略
INC R0 ;修改顯示緩沖區(qū)單元地址
MOV A,R2 JB ACC.3,GORET;4位顯示完否?
RLA ;未顯示完,位選碼左移1位
MOV R2,A AJMPDISPGORET:RETSEGTAB:DBC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HDB
88H,83H,C6H,A1H,86H,8EH4位LED數(shù)碼管動(dòng)態(tài)顯示子程序如果要在4位數(shù)碼管上動(dòng)態(tài)顯示××.×,顯示緩沖區(qū)中應(yīng)放什么內(nèi)容?程序如何修改?共陽極數(shù)碼管L的段碼是多少?共陽極數(shù)碼管y的段碼是多少?如果要在4位數(shù)碼管上動(dòng)態(tài)顯示PLAY,顯示緩沖區(qū)中應(yīng)放什么內(nèi)容?程序如何修改?
spgfedcba顯示L:11000111=C7H
spgfedcba顯示y:10010001=91H討論題共陰極數(shù)碼管與共陽極數(shù)碼管有什么不同?動(dòng)態(tài)掃描顯示是基于什么機(jī)理?靜態(tài)顯示與動(dòng)態(tài)顯示各有什么特點(diǎn)?消除按鍵抖動(dòng)有哪些方法?獨(dú)立式鍵盤和行列式鍵盤各有什么特點(diǎn)?行列式鍵盤是如何識(shí)別按鍵的?下次課前預(yù)習(xí)7.2和7.3,并思考下列問題7.2非編碼鍵盤接口鍵盤編碼鍵盤通過編碼電路識(shí)別鍵碼,硬件較復(fù)雜非編碼鍵盤通過軟件識(shí)別鍵碼,硬件簡(jiǎn)單7.2非編碼鍵盤接口◆鍵盤是若干按鍵的集合,是單片機(jī)常用輸入設(shè)備,操作人員可以通過鍵盤輸入數(shù)據(jù)或命令◆單片機(jī)的鍵盤通常使用機(jī)械觸點(diǎn)式按鍵開關(guān)◆按鍵觸點(diǎn)在閉合或斷開時(shí)會(huì)產(chǎn)生抖動(dòng)現(xiàn)象7.2非編碼鍵盤接口◆觸點(diǎn)的去抖動(dòng)方法●軟件去抖動(dòng):軟件延時(shí)10ms●硬件去抖動(dòng):R-S觸發(fā)器一、獨(dú)立式按鍵接口
常用于按鍵數(shù)量較少的場(chǎng)合7.2非編碼鍵盤接口
ORG0100HKEYSCAN: MOVP1,#0FFH MOVA,P1 LCALLDEL10MS MOVB,P1 CJNEA,B,GORET JNBACC.0,KEY0 JNBACC.1,KEY1 JNBACC.2,KEY2 JNBACC.3,KEY3 JNBACC.4,KEY4 JNBACC.5,KEY5 JNBACC.6,KEY6 JNBACC.7,KEY7GORET:RET獨(dú)立式鍵盤接口按鍵查詢子程序這條指令做什么用?KEY0: LCALL FUNC0 RET KEY1: LCALL FUNC1 RET KEY2: LCALL FUNC2 RET KEY3: LCALL FUNC3 RET KEY4: LCALL FUNC4 RET KEY5: LCALL FUNC5 RET KEY6: LCALL FUNC6 RET KEY7: LCALL FUNC7 RET 獨(dú)立式鍵盤接口按鍵查詢子程序(續(xù))二、行列式非編碼鍵盤接口
按鍵設(shè)置在行線和列線的交叉處7.2非編碼鍵盤接口7.2非編碼鍵盤接口判別是否有鍵按下
識(shí)別按鍵位置(逐行掃描)
鍵值的計(jì)算按鍵識(shí)別步驟
7.2非編碼鍵盤接口1.判別是否有鍵按下──全掃描各行線同時(shí)送低電平同時(shí)讀各列線的值全為1,則無鍵按下不全為1,則有鍵按下7.2非編碼鍵盤接口2.識(shí)別按鍵位置──逐行掃描依次使每條行線為低電平,分別讀取列線值全為1,則按鍵不在這一行不全為1,按鍵就在這一行7.2非編碼鍵盤接口3.鍵值的計(jì)算鍵值=(行號(hào)×列數(shù))+列號(hào)
=行首鍵值+列號(hào)行首鍵值:每行第0列的鍵值列號(hào):指列的序號(hào)例如Y0列的列號(hào)為0例如Y1列的列號(hào)為1例如5號(hào)鍵的列號(hào)是15號(hào)鍵的行首鍵值是4鍵值=行首鍵值+列號(hào)=5鍵盤掃描子程序流程圖KEYSCAN:ACALLKSCAN ;全掃描,查看有沒有鍵按下
JZ GORET ;A=0說明沒有鍵按下,返回
LCALLDEL10MS;有鍵按下,延時(shí)10ms去抖動(dòng)
ACALLKSCAN ;全掃描,再查有沒有鍵按下
JZ GORET ;A=0說明沒有鍵按下,返回
ACALLKEYSUM ;有鍵按下,逐行掃描確定鍵值
RL A RL A ;鍵值×4 MOVDPTR,#FTAB JMP@A+DPTR ;散轉(zhuǎn),執(zhí)行所按鍵相應(yīng)功能子程序GORET:RET
4×4行列式鍵盤掃描子程序FTAB: LCALL FUNC0 ;調(diào)用0號(hào)鍵功能子程序
RET ;返回主程序
LCALL FUNC1 ;調(diào)用1號(hào)鍵功能子程序
RET ;返回主程序
. . . LCALL FUNC15;調(diào)用15鍵功能子程序
RET ;返回主程序
LCALL ERRSUB;鍵值為16,異常處理
RET;KSCAN為判斷有無鍵按下子程序,A≠0表示有鍵按下KSCAN:MOV P1,#0F0H;行線同時(shí)低電平,列線準(zhǔn)備讀
MOV A,P1 ;讀取列線數(shù)據(jù),全為1無鍵按下
CPL A ;A取反
ANL A,#0F0H;屏蔽行線,A全為0無鍵按下
RET ;返回,A≠0表示有鍵按下4×4矩陣式鍵盤掃描子程序(續(xù))識(shí)別按鍵位置──逐行掃描依次使每條行線為低電平,分別讀取列線值全為1,則按鍵不在這一行不全為1,按鍵就在這一行KEYSUM:MOV R6,#00H;R6存放行首鍵值,0行首鍵值=0 MOV R7,#0FEH;第0行的行掃描字LOOP: MOV P1,R7 ;逐行輸出行掃描字
MOV A,P1 ;讀列線數(shù)據(jù)
SWAPA ;A的高低半字節(jié)交換
JB ACC.0,L1 ;第0列無鍵按下,轉(zhuǎn)查第1列
MOV A,#0 ;第0列有鍵按下,列號(hào)0送A SJMPKSOLVE ;轉(zhuǎn)求鍵值
L1: JB ACC.1,L2 ;第1列無鍵按下,轉(zhuǎn)查第2列
MOV A,#1 ;第1列有鍵按下,列號(hào)1送A
SJMPKSOLVE ;轉(zhuǎn)求鍵值
L2: JB ACC.2,L3 ;第2列無鍵按下,轉(zhuǎn)查第3列
MOV A,#2 ;第2列有鍵按下,列號(hào)2送A
SJMPKSOLVE ;轉(zhuǎn)求鍵值
L3: JB ACC.3,NEXT;第3列無鍵按下,本行掃描結(jié)束
MOV A,#3 ;第3列有鍵按下,列號(hào)3送A
SJMPKSOLVE ;轉(zhuǎn)求鍵值求鍵值子程序(鍵值在A中返回)NEXT: MOV A,R7 ;取出行掃描字
JNB ACC.3,ERR ;已掃描完仍未查到被按鍵,異常處理
RL A ;未掃描完,則R7循環(huán)左移一位
MOV R7,A ;得到下一行的行掃描字
ADD R6,#4 ;得到下一行的行首鍵值
SJMP LOOP ;轉(zhuǎn)LOOP,掃描下一行ERR: MOV A,#16 ;鍵值賦16,表示出錯(cuò)! RETKSOLVE:ADD A,R6 ;計(jì)算鍵值,鍵值=行首鍵值+列號(hào)
PUSHACC ;鍵值進(jìn)棧暫存WAIT: ACALLKSCAN ;查按鍵釋放否?防止重復(fù)執(zhí)行鍵功能
JNZ WAIT ;沒有釋放,等待
POP ACC ;鍵值出棧
RET ;返回到ACALLKEYSUM的下一句求鍵值子程序(續(xù))7.3鍵盤與顯示系統(tǒng)◆在單片機(jī)應(yīng)用系統(tǒng)中,為節(jié)省I/O口線,可將數(shù)碼管顯示器和鍵盤結(jié)合起來,構(gòu)成實(shí)用的鍵盤與顯示系統(tǒng)。7.3鍵盤與顯示系統(tǒng)7.3鍵盤與顯示系統(tǒng)◆圖中4×4行列式鍵盤剛才介紹過,鍵盤掃描程序與前面的KEYSCAN子程序相同
◆圖中的4位LED動(dòng)態(tài)掃描顯示電路上節(jié)課已介紹過,4位數(shù)碼管動(dòng)態(tài)顯示子程序如下:
DPLAY:MOV R0,#30H ;R0指向顯示緩沖區(qū)首址
MOV DPTR,#SEGTAB MOV R2,#01H ;置位選碼初值
MOV A,R2DISP: MOV P1,A ;輸出位選碼
MOV A,@R0 ;取出要顯示的數(shù),準(zhǔn)備查段選碼
MOVCA,@A+DPTR;查字形碼
MOV P3,A ;字形碼送P3口
ACALLDELAY1MS ;延時(shí)1ms。延時(shí)子程序DELAY1MS略
INC R0 ;修改顯示緩沖區(qū)單元地址
MOV A,R2 JB ACC.3,GORET;4位顯示完否?
RLA ;未顯示完,位選碼左移1位
MOV R2,A AJMPDISPGORET:RETSEGTAB:DBC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HDB
88H,83H,C6H,A1H,86H,8EH4位LED數(shù)碼管動(dòng)態(tài)顯示子程序鍵盤與顯示系統(tǒng)程序流程圖
鍵盤與顯示系統(tǒng)主程序
ORG 0000H LJMP MAIN ORG 0100HMAIN: . ;初始化部分(略)
. .KEYSCAN:LCALL KSCAN;全掃描,檢查是否有鍵按下
JZ KS1 ;A=0表示沒有鍵按下,轉(zhuǎn)KS1 AJMP KS2KS1: LCALL DPLAY ;調(diào)用動(dòng)態(tài)顯示子程序,顯示一遍
AJMP KEYSCANKS2: MOV R3,#L ;利用動(dòng)態(tài)掃描防抖動(dòng)延時(shí)約10msDELY: LCALL DPLAY ;調(diào)用動(dòng)態(tài)顯示子程序,顯示一遍
DJNZ R3,DELY;延時(shí)大約10ms時(shí)間到
LCALL KSCAN ;全掃描,再查是否有鍵按下
JZ KS1 ;A=0表示沒有鍵按下,轉(zhuǎn)KS1 LCALL KEYSUM;有鍵按下,逐行掃描確定鍵值KSCAN:MOV P1,#0F0H;準(zhǔn)備讀
MOV A,P1 CPL A ANL A,#0F0H RET ;A=0則無鍵按下KEYSUM為求鍵值子程序,鍵值在A中返回
MOV R2,ARL A ADD A,R2 ;鍵值×3 RL A ;鍵值×6 MOV DPTR,#FTAB JMP @A+DPTR ;散轉(zhuǎn),執(zhí)行所按鍵相應(yīng)功能子程序FTAB: LCALL FUNC0 ;調(diào)用0號(hào)鍵功能子程序
LJMP KS1 ;程序進(jìn)入循環(huán)
LCALL FUNC1 ;調(diào)用1鍵
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年《薪酬管理》學(xué)習(xí)心得模版(2篇)
- 2025年9月保潔員個(gè)人工作總結(jié)例文(三篇)
- 2025年上半年農(nóng)調(diào)隊(duì)工作總結(jié)樣本(三篇)
- 二零二五年度江蘇省人事勞動(dòng)合同(文化創(chuàng)意產(chǎn)業(yè)人才培養(yǎng))
- 2025抵押典當(dāng)借款合同
- 兒童康復(fù)治療知識(shí)試題及答案
- 自考《00233 稅法》考前強(qiáng)化練習(xí)試題庫(kù)(含答案)
- 2025年河北藝術(shù)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年江漢藝術(shù)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年杭州萬向職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025江蘇太倉(cāng)水務(wù)集團(tuán)招聘18人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年人教新版高二(上)英語寒假作業(yè)(五)
- 借款人解除合同通知書(2024年版)
- 江蘇省泰州市靖江市2024屆九年級(jí)下學(xué)期中考一模數(shù)學(xué)試卷(含答案)
- 沐足店長(zhǎng)合同范例
- 《旅游資料翻譯》課件
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2024年湖南省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 2025屆天津市部分學(xué)校高三年級(jí)八校聯(lián)考英語試題含解析
- 微項(xiàng)目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(cè)(魯科版)
- 廣東省廣州市黃埔區(qū)2024-2025學(xué)年八年級(jí)物理上學(xué)期教學(xué)質(zhì)量監(jiān)測(cè)試題
評(píng)論
0/150
提交評(píng)論