基于A(yíng)T89C51的操控鍵盤(pán)的設計
引 言
本文引用地址:http://dyxdggzs.com/article/273420.htm在一些自動(dòng)化測量或智能設備中,微機作為控制中樞,對多個(gè)功能單元進(jìn)行控制與管理,以實(shí)現儀器設備的系統功能。鍵盤(pán)是人機通信的基本設備,操作者通過(guò)它完成對設備的操控。PC機通用鍵盤(pán)是與主機分開(kāi)的獨立設備,其結構外形已經(jīng)固定,需要較大的安裝空間。但在所研制的產(chǎn)品設備中,系統上電運行后,往往只需通用鍵盤(pán)中的少量按鍵即可完成人機通信或控制,如數字鍵O~9、→、←、↑、↓、Esc等按鍵。在這種情況下,因為結構尺寸的限制,并為了使操控方便、設備簡(jiǎn)化等,不便采用通用鍵盤(pán),而需使通用鍵盤(pán)小型化,并且與產(chǎn)品設備融為一體。因此需要研制小型一體化專(zhuān)用鍵盤(pán)。
采用小型一體化專(zhuān)用鍵盤(pán)不但可完成按鍵的功能,而且要求根據儀器外形進(jìn)行一體化優(yōu)化設計,使產(chǎn)品外型美觀(guān)、布局合理。小型一體化專(zhuān)用鍵盤(pán)不僅適用于一般的儀器控制系統,而且可以用于軍工加固計算機系統中。軍工產(chǎn)品中的微機多為加固PC類(lèi)計算機,其采用PC機通用鍵盤(pán)。本文以PC機通用鍵盤(pán)為例,闡述研制小型一體化專(zhuān)用鍵盤(pán)的方法。
1 設計原理
PC機通用鍵盤(pán)通過(guò)“PS/2”5芯電纜與主機相連。該5芯電纜是鍵盤(pán)與主機之間信息與數據傳輸的路徑,定義如下:1端,RESET;2端,+5 V;3端,CLOCK;4端,地;5端,按鍵波形。其中1、2、4端的信號由主機內部確定;3端為時(shí)鐘信號CLOCK;5端為按鍵波形,此波形隨按下按鍵的不同而變化。
采用本文介紹的單片機控制系統和軟件編程的方法,可以準確模擬按鍵波形,使小型專(zhuān)用鍵盤(pán)的按鍵波形與PC機通用鍵盤(pán)對應按鍵波形一致。具體方法如下:首先用示波器測出PC機通用鍵盤(pán)各按鍵按下時(shí)的波形,并保存起來(lái);然后用單片機控制系統和軟件編程模擬出各按鍵的CLOCK波形和按鍵波形,并確保各按鍵的CLOCK波形和按鍵波形時(shí)序匹配、形狀逼真,再將按鍵信息通過(guò)5芯電纜傳輸給主機。所選按鍵可根據需要安裝在產(chǎn)品的面板上等易于操作的地方。當操作者按下某鍵時(shí),單片機控制系統產(chǎn)生相應的CLOCK波形與按鍵波形送給主機,實(shí)現按鍵功能。這樣就完成了小型專(zhuān)用鍵盤(pán)的設計。
2 硬件電路及軟件
2.1 單片機控制電路
采用單片機系統實(shí)現小型專(zhuān)用鍵盤(pán)的硬件電路,如圖1所示,設計完成的小型專(zhuān)用鍵盤(pán)的按鍵有18枚,排成6行×3列的矩陣。單片機可根據需要安裝在主機內部的接口板上,按鍵則安裝在產(chǎn)品的面板等易操作的地方。當按下某按鍵時(shí),單片機控制系統將產(chǎn)生的CLOCK信號與按鍵信號通過(guò)“PS/2”5芯電纜傳送給主機。此硬件電路簡(jiǎn)單,可充分利用軟件編程來(lái)模擬按鍵波形,實(shí)現鍵盤(pán)功能。系統要判斷某一按鍵是否按下,可以利用軟件逐一查詢(xún)6行×3列矩陣中的按鍵,然后輸出相應的按鍵模擬波形,從而實(shí)現按鍵功能。

2.2 舉 例
下面以按鍵“8”為例,說(shuō)明如何從PC機通用鍵盤(pán)中“取出”所需按鍵,并保持各按鍵功能,形成小型專(zhuān)用鍵盤(pán)。首先用示波器測出在PC機通用鍵盤(pán)上按下“8”鍵時(shí),5芯鍵盤(pán)通信電纜的3端和5端的波形。按鍵“8”的波形測量波形如圖2所示。

