漢字速錄鍵盤設計
2.1 電路結(jié)構(gòu)
對多鍵并擊的處理,在每個鍵上串一個二極管,這樣可使多鍵并擊時不會出現(xiàn)串鍵問題,但在軟件上還需要作相應的處理。關(guān)于鍵盤按鍵的排列,如圖2所示;關(guān)于主機與鍵盤的通信;主機與鍵盤的通信采用RS-232串口。由于單片機的串口是TTL電平,與RS-232串口標準不一樣,因此主機與鍵盤之間通信需要用Icl 232(TTL與RS-232轉(zhuǎn)換電路)完成轉(zhuǎn)換。串口轉(zhuǎn)換電路的選擇;目前一般有兩種轉(zhuǎn)換電路,一種是要使用雙電源的電路,由于其使用電源多,電路也較復雜,所以沒有采用。另一種是只使用+5V單電源的ICL 232,由于此電路結(jié)構(gòu)簡單,所以采用了此電路。關(guān)于電源指示和通信指示,分別用一個發(fā)光二極管完成電源和通信的指示,當電源指示燈Dl亮時,表示+5V電源正常。當通信指示燈D2亮時表示鍵盤與主機正在進行串行通信。為了使系統(tǒng)結(jié)構(gòu)簡單,控制芯片選用了內(nèi)嵌式單片機,在其內(nèi)部有20k的閃存。電路原理圖如圖l所示;全部電路由兩塊集成電路和一些配套元件組成,其中單片機中閃存部分用來存儲程序和字庫,片中的RAM存放一些中間處理的數(shù)據(jù),片中的CPU對鍵盤各部分進行控制。ICL 232用于TTL電平與RS232電平之間的轉(zhuǎn)換。
2.2 電路工作原理
主機通電后鍵盤自動啟動,單片機運行其控制程序,對鍵盤進行掃描,當有鍵按下時消除鍵抖動,將鍵盤代碼輸入到單片機中,通過內(nèi)嵌的軟件轉(zhuǎn)換成拼音碼或ASCII碼。然后把這些代碼從單片機的串口TXD端輸入到ICL 232的TIin,待轉(zhuǎn)換成RS一232電平標準后,通過ICL232的TIout端輸出送主機的RS-232串口。最后計算機用專用軟件對輸入的信息進行處理,將漢字或其它字符顯示在屏幕上。
3 軟件部分的設計
根據(jù)用戶的要求,軟件部分事實上要解決兩個問題,第一,每按下一組按鍵會產(chǎn)生一組按鍵碼,如何將按鍵碼編碼轉(zhuǎn)換成一個漢語拼音的編碼,并把該編碼輸入到PC機中,這一部分由內(nèi)嵌至單片機中的程序完成。第二,如何將漢語拼音轉(zhuǎn)換成文字輸入到字處理軟件中,比如說常用的MicrosoftWord。第二個問題我們可有多種選擇,借助現(xiàn)有的軟件和拼音輸入法或自行編寫一個字處理軟件均可。這里我主要介紹第一個問題的解決方案。
這里,我們可從程序的流程上分步解決問題。
1)由于是多鍵并擊,會同時有多個按鍵碼輸入到單片機中,這些按鍵碼進入CPU的時間不同,可能組成多種漢字,這就需要我們首先要把每個漢字的按鍵碼正確的區(qū)分開,去除誤操作,分別組成正確的鍵盤碼。當然,我們可對鍵盤左右兩部分的按鍵編碼進行分類,左邊按鍵碼為0X,右邊的為lX(X=l、2、3……),然后,依次轉(zhuǎn)換按鍵碼。
2)將按鍵碼轉(zhuǎn)換成所對應的輸出碼,這可有多種方式。經(jīng)過試驗,我們選擇建立一個字庫,存放全部的鍵代碼和給主機傳送的拼音碼、大小寫英文、阿拉伯數(shù)字和一些常用的符號等的ASCII碼。這樣的優(yōu)點是程序簡單,幾乎不產(chǎn)生誤碼,缺點是占用空間大,但相對于20k的存儲空間來說微不足道。由于單側(cè)輸入一個漢字最多需要8鍵同擊,故在本字庫中,共分成8個庫,一字庫、二字庫、…、八字庫。如四字庫就是4鍵同擊時,到此字庫中查找。這樣可以加快查找速度。
3)查找所得到得輸出碼(包含漢字的拼音碼和其它字符的擴展ASCII碼),可通過串口與主機通信,當數(shù)據(jù)傳輸結(jié)束后,再重新掃描鍵盤。
整個程序流程圖如圖3所示。
評論