




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第六章鍵盤接口2鍵盤接口的功能識(shí)別鍵盤矩陣中的被按鍵清除按鍵時(shí)產(chǎn)生的抖動(dòng)干擾防止按鍵操作的串鍵錯(cuò)誤產(chǎn)生被按鍵相應(yīng)的鍵碼3第一節(jié)鍵盤的工作原理一、單個(gè)按鍵的結(jié)構(gòu)4二、鍵盤的接法1.獨(dú)立式按鍵直接用I/O口線構(gòu)成的單個(gè)按鍵電路。每根I/O口線上按鍵的工作狀態(tài)不會(huì)影響其他I/O口線的工作狀態(tài)。一個(gè)鍵對應(yīng)一個(gè)I/O口位5鍵盤的接法2.矩陣式鍵盤行線、列線按鍵設(shè)置在行列交點(diǎn)上,行列線分別連接到按鍵開關(guān)的兩端。當(dāng)行線通過上拉電阻接+5伏時(shí),被鉗位在高電平狀態(tài)。鍵盤中有無按鍵按下是由列線送入全掃描字、行線讀入行線狀態(tài)來判斷的。鍵盤中哪一個(gè)鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷。6三、鍵盤的兩種基本類型1.編碼鍵盤鍵盤內(nèi)部能自動(dòng)檢測被按下的鍵,并提供與被按鍵功能對應(yīng)的鍵碼(如ASCII碼),以并行或串行方式送給CPU直接得到字符碼(ASCII)7編碼鍵盤6位計(jì)數(shù)器時(shí)鐘發(fā)生器ROM/CSCPU3-8譯碼器8×8鍵盤3-8譯碼器/RD地址譯碼輸出延時(shí)單穩(wěn)中斷觸發(fā)器中斷請求ROM中存儲(chǔ)各個(gè)按鍵的字符碼計(jì)數(shù)器循環(huán)計(jì)數(shù)掃描鍵盤得到當(dāng)前按鍵的位置碼按鍵按下時(shí)停止計(jì)數(shù),并產(chǎn)生中斷請求,CPU讀字符碼8非編碼鍵盤非編碼鍵盤的按鍵識(shí)別:(1)行掃描法由程序?qū)︽I盤進(jìn)行逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵。2.非編碼鍵盤只簡單地提供按鍵的行列位置(位置碼或掃描碼),而按鍵的識(shí)別和鍵碼的確定與輸入等功能均由軟件完成讀位置碼->查表->字符碼9行掃描法峨峨非編碼式鍵盤行掃描法的工作原理(a)無鍵按下;(b)有鍵按下;(c)掃描第0行;(d)掃描第1行;(e)掃描第2行;(f)掃描第3行10行掃描法非編碼式鍵盤行掃描法的工作原理(a)無鍵按下;(b)有鍵按下;(c)掃描第0行;(d)掃描第1行;(e)掃描第2行;(f)掃描第3行11行掃描法探討非編碼式鍵盤行掃描法的工作原理(a)無鍵按下;(b)有鍵按下;(c)掃描第0行;(d)掃描第1行;(e)掃描第2行;(f)掃描第3行需要設(shè)置輸入口、輸出口各一個(gè)。12行掃描法示例程序AGAIN: XOR AL,AL ;行線
MOV DX,PORTO OUT DX,AL MOV DX,PORTI IN AL,DX CMP AL,0FFH JZ AGAIN CALL DELAYPROG: MOV BL,0 MOV BH,0FEH MOV CX,8
13行掃描法示例程序FROW: MOV AL,BH MOV DX,PORTO OUT DX,AL ROL BH,1 MOV DX,PORTI IN AL,DX CMP AL,0FFH
JNZ FCOL ADD BL,8 LOOP FROW JMP DONEFCOL: ROR AL,1 JNC PROCE JMP FCOLPROCE: ……DONE: …… 14線反轉(zhuǎn)法(2)線反轉(zhuǎn)法通過行列顛倒掃描來識(shí)別閉合鍵。在掃描每一行時(shí),讀列線;然后依次向列線掃描輸出,讀行線。需要提供兩個(gè)可編程的雙向輸入/輸出端口。15線反轉(zhuǎn)法示例程序START:MOV AL,82H OUT 63H,ALWAIT0:MOV AL,0 OUT 60H,AL IN AL,61H CMP AL,0FFH JZ WAIT0 PUSH AX PUSH AX CALL DELAY MOV AL,90H OUT 63H,AL POP AX OUT 61H,AL IN AL,60H POP BX16線反轉(zhuǎn)法示例程序MOV AH,BLLEA SI,TABLEMOV CX,40HLOOP1:CMP AL,[SI] JZ KEYPRO INC SI INC SI LOOP LOOP1 JMP STARTKEYPRO:……TABLE DW 0FEFEH DW 0FEFDH DW 0FEFBH DW 0FEF7H ……17四、去抖動(dòng)1.硬件濾波2.軟件延時(shí)18五、防串鍵串鍵:在鍵盤上同時(shí)按下幾個(gè)鍵,產(chǎn)生錯(cuò)誤鍵碼防串鍵的方法:1.軟件掃描檢測全部按鍵,確認(rèn)只有一個(gè)鍵被按下時(shí),才從鍵盤讀取鍵碼2.硬件鎖定在前一個(gè)按鍵釋放前,按其它鍵不產(chǎn)生選通信號(hào)19第二節(jié)可編程鍵盤/LED接口芯片8279DIP40封裝提供64鍵掃描接口自動(dòng)去抖動(dòng)、防串鍵鍵盤的掃描方式、移位、控制等均可編程輸入:掃描鍵盤、掃描傳感器、選通輸入方式輸出:8段LED顯示器接口,8個(gè)或16個(gè),左(右)入口20212223一、外部引腳面向CPU的信號(hào)(15)D0~7、CS、RD、WRA0:端口選擇,=0,數(shù)據(jù)口,=1,命令口或狀態(tài)口RESET:復(fù)位,高有效,復(fù)位后工作于16字符,左入口;編碼掃描鍵盤,雙鍵互鎖;時(shí)鐘分頻系數(shù)31IRQ:中斷申請,高有效,通常鍵盤有數(shù)據(jù)輸入請求時(shí)有效CLK:時(shí)鐘,為8279提供內(nèi)部工作時(shí)鐘24一、外部引腳與鍵盤接口的信號(hào)(14)SL0~3:掃描信號(hào),掃描鍵盤及LED顯示器,可設(shè)定為編碼輸出或譯碼輸出.編碼掃描實(shí)現(xiàn)16選1;譯碼掃描實(shí)現(xiàn)4選1RL0~7:回復(fù)信號(hào),返回鍵盤矩陣或傳感器陣列的列信號(hào)SHIFT:高有效,用于擴(kuò)充鍵功能;傳感器輸入及選通輸入中無效CNTL/STB:控制/選通信號(hào),高有效,鍵盤輸入中,用于擴(kuò)充鍵功能;選通輸入方式時(shí),其上升沿將RL0~7上的數(shù)據(jù)存入FIFORAM25一、外部引腳與數(shù)碼管接口的信號(hào)(9+4)SL0~3:掃描信號(hào),掃描鍵盤及LED顯示器.可由編程設(shè)定為編碼輸出或譯碼輸出.編碼掃描實(shí)現(xiàn)16選1;譯碼掃描實(shí)現(xiàn)4選1OUTA0~3、OUTB0~3:A組、B組顯示數(shù)據(jù)輸出,與SL0~3同步,兩組可獨(dú)立使用或合并使用BD:顯示消隱信號(hào),輸出一個(gè)控制信號(hào),通過硬件使LED熄滅26二、內(nèi)部結(jié)構(gòu)讀狀態(tài)字1010讀FIFORAM或顯示RAM0010寫命令字1100寫顯示RAM0100操作A0RDWRCS27二、內(nèi)部結(jié)構(gòu)控制與定時(shí)寄存器:寄存鍵盤及顯示器工作方式,完成控制功能定時(shí)控制:第一級計(jì)數(shù)器是可編程N(yùn)計(jì)數(shù)器,N由編程指定(2~31),對CLK分頻,獲得內(nèi)部所需100kHz工作時(shí)鐘;再分頻,為鍵盤及顯示器掃描提供掃描時(shí)鐘28二、內(nèi)部結(jié)構(gòu)4位,有譯碼、編碼兩種輸出方式,由編程設(shè)定譯碼掃描:最低兩位經(jīng)譯碼,由SL0~3輸出,作為鍵盤及顯示器的掃描信號(hào).(任何時(shí)刻,SL0~3只有一個(gè)信號(hào)有效,實(shí)現(xiàn)4選1)編碼掃描:計(jì)數(shù)器的狀態(tài)由SL0~3直接輸出,再經(jīng)外部譯碼,才能作為掃描信號(hào).(實(shí)現(xiàn)16選1)29二、內(nèi)部結(jié)構(gòu)回復(fù)緩沖器:緩沖并鎖存回復(fù)信號(hào)RL0~7的狀態(tài)去抖動(dòng)電路:實(shí)現(xiàn)對鍵盤輸入的去抖動(dòng)控制邏輯:按命令要求控制去抖動(dòng)電路,并處理回復(fù)信號(hào)RL0~7鍵盤輸入方式,有鍵閉合時(shí),去抖動(dòng)電路被置位,延時(shí)10ms再檢測,并將其位置信息與SHIFT、CNTL的狀態(tài)一起形成鍵盤數(shù)據(jù),送入FIFORAM傳感器輸入方式,RL0~7的狀態(tài)直接送入傳感器RAM(即FIFORAM)選通輸入方式,在CNTL/STB的上升沿將RL0~7狀態(tài)送入FIFORAM30二、內(nèi)部結(jié)構(gòu)FIFO/傳感器RAM:8×8位鍵盤輸入方式或選通輸入方式作先入先出存儲(chǔ)器(FIFORAM);傳感器輸入方式被稱為傳感器RAM,存儲(chǔ)傳感器陣列中每個(gè)傳感器的狀態(tài)FIFORAM的狀態(tài)寄存器:鍵盤輸入方式或選通輸入方式,寄存FIFORAM的工作狀態(tài),FIFORAM不空時(shí),會(huì)使IRQ變高;傳感器方式,若檢測出傳感器的狀態(tài)發(fā)生了變化,會(huì)使IRQ變高31二、內(nèi)部結(jié)構(gòu)顯示RAM:16×8位,存儲(chǔ)字符的字形碼,顯示時(shí),從OUTA0~3和OUTB0~3輸出顯示地址寄存器:顯示RAM的內(nèi)部地址,可由命令直接設(shè)定,或設(shè)置為每次讀/寫后自動(dòng)加1。32二、內(nèi)部結(jié)構(gòu)輸出端與顯示單元中各位的對應(yīng)關(guān)系OUTB0OUTB1OUTB2OUTB3OUTA0OUTA1OUTA2OUTA3D0D1D2D3D4D5D6D733三、8279的工作方式數(shù)據(jù)輸入方式——鍵盤輸入(鍵掃描)、傳感器掃描、選通輸入鍵掃描:按下一個(gè)鍵時(shí),形成鍵盤數(shù)據(jù),送入FIFORAM,并產(chǎn)生IRQ(數(shù)據(jù)讀出后撤除)傳感器掃描:FIFORAM中8個(gè)單元用于寄存?zhèn)鞲衅鞯默F(xiàn)時(shí)狀態(tài),傳感器陣列(最多為8×8位)中某一位狀態(tài)發(fā)生變化時(shí),產(chǎn)生IRQ選通輸入:CNTL/STB作為選通信號(hào),上升沿鎖存RL0~7到FIFORAM顯示輸出方式——8字符左入口、16字符左入口、8字符右入口、16字符右入口左入口:顯示時(shí)從到右依次填滿整個(gè)顯示器,若滿則再從左開始右入口:顯示字符從最右端輸入,以后逐次左移(計(jì)算器方式)34四、8279的編程1.命令字000D1D0K2K1K0特征位顯示方式輸入方式掃描方式設(shè)置工作方式00:8字符,左入口01:16字符,左入口10:8字符,右入口11:16字符,右入口00:鍵盤,雙鍵鎖定01:鍵盤,N鍵輪回10:傳感器掃描11:選通輸入0:編碼掃描1:譯碼掃描復(fù)位后的默認(rèn)值35四、8279的編程1.命令字000D1D0K2K1K0特征位顯示方式輸入方式掃描方式設(shè)置工作方式00:8字符,左入口01:16字符,左入口10:8字符,右入口11:16字符,右入口00:鍵盤,雙鍵鎖定01:鍵盤,N鍵輪回10:傳感器掃描11:選通輸入0:編碼掃描1:譯碼掃描雙鍵互鎖雙鍵鎖定是為兩鍵同時(shí)按下提供的保護(hù)方法。若有兩鍵或多個(gè)鍵同時(shí)按下,則無論這些鍵是以什么次序按下的,它只識(shí)別最后一個(gè)釋放的鍵,并把該鍵值送入FIFO/傳感器RAM中。N鍵巡回(多鍵卷入)
N鍵巡回是為N個(gè)鍵同時(shí)按下時(shí)提供的保護(hù)方法。若有多個(gè)鍵同時(shí)按下時(shí),鍵盤掃描能按按鍵先后順序依次將鍵值送入FIFO/傳感器RAM中。36四、8279的編程設(shè)置分頻系數(shù)分頻目的:得到100KHz的基本工作時(shí)鐘001PPPPP特征位分頻系數(shù)N(2~31)37四、8279的編程010AI
A2A1A0特征位自動(dòng)增量無效FIFORAM的行讀FIFO/傳感器RAM鍵盤方式無效,寫00:讀出后地址不變1:每次讀出地址自動(dòng)加138四、8279的編程011AIA3A2A1A0特征位自動(dòng)增量顯示RAM的行讀顯示RAM0:讀出后地址不變1:每次讀出地址自動(dòng)加139四、8279的編程100AIA3A2A1A0特征位自動(dòng)增量顯示RAM的行寫顯示RAM0:寫入后地址不變1:每次寫入地址自動(dòng)加140四、8279的編程101
IWAIWBBLABLB特征位無效A組禁寫B(tài)組禁寫A組熄滅B組熄滅寫顯示RAM控制、熄滅命令字1:相應(yīng)顯示RAM禁止寫入1:OUTA0-3、OUTB0-3輸出高電平使各個(gè)LED熄滅41四、8279的編程0:全部清010:置成20H11:置成全1110CD2CD1CD0CFCA特征位清除顯示RAM清除顯示RAM的方式清FIFORAM總清除清除命令ClearAll重新同步內(nèi)部時(shí)鐘鏈清除FIFORAM的狀態(tài)字并復(fù)位IRQ傳感器RAM指針指向第0行1:允許CD1、CD20:不允許,除非CA=142四、8279的編程111E
特征位無效結(jié)束中斷/設(shè)置錯(cuò)誤方式傳感器模式時(shí),E=1拉低IRQ鍵盤N鍵輪回方式時(shí),若E=1,則8279工作在特殊錯(cuò)誤模式43四、8279的編程3.數(shù)據(jù)格式CNTLSHIFTSCANRETURN44四、8279的編程2.狀態(tài)字(指示FIFORAM中字符數(shù)及是否有錯(cuò)誤)DUS/EOUFN2N1N0DU:顯示無效標(biāo)志,由命令清除顯示RAM時(shí)為1鍵盤輸入方式:1表示出現(xiàn)多鍵按下傳感器方式:1表示傳感器RAM中至少有一個(gè)傳感器閉合FIFORAM中字符的個(gè)數(shù)U:取空標(biāo)志1,CPU對空的FIFORAM進(jìn)行了讀取操作O:溢出標(biāo)志,向已滿的FIFORAM寫時(shí)置145四、8279的編程設(shè)STATPORT為8279的命令狀態(tài)口,DATAPORT為其數(shù)據(jù)口,試寫出讀按鍵代碼并存入內(nèi)存400H單元的程序。 MOV DI,400H ;內(nèi)存地址
MO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 景區(qū)活動(dòng)燈光節(jié)活動(dòng)方案
- 月初充值活動(dòng)方案
- 村里種花活動(dòng)方案
- 春節(jié)燒烤活動(dòng)方案
- 春節(jié)紅十字會(huì)活動(dòng)方案
- 暑期家園活動(dòng)方案
- 來穗人員親子活動(dòng)方案
- 村居三八活動(dòng)方案
- 期末狂歡活動(dòng)方案
- 春節(jié)紋眉活動(dòng)策劃方案
- 別墅土建改造合同標(biāo)準(zhǔn)文本
- 天臺(tái)保安考試題及答案
- 租賃傭金協(xié)議書范本
- 離婚協(xié)議模板
- 血友病患兒的護(hù)理
- 電力安全事故隱患排查
- 2025年遼寧輕工職業(yè)學(xué)院高職單招職業(yè)技能考試題庫附答案解析
- GFS普及型高頻高壓發(fā)生器課件
- 電影后期制作的技術(shù)要點(diǎn)及流程解析
- 2025年中國礦產(chǎn)資源集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 四川省綿陽市2025屆高三上學(xué)期第二次診斷性考試語文試題(含答案)
評論
0/150
提交評論