版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
§8鍵盤與顯示技術(shù)
本章學(xué)習(xí)要求:1、掌握鍵盤的硬件、軟件設(shè)計(jì)2、掌握LED數(shù)碼管顯示器的硬件、軟件設(shè)計(jì)
主要內(nèi)容:
1、鍵盤掃描方法--逐行掃描法、行反轉(zhuǎn)法
2、LED顯示硬件設(shè)計(jì)--動(dòng)態(tài)顯示與靜態(tài)顯示
3、LED顯示軟件設(shè)計(jì)--軟件譯碼的方法一、鍵盤概述1、獨(dú)立式鍵盤與行列式鍵盤的電路結(jié)構(gòu)§8.1鍵盤技術(shù)+5V+5V+5V┇I(xiàn)/O接口CPU┅┅┅┅┇┇┇┇I(xiàn)/O接口I/O接口CPU行線(m)列線(n)2、鍵盤工作方式編程掃描方式(前面講的)和中斷方式兩種。中斷方式電路結(jié)構(gòu)如下:5V鍵穩(wěn)定鍵按下前沿抖動(dòng)前沿抖動(dòng)3、按鍵抖動(dòng)問題4、重鍵問題和優(yōu)先級(jí)問題行列式鍵盤的編碼與鍵值(a)二進(jìn)制組合編碼(b)順序排列編碼5、鍵盤編碼問題二、獨(dú)立式鍵盤設(shè)計(jì)與編程例1:鍵盤電路采用4位獨(dú)立式按鍵結(jié)構(gòu),有重鍵發(fā)生時(shí)鍵值小的優(yōu)先,(不考慮延時(shí)去抖問題)硬件設(shè)計(jì):1、鍵值采用非編碼方式MOVDX,PORTINAL,DXANDAL,0FHCMPAL,0EH;1110BJZPP0CMPAL,0DH;1101BJZPP1CMPAL,0BH;1011BJZPP2CMPAL,07H;0111BJZPP3
PP0:……
MOVBL,-1 ;BL用于保存鍵值
MOVDX,PORT ;PORT是鍵盤端口地址
INAL,DX ;讀入鍵值
ANDAL,0FH ;屏蔽高4位
CMPAL,0FH ;判是否有鍵按下
JEEXT ;無鍵按下轉(zhuǎn)移NT: INCBL RORAL,1 ;最低位移至CF JCNT ;本位無鍵按下,判下一位
┇EXT: ……2、鍵值采用非編碼方式,讀取的鍵值放在BL中。三、采用逐行掃描法的鍵盤設(shè)計(jì)B口發(fā)全00000讀A口判是否有鍵按下?1111N????端口A端口B三、采用逐行掃描法的鍵盤設(shè)計(jì)B口發(fā)全00000讀A口判是否有鍵按下?1101N端口A端口B????三、采用逐行掃描法的鍵盤設(shè)計(jì)B口發(fā)全00111讀A口判是否有鍵按下?判是否有鍵按下?1111NB口逐行發(fā)0Y讀A口N端口A端口B????三、采用逐行掃描法的鍵盤設(shè)計(jì)B口發(fā)全01011讀A口判是否有鍵按下?判是否有鍵按下?1101NB口逐行發(fā)0Y讀A口N代碼組合(B口)+(A口)YB口逐行發(fā)0Y讀A口端口A端口B判是否有鍵按下?1101
1011=DBH例2:鍵盤電路采用4
4矩陣結(jié)構(gòu),允許有重鍵發(fā)生,鍵值采用二進(jìn)制組合編碼方式,讀取的鍵值放在BL中。(不考慮延時(shí)去抖問題)硬件設(shè)計(jì):PORTBPORTA MOVDX,PORTB ;PORTB是列線端口地址
MOVAL,0 OUTDX,AL ;列線發(fā)全0 MOVDX,PORTA ;PORTA是行線端口地址NT: INAL,DX ;讀入行線值
ANDAL,0FH ;屏蔽高4位
CMPAL,0FH ;判是否有鍵按下
JENT ;無鍵按下轉(zhuǎn)移
MOVDX,PORTB ;PORTB是列線端口地址
MOVBL,0FEH ;BL最低位為0NL: MOVAL,BL OUTDX,AL ;PORTB逐行發(fā)0 軟件設(shè)計(jì):(略掉了8255A初始化) MOVDX,PORTA INAL,DX ;讀入行線值
ANDAL,0FH ;屏蔽高4位
CMPAL,0FH ;判本列是否有鍵按下
JNEKY ;本列有鍵按下轉(zhuǎn)移
ROLBL,1 ;循環(huán)左移更新掃描字
JMPNL ;轉(zhuǎn)至從PORTB掃描下一行KY: MOVCL,4 ROLBL,CL ;循環(huán)左移4位
ORBL,AL ;列與行代碼組合
┇例3:(參考P358圖9.6)
8255A的A口作為列線,定義為輸出口,B口作為行線,定義為輸入口。8255A的端口基地址為300H。采用順序編碼方式,有重鍵發(fā)生時(shí),鍵值小的優(yōu)先,鍵值放在BX中。KEYPROCNEARMOVAL,10000010B ;方式0,A口輸出,B口輸入
MOVDX,303H;303H為8255A控制口
OUTDX,AL
;--------鍵掃描程序段-------ST:MOVAL,0MOVDX,300H ;300H為8255A的A口地址
OUTDX,AL ;A口列線送全“0”MOVDX,301H ;301H為8255A的B口地址
INAL,DX;讀入B口行線值
CMPAL,0FFH JEEE ;無鍵按下,退出
;---------有鍵按下延時(shí)去抖----------CALLDL_20msMOVDX,301H ;301H為8255A的B口地址
INAL,DX;讀入B口行線值
CMPAL,0FFHJEEE;---------有鍵按下求出鍵值----------MOVBL,0 ;鍵號(hào)初值為0MOVAH,0FEH ;掃描字初值送AHMOVCX,8NR:MOVAL,AH ;掃描字送ALMOVDX,300H ;300H為8255A的A口地址
OUTDX,AL ;從A口列線送掃描字
ROLAL,1 ;掃描字循環(huán)左移1位
MOVAH,AL ;新掃描字送AH保存
MOVDX,301H ;301H為8255A的B口地址
INAL,DX ;讀入B口列線值
CMPAL,0FFH ;判本行是否有鍵按下
JNECK ;本行有鍵按下轉(zhuǎn)移
ADDBL,8 ;行號(hào)加8LOOPNR ;繼續(xù)下一行掃描CK:RCRAL,1 ;列線值帶進(jìn)位循環(huán)右移1位,從低位開始 找值為0的列線
JNCPP ;CF=0本列有鍵按下,轉(zhuǎn)鍵釋放判別程序
INCBL ;無鍵按下,鍵值加1,再移位
JMPCK --------判鍵釋放-------PP:MOVAL,0MOVDX,300H ;300H為8255A的A口地址
OUTDX,AL ;A端口送全“0”MOVDX,301H ;301H為8255A的B口地址
INAL,DX ;讀入列線值
CMPAL,0FFH JNZPP ;鍵未釋放再判
RETEE:
MOVBL,-1 ;無鍵按下BL=-1 RETKEYENDP
四、采用行反轉(zhuǎn)法的鍵盤設(shè)計(jì)000011010BH四、采用行反轉(zhuǎn)法的鍵盤設(shè)計(jì)10110DH1101組合后鍵值=0BDH
;8255A初始化略(A口出、B口入)
MOVDX,PORTA ;PORTA是A端口地址
MOVAL,0 OUTDX,AL ;行線發(fā)全0 軟件設(shè)計(jì): MOVDX,PORTB;PORTB是B端口地址NT: INAL,DX ;讀列線值
ANDAL,0FH ;屏蔽高4位
CMPAL,0FH ;判是否有鍵按下
JENT ;無鍵按下轉(zhuǎn)移
MOVBL,AL ;保存列線值;8255A初始化略(B口出、A口入,MOVAL,BL
)
OUTDX,AL ;從列線反送讀入的數(shù)據(jù) MOVDX,PORTA
INAL,
DX ;讀行線值
ANDAL,0FH ;屏蔽高4位 MOVCL,4 ROLBL,CL ;BL循環(huán)左移4位
ORBL,AL ;代碼組合例題4:鍵盤電路采用8
8矩陣結(jié)構(gòu),允許有重鍵發(fā)生,鍵值采用二進(jìn)制組合編碼方式,讀取的鍵值放在BX中。(P358圖9.6);行反轉(zhuǎn)法;出口:鍵值的在BX中
MOV AL,10010000B;方式0,A口輸入,B口輸出
MOV DX,303H ;303H為8255A控制口
OUT DX,AL--------鍵掃描程序段-------ST:MOV AL,0MOV DX,301H ;301H為8255A的B口地址
OUT DX,AL ;B口送全“0”MOV DX,300H ;300H為8255A的A口地址
INAL,DX ;讀入列值
CMP AL,0FFH JEEE ;無鍵按下轉(zhuǎn)移
CALL DL_10ms;延時(shí)10~20msINAL,DX ;讀入列值
CMP AL,0FFH JEEE ;無鍵按下轉(zhuǎn)移PUSH AX ;列值進(jìn)棧保護(hù)(供代碼組合使用)PUSH AX ;供反轉(zhuǎn)使用MOV AL,10000010B;初始化字:方式0,A口輸出,B口輸入MOV DX,303H ;303H為8255A控制口OUT DX,ALPOP AXMOV DX,300H ;300H為A口地址OUT DX,AL ;從A口列線反送掃描字MOV DX,301H ;301H為8255A的B口地址
IN AL,DX ;讀B口行線值MOVBL,ALPOP AXMOV BH,AL ;(BX)鍵值=列線值+行線值;--------判鍵釋放-------MOVDX,300H ;300H為8255A的A口地址
MOVAL,0OUTDX,AL ;A口列線送全“0”MOVDX,301H ;301H為8255A的B口地址PJ:INAL,DX ;讀入B口行線值
CMPAL,0FFH ;判鍵釋放
JNEPJ ;鍵未釋放再判
;--------根據(jù)鍵值散轉(zhuǎn)-------AA1:CMPBX,0FEFEH ;根據(jù)鍵值散轉(zhuǎn)
JEPP0CMPBX,0FEFDHJEPP1┇JMPSTPP0: …
;鍵處理程序1RETPP1:…
;鍵處理程序2RET┇EE:
…
;后續(xù)程序
┇鍵盤按鍵結(jié)構(gòu)示意圖五、計(jì)算機(jī)大鍵盤簡(jiǎn)介鍵盤插座示意圖及各引腳功能思考題:
1、設(shè)計(jì)一個(gè)2行8列鍵盤,使用8255A的A口作行線,B口作列線,設(shè):8255A的端口基地址為310H。
2、仿照書上例題,用逐行掃描法為該鍵盤編寫一個(gè)鍵掃描子程序,要求寫出程序注釋,以及程序的出口和入口。共陰acbdefgdpacbdefgdp+5V共陽一、LED顯示器結(jié)構(gòu)§8.2
LED顯示器接口
二、CPU與LED顯示器的接口bfedgdpac01100110例如:
顯示接口D7D4D6D3D5D1D2D0aDBgfedcbdpCPUCPUD0D7四位靜態(tài)LED顯示器電路八位LED動(dòng)態(tài)顯示器電路使用硬件譯碼的靜態(tài)顯示電路使用軟件譯碼的靜態(tài)顯示電路例1:利用8255A設(shè)計(jì)一個(gè)6位、軟件譯碼的動(dòng)態(tài)顯示電路。設(shè)計(jì)出的硬件電路如下圖所示:共陰DSP:LEASI,D_BUF ;顯示緩沖區(qū)首址送SI
MOVBL,F(xiàn)EH ;使顯示器最右邊位亮
MOVCX,06H ;顯示6位LD0:MOVAL,[SI]
;從顯示緩沖區(qū)取數(shù)據(jù)
PUSHBXLEABX,W_TAB ;W_TAB是字形碼表
XLAT ;查表,字形碼在AL中
MOVDX,PORT_A;PORT_A是A口地址
OUTDX,ALPOPBXMOVDX,PORT_C;PORT_C是C口地址
MOVAL,BLOUTDX,,AL ;位選擇字送C口CALLDLY_2ms ;延時(shí)ROLBL ;指向下一位INCSI
;指向下一個(gè)待顯示數(shù)據(jù)LOOPLD0RET
例2:
8255A的A端口編程為方式0,A端口向7段LED顯示器提供段碼,端口C的低4位作為開關(guān)數(shù)據(jù)輸入。本例中,實(shí)現(xiàn)的功能是:將4位開關(guān)輸入的二進(jìn)制數(shù)(≤9)轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù),并在7段LED上顯示。設(shè)8255A的A端口地址為200H。本例采用了共陰極7段LED顯示器,需輸出高電平將7段LED顯示器點(diǎn)亮;如果采用共陽極顯示器,可在程序中將共陰極的字形碼取出后用NOT指令取反即可。開關(guān)輸入與顯示程序如下:DATASEGMENTSEGTABDB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,67H;定義7段碼表DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX
┇MOVAL,10000001B;8255A初始化
MOVDX,203HOUTDX,AL
MOVDX,202H;端口C地址
INAL,DX;讀C口的開關(guān)狀態(tài)
LEABX,SEGTAB XLAT;查表求段碼
MOVDX,200H;向端口A輸出7段碼
OUTDX,AL
┇ MOVAX,4C00H;返回DOS操作系統(tǒng)
INT21HCODE ENDS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生院節(jié)油管理制度
- 衛(wèi)生室人員規(guī)章制度
- 污水廠5s衛(wèi)生管理制度
- 洗澡堂衛(wèi)生管理制度
- 農(nóng)商行衛(wèi)生管理制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院防盜管理制度
- 公司電教室衛(wèi)生管理制度
- 衛(wèi)生所急救急診制度
- 養(yǎng)老院衛(wèi)生管理制度
- 衛(wèi)生院防范邪教工作制度
- 2025年國家能源局公務(wù)員面試備考指南及模擬題集
- 2025年CCAA國家注冊(cè)審核員考試(有機(jī)產(chǎn)品認(rèn)證基礎(chǔ))復(fù)習(xí)題及答案一
- 軍隊(duì)自行采購管理辦法
- 2025年廉政知識(shí)測(cè)試題庫(含答案)
- 脊柱內(nèi)鏡手術(shù)機(jī)器人系統(tǒng)設(shè)計(jì)與精準(zhǔn)位置控制研究
- (高清版)DG∕TJ 08-9-2023 建筑抗震設(shè)計(jì)標(biāo)準(zhǔn)
- 《特種設(shè)備74號(hào)令宣貫材料》知識(shí)培訓(xùn)
- 波形護(hù)欄施工質(zhì)量控制方案
- 2024年重慶市中考英語試卷真題B卷(含標(biāo)準(zhǔn)答案及解析)+聽力音頻
- 系統(tǒng)性紅斑狼瘡的飲食護(hù)理
- 電氣試驗(yàn)報(bào)告模板
評(píng)論
0/150
提交評(píng)論