版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第四章鍵盤、顯示等接口4.1
按鍵、鍵盤及其接口4.2
LED顯示及顯示器接口4.3LCD顯示及顯示器接口4.4微型打印機接口4.5語音接口技術4.6其它接口4.1.1鍵輸入過程與軟件結構MCS–51單片機鍵輸入過程4.1按鍵、鍵盤及其接口4.1.2鍵盤接口和鍵輸入軟件中應解決的幾個問題1.消除鍵抖動2.鍵編碼及鍵值3.鍵盤的監(jiān)測方法4.1.3獨立式按鍵1.獨立式按鍵接口結構2.獨立式按鍵的軟件結構4.1.4行列式鍵盤1.行列式鍵盤的接口2.鍵盤工作原理1)查詢工作方式2)定時掃描工作方式3)中斷工作方式1、鍵盤的分類鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤.而靠軟件編程來識別的稱為非編碼鍵盤;在單片機組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。也有用到編碼鍵盤的。4.1.1鍵輸入過程與軟件結構MCS–51單片機鍵輸入過程4.1按鍵、鍵盤及其接口有否鍵按下?是哪個鍵按下?根據(jù)鍵值散轉
對于計算機應用系統(tǒng),鍵盤掃描只是CPU工作的一部分,鍵盤處理只是在有鍵按下時才有意義。對是否有鍵按下的信息輸入方式有中斷方式與查詢方式兩種。3.鍵盤的監(jiān)測方法1.獨立式按鍵接口結構獨立式按鍵的接口電路示意圖(a)中斷方式;(b)查詢方式4.1.2獨立式按鍵一般用排阻進行上拉。下面是查詢方式的鍵盤程序。K0~K7為功能程序入口地址標號,PROM0~PROM7分別為每個按鍵的功能程序。設按鍵從P1口輸入。START:MOVA,#0FFH ;MOVP1,A;置P1口為輸入狀態(tài) MOVA,P1;鍵狀態(tài)輸入JNBACC.0,K0;檢測0號鍵是否按下,按下轉JNBACC.1,K1;檢測1號鍵是否按下,按下轉2.獨立式按鍵的軟件結構JNBACC.2,K2 ;檢測2號鍵是否按下,按下轉JNBACC.3,K3 ;檢測3號鍵是否按下,按下轉JNBACC.4,K4;檢測4號鍵是否按下,按下轉JNBACC.5,K5;檢測5號鍵是否按下,按下轉JNBACC.6,K6;檢測6號鍵是否按下,按下轉JNBACC.7,K7;檢測7號鍵是否按下,按下轉AJMPSTART ;無鍵按下返回,再順次檢測K0:AJMPPROM0K1:AJMPPROM1
K7:AJIMPPROM7;入口地址表…PROM0:………;0號鍵功能程序………LJMPSTART ;0號鍵功能程序執(zhí)行完返回PROM1:………;1號鍵功能程序………LJMPSTART ;1號鍵功能程序執(zhí)行完返回
PROM7:………;7號鍵功能程序 ………LJMPSTART ;7號鍵功能程序執(zhí)行完返回…START:MOVA,#0FFH ;MOVP1,A;置P1口為輸入狀態(tài)MOVA,P1;鍵狀態(tài)輸入JNBACC.0,K0;檢測0號鍵是否按下,按下轉JNBACC.1,K1;檢測1號鍵是否按下,按下轉
●●●JNBACC.6,K6;檢測6號鍵是否按下,按下轉JNBACC.7,K7;檢測7號鍵是否按下,按下轉AJMPSTART;無鍵按下返回,再順次檢測K0:AJMPPROM0K1:AJMPPROM1
●●●K7:AJMPPROM7PROM0:………;0號鍵功能程序………LJMPSTART;0號鍵功能程序執(zhí)行完返回PROM1:…………;1號鍵功能程序…………LJMPSTART
●●●
PROM7:………;7號鍵功能程序 …………LJMPSTART;入口地址表獨立式按鍵的軟件結構行列式鍵盤又叫矩陣式鍵盤。用I/O口線組成行、列結構,按鍵設置在行列的交點上。例如4×4的行列結構可組成16個鍵的鍵盤。因此,在按鍵數(shù)量較多時,可以節(jié)省I/O口線。4.1.4行列式鍵盤行列式鍵盤的接口方法有許多,例如直接接口于單片機的I/O口上;利用擴展的并行I/O接口;用串行口擴展并行I/O口接口;利用一種可編程的鍵盤、顯示接口芯片8279進行接口等。其中,利用擴展的并行I/O接口方法方便靈活,在單片機應用系統(tǒng)中比較常用。1.行列式鍵盤的接口(1)用鍵盤連接的I/O線的二進制組合表示鍵碼例如用4行、4列線構成的16個鍵的鍵盤,可使用一個8位I/O口線的高、低4位口線的二進制數(shù)的組合表示16個鍵的編碼。2.鍵編碼及鍵值如圖所示,各鍵相應的鍵值為: 88H、84H、82H、81H、 48H、44H、42H、41H、 28H、24H、22H、21H、 18H、14H、12H、11H。這種鍵值編碼軟件較為簡單直觀,但離散性大,不便安排散轉程序的入口地址。(2)順序排列鍵編碼如圖所示,這種方法鍵值的形成要根據(jù)I/O線的狀態(tài)作相應的程序處理。鍵碼可按下式形成:鍵碼=行首鍵碼+列號D4:0行→0000D5:1行→0100D6:2行→1000D7:3行→1100D0:0列→0000D1:1列→0001D2:2列→0010D3:3列→0011行列鍵碼0000,0001,0010,00110100,0101,0110,01111000,1001,1010,10111100,1101,1110,11110行3行0列3列行首鍵碼列號列線行線0123456701230行:000001行:010002行:100003行:11000行首鍵碼列號000~111鍵碼=行首鍵碼+列號鍵碼:0行:00000~001111行:01000~011112行:10000~101113行:11000~111118155擴展I/O口組成的行列式鍵盤共32個鍵PA口每位依次送出0,如有某鍵按下,則在PC口能讀到相應的值,結合PA口的信息,則能確定鍵值。列線行線012345670123按鍵設置在行、列線的交點上,行、列線分別連接到按鍵開關的兩端。行線通過上拉電阻接+5V,被箝位在高電平狀態(tài)。
對鍵盤的工作過程可分兩步:第一步是CPU首先檢測鍵盤上是否有鍵按下;第二步是再識別是哪一個鍵按下。
檢測鍵盤上有無鍵按下可采用查詢工作方式、定時掃描工作方式和中斷工作方式。2.行列式鍵盤工作原理⑴判斷有無鍵按下是由列線送入全掃描字,讀入行線狀態(tài)來判別的。其方法是:PA口輸出00H,即所有列線置成低電平,然后將行線電平狀態(tài)讀入累加器A中。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入狀態(tài)不全為"1"。⑵判斷哪一個鍵按下是由列線逐列置低電平后,檢查行輸入狀態(tài),稱為逐列掃描。其方法是:從PA0開始,依次輸出"0",置對應的列線為低電平,然后從PC口讀入行線狀態(tài),如果全為"1",則所按下之鍵不在此列;如果不全為"1",則所按下的鍵必在此列,而且是與0電平行線相交的交點上的那個鍵。⑶為求取鍵碼,在逐列掃描時,可用計數(shù)器記錄下當前掃描列的列號,然后用行線值為"0"的行首鍵碼加列號的辦法計算。1)查詢工作方式列線行線0123456701230行:000001行:010002行:100003行:11000行首鍵碼如12號鍵按下,列掃描號為0100,PC口讀入時PC1=0,可確定行首鍵碼為01000,故鍵值為:01000+0100=011001.消除鍵抖動鍵穩(wěn)定鍵按下后沿抖動前沿抖動鍵合、鍵斷時的電壓抖動4.1.3鍵盤接口和鍵輸入軟件中應解決的幾個問題硬件:采用消除鍵抖動電路原理:基本RS觸發(fā)器,/S=0,Q=1/R=0,Q=0抖動時,/R=/S=1,Q不變。/S
/RQ軟件:采用延時判別程序(具體程序后敘)有鍵按下否調用6ms延時子程序開始調用12ms延時子程序有鍵按下否判斷閉合鍵,鍵碼入棧保存閉合鍵釋放否鍵碼→A返回YYYNNN鍵盤掃描子程序流程框圖鍵盤掃描子程序如下:KEY1:ACALLTM6;調6ms延時子程序ACALLKS1 ;調用判斷有無鍵按下子程序JNZLK1 ;有鍵按下時,(A)≠0轉消抖延時AJMPKEY1 ;無鍵按下返回LK1:ACALLTM12;調12ms延時子程序ACALLKS1 ;查有無鍵按下,若有則真有鍵按下JNZLK2 ;鍵(A)≠0逐列掃描AJMPKEY1 ;不是真有鍵按下,返回轉逐列掃描LK2:MOVR2,#0FEH ;初始列掃描字(0列)送入R2
MOVR4,#00H ;初始列(0列)號送入R4LK4:MOVDPTR,#7F01H ;DPTR指向8155PA口 MOVA,R2 ;列掃描字送至8155PA口MOVX@DPTR,AINCDPTR INCDPTR;DPTR指向8155PC口MOVXA,@DPTR ;從8155PC口讀入行狀態(tài)
JBACC.0,L_ONE ;查第0行無鍵按下,轉查第1行MOVA,#00H ;第0行有鍵按下,行首鍵碼#00H→AAJMPLKP ;轉求鍵碼L_ONE:JBACC.1,L_TWO ;查第1行無鍵按下,轉查第2行MOVA,#08H ;第1行有鍵按下,行首鍵碼#08H→AAJMPLKP
;轉求鍵碼;逐列掃描11111110R2=L_TWO:JBACC.2,L_THR;查第2行無鍵按下,轉查第3行MOVA,#10H;第2行有鍵按下,行首鍵碼#10H→AAJMPLKP;轉求鍵碼L_THR:JBACC.3,NEXT;查第3行無鍵按下,轉向查下一列MOVA,#18H ;第3行有鍵按下,行首鍵碼#18H→ALKP:ADDA,R4 ;求鍵碼,鍵碼=行首鍵碼+列號PUSHACC ;鍵碼進棧保護LK3:ACALLKS1 ;等待鍵釋放JNZLK3 ;鍵未釋放,等待POPACC ;鍵釋放,鍵碼→ARET ;鍵掃描結束,出口狀態(tài)(A)=鍵碼;開始求鍵碼;逐列掃描(續(xù))NEXT:INCR4 ;準備掃描下一列,列號加1MOVA,R2 ;取列號送累加器AJNBACC.7,KEND;判斷8列掃描否?掃描完返回RLA ;掃描字左移一位,變?yōu)橄乱涣袙呙枳諱OVR2,A ;掃描字送入R2AJMPLK4 ;轉下一列掃描KEND:AJMPKEY1 ;
從新開始鍵掃描。
;準備掃描下一列;逐列掃描(續(xù))11111110R2=1111110101111111掃描第0列第1列第7列············KS1:MOVDPTR,#7F01H ;DPTR指向8155PA口MOVA,#00H ;全掃描字→AMOVX@DPTR,A ;全掃描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,@DPTR;讀入PC口行狀態(tài)CPLA ;以高電平表示有鍵按下ANLA,#0FH ;屏蔽高4位,只保留低4位行線值RET ;出口狀態(tài):(A)≠0時有鍵按下TM12:MOVR7,#18H;延時12ms子程序TM6:MOVR6,#0FFHTM61:DJNZR6,TM61DJNZR7,TM6RET;判有無鍵按下鍵盤上有鍵閉合否開始KM=1KP=1返回1→KM0→KM0→KP查詢鍵碼1→KPNNNYYY2)定時掃描工作方式定時掃描方式程序框圖思路:CPU每隔一定時間對鍵盤進行一次掃描,并將結果置成不同標志。KM,KP:標志位無按鍵:0→KM,0→KP第一次讀到鍵:1→KM第二次讀到鍵:查詢鍵碼,1→KP。如KM=KP=1,表示已查詢過的按鍵沒釋放,不再繼續(xù)查詢。計算機應用系統(tǒng)工作時,并不經(jīng)常需要鍵輸入。但無論是查詢工作方式還是定時掃描工作方式,CPU經(jīng)常處于空掃描狀態(tài)。為了提高CPU的效率,可采用中斷工作方式。這種工作方式是當鍵盤上有鍵按下時,向CPU發(fā)一個中斷請求信號,CPU響應中斷后,在中斷服務程序中掃描鍵盤,執(zhí)行鍵功能程序。中斷服務程序中應完成鍵識別、消除抖動、排除多次執(zhí)行鍵功能操作等功能,可參考查詢工作方式鍵盤程序。3)中斷工作方式
§1MCS-51與顯示器的接口為方便人們觀察和監(jiān)視單片機的運行,通常需要用一種顯示器作為單片機的輸出設備,用來顯示單片機的鍵輸入值、中間信息及運算結果。單片機系統(tǒng)中常用的顯示器主要有LED(發(fā)光二極管)和LCD(液晶顯示器)。兩種顯示器具有耗電省、配置靈活、線路簡單、安裝方便、耐振動、壽命長等優(yōu)點。兩者相比,LED價格更低廉,結構更簡單;LCD功耗更低,顯示清晰度更高。一.MCS-51對LED的接口1.LED的種類LED(Light-EmittingDiode)是發(fā)光二極管的簡稱。LED有七段和八段之分,也有共陰和共陽兩種。
(a)共陰LED結構(b)共陰LED(c)共陽LEDabcdefgspabcdefgspGGacdefbgabsp2.LED數(shù)碼顯示管原理數(shù)碼管發(fā)光原理分兩種情況:共陽極型a,b,c,d,e,f,g各引腳哪個輸入低電平,哪個二極管發(fā)亮;共陰極型a-g哪個為高電平,哪個二極管亮。每個二極管為段,不同的發(fā)光段亮,可組成不同字形。
對于共陰LED,顯示“3”,需要在8個管腳上施加控制電平04FH->(字型碼),04FH是按照h,g,f,e,d,c,b,aD7D6D5D4D3D2D1D001001111
對于共陽LED,顯示“3”
字型碼是h,g,f,e,d,c,b,aD7D6D5D4D3D2D1D0
10110000
七段LED的段選碼顯示字符共陰極段選碼共陽極段選碼顯示字符共陰極段選碼共陽極段選碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“滅”00HFFHA77H88HB7CH83H
dpgfedcbaD7D6D5D4D3D2D1D03.MCS-51對LED的顯示MCS-51對LED的顯示分為靜態(tài)和動態(tài)兩種。靜態(tài)顯示的特點是:每個數(shù)碼管能穩(wěn)定地同時顯示各自字形;即工作過程中加在每一個LED上的信號始終同時存在。各位的顯示字符一旦確定,加在每一塊顯示器上的信號維持不變,直到顯示另一個字符為止。優(yōu)點:各顯示模塊相互獨立,顯示亮度高,編程簡單。缺點:需占用較多的硬件資源。單片機系統(tǒng)中,常采用74LS47、MC14495等芯片作為LED的靜態(tài)顯示接口。
4.2.2LED顯示器與顯示方式1.LED靜態(tài)顯示方式N位靜態(tài)顯示器要求有N×8根I/O口線1.硬件譯碼顯示器接口MC14495內部邏輯與引腳圖4.2.3LED顯示器接口鎖存/譯碼/驅動器地址譯碼和字段ROM陣列bcdefgh+iaVCR290Ω×98434鎖存器5A6B9C10D7LE12111314151216VDDVSS1111111111111174LS48,4511,4543,14495等4位靜態(tài)LED顯示器接口譯碼器1#MC14495abcdefgG2#MC14495abcdefgG3#MC14495abcdefgG4#MC14495abcdefgGLELELELE8031GABY1Y0Y2Y3P1.7P1.6P1.5P1.4P1.2P1.1P1.0MC14495芯片的作用是輸入被顯示字符的二進制碼(或BCD碼),并把它自動轉換成相應字形碼,送給LED顯示。譯碼器1#MC14495abcdefgG2#MC14495abcdefgG3#MC14495abcdefgG4#MC14495abcdefgGLELELELE8031GABY1Y0Y2Y3P1.7P1.6P1.5P1.4P1.2P1.1P1.0P1.7-P1.4用于輸出欲顯示字符的二進制碼(BCD碼);P1.2控制二四譯碼器工作;P1.1和P1.0經(jīng)譯碼輸出后控制MC14495中哪一個接收欲顯示的代碼。使用MC14495的8位LED靜態(tài)顯示接口顯示方式:靜態(tài)??诰€占用:8根。使用芯片:3/8譯碼器1片。
MC14495顯示譯碼器8片。
動態(tài)顯示動態(tài)顯示是指各LED輪流地一遍一遍顯示各自字符;人們因為視覺器官惰性而看到的是各LED似乎在同時顯示不同字形。
特點是所有LED的段選線并聯(lián)在一起,而每個LED對應一根位選線位選線控制哪一位接收字段碼。采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示:各位共用一個字形口,利用相應的字位選擇輪流向各位送出字形碼。
優(yōu)點:硬件開銷小。
缺點:顯示的亮度比靜態(tài)顯示差些,位數(shù)越多,在動態(tài)顯示時亮度越低,同時需要CPU用于顯示刷新的頻率越高。軟件編程較復雜;其實質是:以犧牲CPU的時間換取系統(tǒng)的低功耗,節(jié)省了系統(tǒng)資源但使顯示亮度降低。為了保證顯示效果,動態(tài)顯示位數(shù)不能太多,一般不超過8位。8位LED動態(tài)顯示器電路2.LED動態(tài)顯示方式N位動態(tài)顯示器要求有N+8根I/O口線。P272例7.78031GALEEAP0.0P0.7WRRDP2.7RESETALERDWRRESETAD7AD0CEIO/MPB7PB6PB5PB4PB3PB2PB1PB0PC5PC4PC3PC2PC1PC08155LED5LED4LED3LED2LED1LED08003H8002HGGGGG共陽請根據(jù)上圖編出能在LED5—LED0上顯示1995.6的動態(tài)顯示子程序。例
解:設顯示緩沖區(qū)放在CPU內部RAM中,始址為70H,顯示緩沖區(qū)中被顯示字符的字形碼表的地址偏移量應預先放入。如下圖所示:06H13H05H09H09H01HDS0DS1DS2DS3DS4DS570H71H72H73H74H75H76H
ORG0600HDISPLY:MOVA,#06H;方式控制字06H送AMOVDPTR,#8000HMOVX@DPTR,A;方式控制字送8155命令口DISPLY1:MOVR0,#70H;顯示緩沖區(qū)始址送R0
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學習十大章心得體會
- 以前曠課檢討書
- 高端定制銷售總結
- 2025房屋裝修裝飾合同書
- 2025車體車身廣告合同
- 2025房地產(chǎn)居間服務合同個人
- 教育領域實訓室的安全教育推廣
- 教育科技助力家庭學習策略實踐
- 2025危險品運輸承包合同的
- 宅基地房產(chǎn)歸屬權合同(2篇)
- 吸氧術課件教學課件
- 八年級數(shù)學家長會課件
- 光伏發(fā)電項目試驗檢測計劃
- 民航概論5套模擬試卷考試題帶答案
- 2024屆中國電建地產(chǎn)校園招聘網(wǎng)申平臺高頻500題難、易錯點模擬試題附帶答案詳解
- COCA20000詞匯音標版表格
- 滬教版七年級數(shù)學上冊專題06圖形的運動(原卷版+解析)
- JTG-T-F20-2015公路路面基層施工技術細則
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標準
- 建筑垃圾減排及資源化處置措施
- 2024年遼寧石化職業(yè)技術學院單招職業(yè)適應性測試題庫附答案
評論
0/150
提交評論