當前位置:縱橫輸入法首頁>>教學經驗交流>>第二屆縱橫碼教學經驗交流會論文集

一種縱橫漢字輸入鍵盤的硬件設計與實現
寧波大學計算機系 虞建祥 干紅華 于曉

一、引言

  縱橫漢字編碼法是一種將漢字輸入電腦的簡易方法,總共使用了「0」~「9」這10個數字鍵,無需使用英文大鍵盤。如果有一種集合了縱橫碼筆形代碼按鍵和特殊功能按鍵的縱橫碼漢字輸入專用鍵盤,這將有利於縱橫漢字輸入法的推廣應用和普及,本文就是要研製一種處理多鍵盤與微機並聯的通訊接口電路,使縱橫輸入鍵盤和標準輸入鍵盤一起構成微機系統的輸入設備。

二、縱橫碼輸入鍵盤的硬件設計

  1. 縱橫碼輸入鍵盤以一種橋的形式同時連接著微機的標準鍵盤輸入接口和標準鍵盤的輸出接口,內部電路完成標準鍵盤和縱橫碼鍵盤的鍵碼輸入轉換、專用鍵盤和微機間的數據通訊兩個功能。這種結構能夠實現無需變動一台普通微機任何內外部設備,即可完成縱橫輸入鍵盤的連接。標準鍵盤仍是微機標準輸入設備,不影響原微機的使用。

(圖1)

  2. 縱橫碼輸入鍵盤的原理框圖

(圖2)

  見圖2,整個系統的控制過程以控制器C為核心,標準鍵盤的鍵碼數據通訊由模塊A完成,縱橫碼輸入鍵盤的數據通訊由模塊B完成,模塊A和模塊B以一定的數據通信協議向控制器C發出傳遞數據請求,控制器C以一定的優先級獲取數據後,再轉發給微機,完成一次按鍵操作。

  3. 縱橫碼輸入鍵盤的鍵碼輸入電路

  見圖3,這是一個微型計算機標準鍵盤的單片機處理系統,基於縱橫碼輸入鍵盤按鍵組合的靈活性和系統的穩定性,鍵盤控制芯片使用標準鍵盤的控制芯片,由於單片機採用了掩膜技術,8051的P0、P1、P2 口直接構成鍵盤矩陣電路。按鍵包括原來微機小鍵盤的功能鍵和附加的縱橫碼輸入特殊功能按鍵組成,關於縱橫碼輸入鍵盤的鍵面板設計不在本文討論範圍。

(圖3)

  4. 功能模塊的數據通信協議

  功能模塊A和模塊B獨立接收標準鍵盤和專用鍵盤的鍵號代碼數據,以模塊A為例,當接收到標準鍵盤的鍵號輸入後,向控制器C申請轉發鍵號數據請求,若控制器C空閒,則給模塊A應答信號,同時置控制器C忙,當控制器C向微機發送完標準鍵盤的鍵號代碼後,置空閒狀態,等待接收模塊A和B的下一次轉發數據請求。

三、縱橫碼輸入鍵盤的軟件設計

  1. 波特率的設置

  51單片機內含有一個全雙工的串行口,由於採用非標準的RS-232C,加上其波特率是採用系統時鐘由內部通用定時器產生的,誤差大。當它與PC微機進行串行數據通訊時將會遇到許多意想不到的技術問題,其中波特率是串行通訊中的一個關鍵參數,通訊雙方波特率的一致性直接影響數據傳輸的正確性,PC機的串行通訊控制器採用的是Intel8250,其波特率是由1.8432MHz專用時鐘經16位的除法器產生,可以精確地定出各種標稱波特率,而51單片機的波特率是由系統時鐘經定時器T1產生的,由於系統時鐘一般為6.0MHz或12.0MHz,有效位數少,而T1又是用的8位自動裝入定時方式。因此,很難精確地定出各種標稱波特率。

  當8051定時器1工作於方式2,串行口工作方式3時,其波特率由下式決定。

  波特率=1/32 x {晶振時鐘/[12x(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所示:

(圖4)

四、結束語

  本文主要介紹了一種把縱橫碼輸入鍵盤與標準鍵盤同時掛接在微機上的硬件接口設計和軟件設計方法,硬件電路採用51單片機結構的接口處理板,具有系統穩定、體積小和成本低的特點(約普通市售鍵盤的1.5倍)。由於接口電路採用一種過濾轉發鍵碼的數據通訊方法,很容易集成縱橫碼輸入的特殊功能鍵,提高漢字的輸入速度。本接口電路某些關鍵技術現已取得成功。