<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于89C52的計算機專(zhuān)用鍵盤(pán)設計

基于89C52的計算機專(zhuān)用鍵盤(pán)設計

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

  0 引言

本文引用地址:http://dyxdggzs.com/article/265783.htm

  是美國公司生產(chǎn)的低電壓,高性能,片內含8 k可反復檫寫(xiě)的單片機,具有外圍硬件電路簡(jiǎn)單,體積小,可靠性高,選用其完成鍵盤(pán)的監控任務(wù),在實(shí)際應用中,有時(shí)侯可能不小心按下鍵盤(pán)的按鍵,改變了設備或儀器的參數和狀態(tài),使系統運行不正常。為計算機安全和防止誤觸發(fā),需要將鍵盤(pán)鎖定,還要對某些鍵采取屏蔽措施,但是PC標準鍵盤(pán)不能滿(mǎn)足這些要求。本文介紹一種用89C52設計實(shí)現的可鎖定加密PC/AT鍵盤(pán)。另外,本鍵盤(pán)固定于主機操控臺,因此,又具有一定的抗振性和密封性。

  1 鍵盤(pán)功能及工作原理

  PC鍵盤(pán)功能主要有按鍵識別、去抖、重鍵處理、發(fā)送掃描碼、自動(dòng)重發(fā)、接收鍵盤(pán)命令、處理命令等。鍵盤(pán)有編碼鍵盤(pán)和非編碼鍵盤(pán)。編碼鍵盤(pán)程序設計簡(jiǎn)單,但硬件電路復雜,價(jià)格較高;非編碼鍵盤(pán)用軟件來(lái)實(shí)現識別鍵、編碼轉換、去抖等功能,硬件電路簡(jiǎn)單,價(jià)格便宜。本鍵盤(pán)采用非編碼鍵盤(pán),14行×8列的二維矩陣行列結構,采用行掃描法識別按下的按鍵。

  2 PS/2協(xié)議

  PS/2協(xié)議是外設與主機之間通信的一種同步雙向串行協(xié)議。在該協(xié)議中主機擁有較高的優(yōu)先級,在一定條件下可以終止外設正在進(jìn)行的發(fā)送過(guò)程。PS/2協(xié)議采用的傳送數據幀的格式為:1位起始位(0)、8位數據位、1位奇偶校驗位、1位停止位(1)。數據發(fā)送時(shí)低位在前,高位在后。外設每收到主機發(fā)來(lái)的1幀數據,都要緊隨該幀的停止位發(fā)送一個(gè)握手位.ACK(0)應答主機。然后,外設還要發(fā)1幀應答數據(0xF0),表示外設已經(jīng)完整地接收到了主機的命令;而主機則不需發(fā)送握手位,也不需要發(fā)送應答幀。

  2.1 鍵盤(pán)到PC鍵盤(pán)接口的通信

  當時(shí)鐘線(xiàn)和數據線(xiàn)均為高電平時(shí),允許鍵盤(pán)發(fā)送數據。系統將接收數據;當時(shí)鐘線(xiàn)被拉為低電平時(shí),表明系統禁止數據傳輸。圖1給出了發(fā)送時(shí)序,包含1個(gè)低電平觸發(fā)的起始位、8位數據位、1個(gè)奇校驗位和1個(gè)高電平的結束位。

  2.1.1 PC系統到鍵盤(pán)的通信協(xié)議

  若時(shí)鐘線(xiàn)出現高電平,數據線(xiàn)出現低電平,表明系統請求發(fā)送,鍵盤(pán)準備產(chǎn)生同步時(shí)鐘脈沖串,并接收數據。包含了1個(gè)低電平觸發(fā)的起始位、8位數據位、1個(gè)奇校驗位、1個(gè)應答位、1個(gè)高電平的結束位。

  2.1.2 鍵盤(pán)命令及執行過(guò)程

  (1)FFH:復位鍵盤(pán)。系統通過(guò)此軟件復位命令使鍵盤(pán)進(jìn)入程序復位和內部自測試,稱(chēng)為基本保證測試(BAT)。復位鍵盤(pán)的過(guò)程如下:

 ?、冁I盤(pán)收到FFH后立即回送ACK(FAH)作答;

 ?、阪I盤(pán)接口收到ACK后,將鍵盤(pán)時(shí)鐘和數據線(xiàn)置為高電平;

 ?、坻I盤(pán)檢測到此狀態(tài)后開(kāi)始BAT操作;

 ?、苋绻鸅AT正確完成,鍵盤(pán)發(fā)送AAH以表示結束,否則以FDH(或其它任何值)表示診斷有誤。

  (2)FEH:重新發(fā)送。當系統檢測到從鍵盤(pán)送來(lái)的任何傳輸錯誤時(shí),它便向鍵盤(pán)發(fā)送FEH命令。鍵盤(pán)接收到此命令后,將重新送出原來(lái)的內容。

  (3)FDH~F7H:空操作(保留未用)。

  (4)F6H:設置缺省值。此命令使鍵盤(pán)所有條件復位到電源接通時(shí)的缺省狀態(tài),鍵盤(pán)繼續掃描。

  (5)F5H:設置缺省值和停止鍵盤(pán)。此命令使鍵盤(pán)所有條件復位到電源接通時(shí)的缺省狀態(tài),并停止鍵盤(pán)掃描,等待下一個(gè)鍵盤(pán)命令。

  (6)F4H:?jiǎn)?dòng)鍵盤(pán)。鍵盤(pán)接收到此命令后,用ACK(FAH)作答,清除輸出緩沖器,并啟動(dòng)鍵盤(pán)開(kāi)始掃描。

  (7)F3H:設置拍發(fā)速率和延時(shí)參數。每當按下任一鍵時(shí),鍵盤(pán)以拍發(fā)速率連續送出鍵的接通碼,直到鍵被釋放為止。延時(shí)參數是指按下一鍵后,鍵盤(pán)輸出的響應時(shí)間。

  系統缺省設置:拍發(fā)速率=10個(gè)/s±20%,延時(shí)=500ms±20%。

  當要改變設置時(shí)可以使用F3H命令,并后跟一個(gè)字節的參數。

  計算拍發(fā)速率和響應延時(shí)的公式如下:

  拍發(fā)速率=1/[8+A]×2B×0.004 17](1/s)

  響應延時(shí)=(1+C)×250(ms)

  注:缺省的延時(shí)參數值為2CH。

  此命令的執行過(guò)程如下:

 ?、冁I盤(pán)收到F3H命令后,用FAH予以響應,并停止掃描和等待隨后的參數;

 ?、阪I盤(pán)若收到隨后的設置參數,用另一個(gè)ACK響應,并按其參數設置新的拍發(fā)速率和響應延時(shí),之后重新開(kāi)始掃描(若鍵盤(pán)原來(lái)是開(kāi)放的);

 ?、坻I盤(pán)若收到FAH命令,但無(wú)隨后的設置參數,則鍵盤(pán)結束命令設置,并保持原來(lái)的拍發(fā)速率和響應延時(shí),停止掃描。

  (8)F2H,F1H,EFH:保留未用。

  (9)F0H:設置鍵盤(pán)掃描碼命令。此命令用于設置鍵盤(pán)的掃描碼,后跟參數指定三種掃描碼的哪一種。鍵盤(pán)復位時(shí),默認掃描碼是第二種。

  (10)EEH:回送命令。此命令用于輔助診斷,要求鍵盤(pán)接收到EEH時(shí)也要回送

  EEH予以響應。若鍵盤(pán)原來(lái)是開(kāi)放的,則繼續掃描。

  EDH:置位/復位LED指示器。鍵盤(pán)右上角有三個(gè)LED指示器,分別反映Caps、Num和Scroll三個(gè)鍵的鎖定情況。

  此命令執行過(guò)程與F3H相似。若命令后跟參數,則按參數設定LED狀態(tài)并繼續掃描。若僅有命令無(wú)參數,則不改變LED原狀態(tài),并停止掃描。

  2.1.3 鍵盤(pán)響應

  鍵盤(pán)在下列四種情況下都會(huì )向鍵盤(pán)接口發(fā)送數據。

  (1)按下任一鍵,鍵盤(pán)以拍發(fā)速率向接口發(fā)送鍵盤(pán)接通掃描碼。

  (2)釋放所按下的鍵,鍵盤(pán)發(fā)送斷開(kāi)掃描碼。

  (3)系統向鍵盤(pán)發(fā)送鍵盤(pán)命令后,鍵盤(pán)回送應答。

  (4)當用戶(hù)按鍵速度超出鍵盤(pán)所能容納的最大鍵個(gè)數時(shí),鍵盤(pán)做出響應。

  后三種情況稱(chēng)為鍵盤(pán)響應。響應字節有7個(gè),定義如下。

 ?、貴EH:重新發(fā)送響應。當鍵盤(pán)收到一個(gè)無(wú)效的鍵盤(pán)命令,或者檢測到奇偶錯的鍵盤(pán)命令時(shí),鍵盤(pán)回送響應字節為FEH,要求系統重發(fā)鍵盤(pán)命令。

 ?、贔AH:正常應答。對任何一個(gè)有效的鍵盤(pán)命令,鍵盤(pán)回送FAH予以響應。

 ?、?0H:超限應答。當用戶(hù)按鍵速度超出鍵盤(pán)所能容納的最大鍵符個(gè)數時(shí)(16個(gè)字節的緩沖器),鍵盤(pán)發(fā)送00H。

 ?、蹻DH:診斷故障應答。鍵盤(pán)接受軟件復位命令,執行自測試過(guò)程中。若檢測到故障,則以FDH應答。此時(shí),鍵盤(pán)停止掃描并等待下一個(gè)鍵盤(pán)命令。

 ?、軦AH:診斷正常應答。鍵盤(pán)在軟件復位過(guò)程中,正常完成BAT測試,以AAH應答。

 ?、轊EH:回響命令的應答,對鍵盤(pán)EEt{命令的應答。

 ?、逨0H:斷開(kāi)掃描碼前綴,鍵盤(pán)對鍵符按下后釋放的應答,第一個(gè)字節為F0H,第二個(gè)字節為接通掃描碼(有幾個(gè)鍵例外)。

  3 硬件設計

  圖1為電路結構框圖,電路核心為單片機,工作頻率為8~11 MHz。圖中可以看出,89C52單片機有4個(gè)8位I/O端口,因此可以采用PO再加上P2口的4個(gè)(P2.0到P2.5)作為行掃描線(xiàn)。P1口作為列輸入線(xiàn)(如果用PO口作列輸入線(xiàn),必須加上拉電阻)。采用P3.0、P3.1作為數據線(xiàn)和時(shí)鐘線(xiàn)與PC系統進(jìn)行通信,用P3.4、P3.5、P3.6控制鍵盤(pán)上的3個(gè)指示燈。硬件原理如圖1所示。鍵盤(pán)與計算機通過(guò)一個(gè)五芯(PS/2接口為六芯)插座相接,4個(gè)有效引腳的定義分別是電源(VCC)、地(GND)、串行時(shí)鐘線(xiàn)(SCK)、串行數據線(xiàn)(SIO)。

  

 

  4 軟件設計

  (1)消抖及重鍵處理:通過(guò)軟件上延時(shí)程序來(lái)消除抖動(dòng);采用后按鍵優(yōu)先處理,即多鍵同時(shí)按下時(shí),只重復發(fā)送最后按下鍵的掃描碼。

  

 

  (2)程序包括鍵盤(pán)掃描子程序、發(fā)送鍵碼子程序、發(fā)送數據子程序、接收命令子程序、定時(shí)器1中斷服務(wù)程序、主程序等。鍵盤(pán)掃描子程序用于掃描鍵狀態(tài),將被按鍵的位置號存入緩沖器中;發(fā)送鍵碼子程序用于將緩沖區鍵的接通碼或斷開(kāi)碼發(fā)送給計算機鍵盤(pán)接口或者存在鍵盤(pán)密碼緩沖區中;發(fā)送數據子程序用于將數據發(fā)給計算機鍵盤(pán)接口;接收命令子程序用于接收計算機鍵盤(pán)接口發(fā)來(lái)的鍵盤(pán)命令;定時(shí)器1中斷服務(wù)子程序用于給程序中的延時(shí)提供標準時(shí)鐘,并具有軟件看門(mén)狗功能,防止軟件出現死機現象;主程序用于系統初始化,子程序調度,鎖定狀態(tài)的顯示等。圖2~4是主要軟件模塊的流程圖。

  

 

  5 結束語(yǔ)

  該鍵盤(pán)的設計從軟、硬件都作了周密考慮,可靠性好,穩定性強,特別適合部隊野外訓練使用。本鍵盤(pán)可以在標準的鍵盤(pán)基礎上進(jìn)行改造,只需換掉原來(lái)的控制芯片即可,可節省設計成本。具有很好的發(fā)展前景。

上拉電阻相關(guān)文章:上拉電阻原理


關(guān)鍵詞: ATMEL AT89C52

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>