<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          鍵盤(pán)的工作原理

          作者: 時(shí)間:2011-07-31 來(lái)源:網(wǎng)絡(luò) 收藏

          鍵盤(pán)的基本工作原理就是實(shí)時(shí)監(jiān)視按鍵,將按鍵信息送入計(jì)算機(jī)。在鍵盤(pán)的內(nèi)部設(shè)計(jì)中有定位按鍵位置的鍵位掃描電路、產(chǎn)生被按下鍵代碼的編碼電路以及將產(chǎn)生代碼送入計(jì)算機(jī)的接口電路等等,這些電路被統(tǒng)稱為鍵盤(pán)控制電路。根據(jù)鍵盤(pán)工作原理,可以把計(jì)算機(jī)鍵盤(pán)分為編碼鍵盤(pán)和非編碼鍵盤(pán)。鍵盤(pán)控制電路的功能完全依靠硬件來(lái)自動(dòng)完成的,這種鍵盤(pán)稱為編碼鍵盤(pán),它能自動(dòng)將按下鍵的編碼信息送入計(jì)算機(jī)。另外一種鍵盤(pán),它的鍵盤(pán)控制電路功能要依靠硬件和軟件共同完成,這種鍵盤(pán)稱為非編碼鍵盤(pán)。這種鍵盤(pán)響應(yīng)速度不如編碼鍵盤(pán)快,但它可通過(guò)軟件為鍵盤(pán)的某些按鍵重新定義,為擴(kuò)充鍵盤(pán)的功能提供了極大的方便,從而得到了廣泛應(yīng)用。

          逐行掃描法
          由程序?qū)︽I盤(pán)進(jìn)行逐行掃描,通過(guò)檢測(cè)到的列輸出狀態(tài)來(lái)確定閉合鍵。
          需要設(shè)置輸入口、輸出口各一個(gè)。

          行列掃描法
          通過(guò)行列顛倒掃描來(lái)識(shí)別閉合鍵。在掃描每一行時(shí),讀列線;然后依次向列線掃描輸出,讀行線。
          需要提供兩個(gè)可編程的雙向輸入/輸出端口。

          假定有一個(gè)3×4的矩陣鍵盤(pán)通過(guò)并行接口芯片8255A與微機(jī)相連。8255A的A口定義為輸出口,與鍵盤(pán)行線相連;B口定義為輸入口,與鍵盤(pán)列線相連。設(shè)8255A A口地址為40H,B口地址為41H,控制寄存器地址為43H。

          MOV AL,82H
          OUT 43H,AL
          BEGIN:MOV AL,0
          OUT 40H,AL
          WAIT : IN AL,41H
          AND AL,0FH
          CMP AL,0FH
          JZ WAIT
          MOV CX,7FFH
          L0: LOOP L0
          ST: MOV BL,3
          MOV BH,4
          MOV AL,0FEH
          MOV CL,0FH
          MOV CH,0FFH
          L1: OUT 40H,AL
          ROL AL
          MOV AH,AL
          IN AL,41H
          AND AL,CL
          CMP AL,CL
          JNZ L2
          ADD CH,BH
          MOV AL,AH
          DEC BL
          JNZ L1
          JMP BEGIN
          L2: INC CH
          RCR AL
          JC L2
          MOV AL,CH
          JMP KEYTABLE

          圖12-1 非編碼鍵盤(pán)接口硬件框圖



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();