示波器通道1指示信號電纜3端的CLOCK波形,通道2為電纜5端的按鍵“8”的波形。用單片機軟件編程模擬圖2所示波形。按照圖1所示硬件電路,編程使單片機89C51的P2.4端產(chǎn)生CLOCK波形,P2.6端產(chǎn)生按鍵波形;P2.4端與5芯鍵盤(pán)電纜的3端相連,P2.6端與電纜的5端相連。當操作者按下產(chǎn)品面板上的“8”鍵時(shí),程序執行模擬“8”鍵波形的子程序,并將模擬出的波形傳送給主機,這樣就完成了按鍵“8”的設計。用同樣的方法,可以設計出小型專(zhuān)用鍵盤(pán)上其他按鍵。
3 設計中要注意的問(wèn)題
3.1 準確地模擬按鍵波形
每一枚按鍵的波形包括電纜3端的CLOCK波形與電纜5端的按鍵波形。各按鍵的CLOCK波形相同,如圖2所示通道1的波形,由10個(gè)脈寬為40μs且間隔也為40μs的脈沖和1個(gè)脈寬為500 μs的脈沖形成CLOCK波形;而5端的按鍵波形則因按鍵的不同而各異。要準確地模擬按鍵波形并使之時(shí)序匹配,即準確地計算出脈沖的寬度,必須精確地計算出時(shí)間常數,做好延時(shí)程序。如果單片機控制電路采用12 MHz晶振,則一個(gè)機器周期為1μs,時(shí)間常數X的計算公式為:
(循環(huán)體字節數)×機器周期×時(shí)間常數X=延時(shí)時(shí)間
在上式中,循環(huán)體字節數、機器周期、延時(shí)時(shí)間都已知,則時(shí)間常數x易求得。例如,延時(shí)1 ms程序如下:

利用上面公式可得到:(1+1+2)×1×X一1 000 μs則X=250μs,將其帶入上面的程序段中,執行該段程序,能實(shí)現1 ms精確延時(shí)。準確地計算出時(shí)問(wèn)常數,精確地實(shí)現延時(shí),就能確保模擬波形的準確性。3.2按鍵的抖動(dòng)問(wèn)題
凡有按鍵操作的系統,在設計中一般都要考慮按鍵的去抖。由于按鍵的機械觸點(diǎn)有彈性作用,在閉合及斷開(kāi)瞬間均有抖動(dòng)過(guò)程,抖動(dòng)的時(shí)間長(cháng)短與開(kāi)關(guān)的機械特性有關(guān),一般為5~lO ms。為了保證按鍵的1次閉合僅作1次按鍵輸入處理,就必須消除按鍵抖動(dòng)對系統的影響。
采用軟件編程消除按鍵抖動(dòng)影響的方法是:當檢測到某一按鍵按下時(shí),執行相應模擬按鍵波形的子程序后,應再判斷該鍵是否彈起,若沒(méi)有彈起則等待,直至按鍵彈起;按鍵彈起后,延時(shí)20 ms再繼續執行后面的程序,以消除按鍵抖動(dòng)現象。
3.3 同行多個(gè)按鍵同時(shí)有效的問(wèn)題
當有按鍵操作,按下某一鍵時(shí),可能出現該鍵同一行線(xiàn)上的其他多個(gè)按鍵同時(shí)有效的現象。采用屏蔽非當前列線(xiàn)的方法可解決這一問(wèn)題:當檢測有無(wú)鍵按下時(shí),須對列線(xiàn)和行線(xiàn)依次掃描,當掃描至某一列線(xiàn)時(shí),該列線(xiàn)置“O”,同時(shí)其他列線(xiàn)置“1”,這樣就屏蔽了非當前列線(xiàn),從而準確地判斷出某鍵是否按下。
3.4 按鍵波形被吃掉的問(wèn)題
有些按鍵的波形只有1段,如圖2所示“8”鍵的波形;而有些按鍵的波形有2段或2段以上,如圖3所示“十”上移鍵的波形。2段波形間隔1.6 μs,用單片機仿真按鍵波形時(shí),可看到第1段波形形成后,其后3 ms的時(shí)間內時(shí)鐘CLOCK保持低電平,導致按鍵第2段波形被吃掉。為了解決這一問(wèn)題,在模擬具有2段以上波形的按鍵時(shí),在2段波形之間應加入3 ms的延時(shí),使按鍵的第2段波形脫離時(shí)鐘CLOCK的低電平區。這樣按鍵的第2段波形就不會(huì )被吃掉,從而保證了按鍵波形的完整,實(shí)現按鍵功能。

結 語(yǔ)
采用本文介紹的設計方法制作的小型一體化加固機專(zhuān)用鍵盤(pán),已應用到產(chǎn)品中,其功能穩定可靠,取得了良好效果。實(shí)際工作中,可根據產(chǎn)品的結構特點(diǎn)和需要,應用該設計方法研制小型一體化專(zhuān)用鍵盤(pán),具有推廣意義。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
pa相關(guān)文章:pa是什么
全息投影相關(guān)文章:全息投影原理
評論