一種縱橫漢字輸入鍵盤的硬體設計與實現
寧波大學計算機系
虞建祥、干紅華、於曉
一、引言
縱橫漢字編碼法是一種將漢字輸入電腦的簡易方法,總共使用了“0”∼“9”這10個數字鍵,無需使用英文大鍵盤。如果有一種集合了縱橫碼筆形代碼按鍵和特殊功能按鍵的縱橫碼漢字輸入專用鍵盤,這將有利於縱橫漢字輸入法的推廣應用和普及,本文就是要研製一種處理多鍵盤與PC並聯的通訊接口電路,使縱橫輸入鍵盤和標準輸入鍵盤一起構成PC系統的輸入設備。
二、縱橫碼輸入鍵盤的硬體設計
1.縱橫碼輸入鍵盤以一種橋的形式同時連接著PC的標準鍵盤輸入接口和標準鍵盤的輸出接口,內部電路完成標準鍵盤和縱橫碼鍵盤的鍵碼輸入轉換、專用鍵盤和PC間的資料通訊兩個功能。這種結構能夠實現無需變動一台普通PC任何內外部設備,即可完成縱橫輸入鍵盤的連接。標準鍵盤仍是PC標準輸入設備,不影響原PC的使用。
2.縱橫碼輸入鍵盤的原理框圖
見圖2,整個系統的控制過程以控制器C為核心,標準鍵盤的鍵碼資料通訊由模塊A完成,縱橫碼輸入鍵盤的資料通訊由模塊B完成,模塊A和模塊B以一定的資料通信協議向控制器C發出傳遞資料請求,控制器C以一定的優先級獲取資料後,再轉發給PC,完成一次按鍵操作。
3.縱橫碼輸入鍵盤的鍵碼輸入電路
見圖3,這是一個微型電腦標準鍵盤的單片機處理系統,基於縱橫碼輸入鍵盤按鍵組合的靈活性和系統的穩定性,鍵盤控制晶片使用標準鍵盤的控制晶片,由於單片機採用了掩膜技術,8051的P0、P1、P2口直接構成鍵盤矩陣電路。按鍵包括原來PC小鍵盤的功能鍵和附加的縱橫碼輸入特殊功能按鍵組成,關於縱橫碼輸入鍵盤的鍵面板設計不在本文討論範圍。
4.功能模塊的資料通信協議
功能模塊A和模塊B獨立接收標準鍵盤和專用鍵盤的鍵號代碼資料,以模塊A為例,當接收到標準鍵盤的鍵號輸入後,向控制器C申請轉發鍵號資料請求,若控制器C空閒,則給模塊A應答信號,同時置控制器C忙,當控制器C向PC發送完標準鍵盤的鍵號代碼後,置空閒狀態,等待接收模塊A和B的下一次轉發資料請求。
三、縱橫碼輸入鍵盤的軟體設計
1.波特率的設置
51單片機內含有一個全雙工的串行口,由於採用非標準的RS--232C,加上其波特率是採用系統時鐘由內部通用定時器產生的,誤差大。當它與PCPC進行串行資料通訊時將會遇到許多意想不到的技術問題,其中波特率是串行通訊中的一個關鍵參數,通訊雙方波特率的一致性直接影響資料傳輸的正確性,PC機的串行通訊控制器採用的是Intel8250,其波特率是由1.8432MHz專用時鐘經16位的除法器產生,可以精確地定出各種標稱波特率,而51單片機的波特率是由系統時鐘經定時器T1產生的,由於系統時鐘一般為6.0MHz或12.0MHz,有效位數少,而T1又是用的8位自動裝入定時方式。因此,很難精確地定出各種標稱波特率。
當8051定時器1工作於方式2,串行口工作方式3時,其波特率由下式決定。
波特率=1/32* {晶振時鐘/?12*(256一TH1)]}式中,TH1為定時器1工作方式2時的時間常數寄存器。
表1列出了各種通常使用的波特率以及獲得的方式﹕
|
定時器1 |
波特率 |
fosc |
SMOD |
C/T |
方式 |
再裝入值 |
方式0MAX:1MAHz |
12MHz |
* |
* |
* |
* |
方式2MHX:375K |
12MHz |
1 |
* |
* |
* |
方式1,362.5K |
12MHz |
1 |
0 |
2 |
FFH |
19.2K |
11.059MHz |
1 |
0 |
2 |
FDH |
9.6K |
11.059MHz |
0 |
0 |
2 |
FDH |
4.8K |
11.059MHz |
0 |
0 |
2 |
FAH |
2.4K |
11.059MHz |
0 |
0 |
2 |
F4H |
1.2K |
11.059MHz |
0 |
0 |
2 |
E8H |
137.5 |
11.986MHz |
0 |
0 |
2 |
1DH |
110 |
6MHz |
0 |
0 |
2 |
72H |
110 |
6MHz |
0 |
0 |
1 |
FEEBH |
2.縱橫碼輸入鍵盤的軟體流程
整個軟體用MCS-51匯編語言編寫,結構流程如圖4所示:
四、結束語
本文主要介紹了一種把縱橫碼輸入鍵盤與標準鍵盤同時掛接在PC上的硬體接口設計和軟體設計方法,硬體電路採用51單片機結構的接口處理板,具有系統穩定、體積小和成本低的特點(約普通市售鍵盤的1.5倍)。由於接口電路採用一種過濾轉發鍵碼的資料通訊方法,很容易集成縱橫碼輸入的特殊功能鍵,提高漢字的輸入速度。本接口電路某些關鍵技術現已取得成功。
返回上頁 |