
表2 參數(shù)字節(jié) 保 留 1=激勵Caps LED 1=激勵Num LED 1=激勵Scroll LED
此命令執(zhí)行過程與F3H相似。若命令后跟參數(shù),則按參數(shù)設(shè)定LED狀態(tài)并繼續(xù)掃描。若僅有命令無參數(shù),則不改變LED原狀態(tài),并停止掃描。
(2)鍵盤響應(yīng)
鍵盤在下列四種情況下都會向鍵盤接口發(fā)送數(shù)據(jù)。
① 按下任一鍵,鍵盤以拍發(fā)速率向接口發(fā)送鍵盤接通掃描碼。
、 釋放所按下的鍵,鍵盤發(fā)送斷開掃
描碼。
、 系統(tǒng)向鍵盤發(fā)送鍵盤命令后,鍵盤回送應(yīng)答。
④ 當(dāng)用戶按鍵速度超出鍵盤所能容納的最大鍵個數(shù)時,鍵盤做出響應(yīng)。
后三種情況稱為鍵盤響應(yīng)。響應(yīng)字節(jié)有7個,定義如下。
、 FEH:重新發(fā)送響應(yīng)。當(dāng)鍵盤收到一個無效的鍵盤命令,或者檢測到奇偶錯的鍵盤命令時,鍵盤回送響應(yīng)字節(jié)為FEH,要求系統(tǒng)重發(fā)鍵盤命令。
、 FAH:正常應(yīng)答。對任何一個有效的鍵盤命令,鍵盤回送FAH予以響應(yīng)。
、 00H:超限應(yīng)答。當(dāng)用戶按鍵速度超出鍵盤所能容納的最大鍵符個數(shù)時(16個字節(jié)的緩沖器),鍵盤發(fā)送00H。
、 FDH:診斷故障應(yīng)答。鍵盤接受軟件復(fù)位命令,執(zhí)行自測試過程中。若檢測到故障,則以FDH應(yīng)答。此時,鍵盤停止掃描并等待下一個鍵盤命令。
⑤ AAH:診斷正常應(yīng)答。鍵盤在軟件復(fù)位過程中,正常完成BAT測試,以AAH應(yīng)答。
、 FEH:回響命令的應(yīng)答,對鍵盤FEH命令的應(yīng)答。
、 F0H:斷開掃描碼前綴,鍵盤對鍵符按下后釋放的應(yīng)答,第一個字節(jié)為F0H,第二個字節(jié)為接通掃描碼(有幾個鍵例外)。
3 硬件設(shè)計
PC系列鍵盤采用18行×8列的矩陣行列結(jié)構(gòu)。89C51單片機(jī)有4個8位I/O端口,因此可以采用P0、P2口再加上P3口的2個(P3.6和P3.7)作為行掃描線。P1口作為列輸入線(如果用P0口作列輸入線,必須加上拉電阻)。采用P3.0、P3.1作為數(shù)據(jù)線和時鐘線與PC系統(tǒng)進(jìn)行通信,用P3.2、P3.4、P3.5控制鍵盤上的3個指示燈。硬件原理如圖3所示。

4 軟件設(shè)計
、 消抖及重鍵處理:通過軟件上延時程序來消除抖動;采用后按鍵優(yōu)先處理,即多鍵同時按下時,只重復(fù)發(fā)送最后按下鍵的掃描碼。
、 程序包括鍵盤掃描子程序、發(fā)送鍵碼子程序、發(fā)送數(shù)據(jù)子程序、接收命令子程序、定時器1中斷服務(wù)程序、主程序等。鍵盤掃描子程序用于掃描鍵狀態(tài),將被按鍵的位置號存入緩沖器中;發(fā)送鍵碼子程序用于將緩沖區(qū)鍵的接通碼或斷開碼發(fā)送給計算機(jī)鍵盤接口或者存在鍵盤密碼緩沖區(qū)中;發(fā)送數(shù)據(jù)子程序用于將數(shù)據(jù)發(fā)給計算機(jī)鍵盤接口;接收命令子程序用于接收計算機(jī)鍵盤接口發(fā)來的鍵盤命令;定時器1中斷服務(wù)子程序用于給程序中的延時提供標(biāo)準(zhǔn)時鐘,并具有軟件看門狗功能,防止軟件出現(xiàn)死機(jī)現(xiàn)象;主程序用于系統(tǒng)初始化,子程序調(diào)度,鎖定狀態(tài)的顯示等。


本文介紹的PC/AT鍵盤具有結(jié)構(gòu)簡單、設(shè)計靈活、安全可靠的特點,可用于標(biāo)準(zhǔn)PC和嵌入式PC。本鍵盤可以在標(biāo)準(zhǔn)的鍵盤基礎(chǔ)上進(jìn)行改造,只需換掉原來的控制芯片即可,可節(jié)省設(shè)計成本。





