微型計(jì)算機(jī)原理與接口技術(shù):鍵盤與顯示技術(shù)_第1頁
微型計(jì)算機(jī)原理與接口技術(shù):鍵盤與顯示技術(shù)_第2頁
微型計(jì)算機(jī)原理與接口技術(shù):鍵盤與顯示技術(shù)_第3頁
微型計(jì)算機(jī)原理與接口技術(shù):鍵盤與顯示技術(shù)_第4頁
微型計(jì)算機(jī)原理與接口技術(shù):鍵盤與顯示技術(shù)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論