基于89C52的計算機專用鍵盤設計
0 引言
AT89C52是美國ATMEL公司生產的低電壓,高性能,片內含8 k可反復檫寫的單片機,具有外圍硬件電路簡單,體積小,可靠性高,選用其完成鍵盤的監控任務,在實際應用中,有時侯可能不小心按下鍵盤的按鍵,改變了設備或儀器的參數和狀態,使系統運行不正常。為計算機安全和防止誤觸發,需要將鍵盤鎖定,還要對某些鍵采取屏蔽措施,但是PC標準鍵盤不能滿足這些要求。本文介紹一種用89C52設計實現的可鎖定加密PC/AT鍵盤。另外,本鍵盤固定于主機操控臺,因此,又具有一定的抗振性和密封性。
1 鍵盤功能及工作原理
PC鍵盤功能主要有按鍵識別、去抖、重鍵處理、發送掃描碼、自動重發、接收鍵盤命令、處理命令等。鍵盤有編碼鍵盤和非編碼鍵盤。編碼鍵盤程序設計簡單,但硬件電路復雜,價格較高;非編碼鍵盤用軟件來實現識別鍵、編碼轉換、去抖等功能,硬件電路簡單,價格便宜。本鍵盤采用非編碼鍵盤,14行×8列的二維矩陣行列結構,采用行掃描法識別按下的按鍵。
2 PS/2協議
PS/2協議是外設與主機之間通信的一種同步雙向串行協議。在該協議中主機擁有較高的優先級,在一定條件下可以終止外設正在進行的發送過程。PS/2協議采用的傳送數據幀的格式為:1位起始位(0)、8位數據位、1位奇偶校驗位、1位停止位(1)。數據發送時低位在前,高位在后。外設每收到主機發來的1幀數據,都要緊隨該幀的停止位發送一個握手位.ACK(0)應答主機。然后,外設還要發1幀應答數據(0xF0),表示外設已經完整地接收到了主機的命令;而主機則不需發送握手位,也不需要發送應答幀。
2.1 鍵盤到PC鍵盤接口的通信
當時鐘線和數據線均為高電平時,允許鍵盤發送數據。系統將接收數據;當時鐘線被拉為低電平時,表明系統禁止數據傳輸。圖1給出了發送時序,包含1個低電平觸發的起始位、8位數據位、1個奇校驗位和1個高電平的結束位。
2.1.1 PC系統到鍵盤的通信協議
若時鐘線出現高電平,數據線出現低電平,表明系統請求發送,鍵盤準備產生同步時鐘脈沖串,并接收數據。包含了1個低電平觸發的起始位、8位數據位、1個奇校驗位、1個應答位、1個高電平的結束位。
2.1.2 鍵盤命令及執行過程
(1)FFH:復位鍵盤。系統通過此軟件復位命令使鍵盤進入程序復位和內部自測試,稱為基本保證測試(BAT)。復位鍵盤的過程如下:
①鍵盤收到FFH后立即回送ACK(FAH)作答;
②鍵盤接口收到ACK后,將鍵盤時鐘和數據線置為高電平;
③鍵盤檢測到此狀態后開始BAT操作;
④如果BAT正確完成,鍵盤發送AAH以表示結束,否則以FDH(或其它任何值)表示診斷有誤。
(2)FEH:重新發送。當系統檢測到從鍵盤送來的任何傳輸錯誤時,它便向鍵盤發送FEH命令。鍵盤接收到此命令后,將重新送出原來的內容。
(3)FDH~F7H:空操作(保留未用)。
(4)F6H:設置缺省值。此命令使鍵盤所有條件復位到電源接通時的缺省狀態,鍵盤繼續掃描。
(5)F5H:設置缺省值和停止鍵盤。此命令使鍵盤所有條件復位到電源接通時的缺省狀態,并停止鍵盤掃描,等待下一個鍵盤命令。
(6)F4H:啟動鍵盤。鍵盤接收到此命令后,用ACK(FAH)作答,清除輸出緩沖器,并啟動鍵盤開始掃描。
(7)F3H:設置拍發速率和延時參數。每當按下任一鍵時,鍵盤以拍發速率連續送出鍵的接通碼,直到鍵被釋放為止。延時參數是指按下一鍵后,鍵盤輸出的響應時間。
系統缺省設置:拍發速率=10個/s±20%,延時=500ms±20%。
當要改變設置時可以使用F3H命令,并后跟一個字節的參數。
計算拍發速率和響應延時的公式如下:
拍發速率=1/[8+A]×2B×0.004 17](1/s)
響應延時=(1+C)×250(ms)
注:缺省的延時參數值為2CH。
此命令的執行過程如下:
①鍵盤收到F3H命令后,用FAH予以響應,并停止掃描和等待隨后的參數;
②鍵盤若收到隨后的設置參數,用另一個ACK響應,并按其參數設置新的拍發速率和響應延時,之后重新開始掃描(若鍵盤原來是開放的);
③鍵盤若收到FAH命令,但無隨后的設置參數,則鍵盤結束命令設置,并保持原來的拍發速率和響應延時,停止掃描。
電磁爐相關文章:電磁爐原理
評論