《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于LPC2138的中文輸入系統(tǒng)設(shè)計(jì)
基于LPC2138的中文輸入系統(tǒng)設(shè)計(jì)
單片機(jī)與嵌入式系統(tǒng)
劉堅(jiān)強(qiáng),,胡 穎 東北大學(xué)
摘要: 摘要:給出一種基于Philips公司的ARM7微控制器LPC2138的中文輸入系統(tǒng)的設(shè)計(jì)方法,。系統(tǒng)采用4×4接口鍵盤(pán)、LCM240128圖形液晶模塊以及存儲(chǔ)器等實(shí)現(xiàn)T9中文輸入法,可以進(jìn)行漢字,、英文,、數(shù)字符號(hào)等文本信息的輸入,。
關(guān)鍵詞: 微處理器|微控制器 ARM7 LPC2138
Abstract:
Key words :

摘要:給出一種基于Philips公司的ARM7微控制器LPC2138的中文輸入系統(tǒng)的設(shè)計(jì)方法,。系統(tǒng)采用4×4接口鍵盤(pán)、LCM240128圖形液晶模塊以及存儲(chǔ)器等實(shí)現(xiàn)T9中文輸入法,,可以進(jìn)行漢字,、英文、數(shù)字符號(hào)等文本信息的輸入,。該中文輸入系統(tǒng)可廣泛地應(yīng)用于各類(lèi)電子設(shè)備的研發(fā),,具有較高實(shí)用價(jià)值。
關(guān)鍵詞:ARM7,;LPC2138,;中文輸入

引言
    目前,以液晶和數(shù)字鍵盤(pán)實(shí)現(xiàn)的人機(jī)交互式界面在智能終端中廣泛采用。在不同的應(yīng)用場(chǎng)合,,對(duì)人機(jī)界面的要求也不同,,一些情況下只要求簡(jiǎn)單參數(shù)的顯示和選擇,而在一些信息終端中還要求中文的輸入,。因此,,研究基于單片機(jī)的中文輸入方法,對(duì)于各類(lèi)電子裝置的開(kāi)發(fā)具有一定的現(xiàn)實(shí)意義,。本系統(tǒng)基于ARM7微控制器LPC2138,,通過(guò)擴(kuò)展4×4鍵盤(pán)和液晶實(shí)現(xiàn)了T9中文輸入系統(tǒng)的設(shè)計(jì)。

1 LPC2138簡(jiǎn)介
    Philips公司的32位ARM7微控制器LPC2138具有強(qiáng)大的存儲(chǔ)空間,,內(nèi)嵌32 KB片內(nèi)靜態(tài)RAM和512 KB的Flash存儲(chǔ)器,;可以實(shí)現(xiàn)在系統(tǒng)可編程(ISP)、在應(yīng)用可編程(IAP),;2個(gè)8路10位A/D轉(zhuǎn)換器,,1個(gè)D/A轉(zhuǎn)換器,轉(zhuǎn)換迅速準(zhǔn)確,;引腳資源豐富,,多達(dá)47個(gè)可承受5 V電壓的通用I/O口,;多個(gè)串行接口,,包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn)UART、2個(gè)高速I(mǎi)2C接口,、SPI,,以及具有緩沖作用和數(shù)據(jù)長(zhǎng)度可變功能的SSP協(xié)議。LPC2138可以移植μC/0S-II操作系統(tǒng),,軟件的可移植性好,,工作可靠。

2 硬件系統(tǒng)
2.1 系統(tǒng)體系結(jié)構(gòu)
    一個(gè)完整的文本輸入系統(tǒng)由主控器,、輸入設(shè)備和顯示設(shè)備3部分構(gòu)成,。本系統(tǒng)結(jié)構(gòu)如圖1所示。采用LPC2138芯片作為主控器,,擴(kuò)展4×4接口鍵盤(pán)作為輸入設(shè)備,,擴(kuò)展LCM240128圖形液晶模塊作為顯示設(shè)備。此外,,系統(tǒng)還擴(kuò)展了E2PROM AT24C256作為字庫(kù)字模數(shù)據(jù)存儲(chǔ)芯片,。

6a.JPG


2.2 4×4鍵盤(pán)電路
    如圖2所示,系統(tǒng)擴(kuò)展4×4簡(jiǎn)易鍵盤(pán),,通過(guò)行列掃描的方式讀取鍵值,。數(shù)字、字母、符號(hào)等共用同一套鍵盤(pán),,具有多種切換模式,,供用戶選擇。“1”鍵可調(diào)用符號(hào)輸入函數(shù),;“O”和“#”鍵分別實(shí)現(xiàn)字母和漢字,、數(shù)字和漢字之間的切換;“*”鍵可實(shí)現(xiàn)輸入字符的退格,;“↑ ”“↓”鍵可以對(duì)輸出拼音列表進(jìn)行光標(biāo)移動(dòng),,以及對(duì)漢字列表進(jìn)行翻頁(yè)操作;“確定”和“取消”鍵分別實(shí)現(xiàn)拼音和漢字輸入的確認(rèn)和取消,。按鍵功能定義如圖3所示,。

        6b.JPG   

6c.JPG
2.3 存儲(chǔ)模塊電路
    利用ARM7的I2C總線擴(kuò)展E2PROM AT24C256,接口電路如圖4所示,。AT24C256存儲(chǔ)空間32 KB,,作為字庫(kù)存儲(chǔ)芯片來(lái)存儲(chǔ)24×24國(guó)標(biāo)二級(jí)字庫(kù)字模數(shù)據(jù)。通過(guò)獲取漢字字模數(shù)據(jù),,實(shí)現(xiàn)圖形液晶模塊對(duì)漢字的顯示,。

 

6d.JPG
2.4 液晶模塊電路
    液晶模塊電路如圖5所示。采用圖形液晶顯示模塊LCM240128作為顯示設(shè)備,。其內(nèi)部不含中文字庫(kù),,配合字庫(kù)存儲(chǔ)芯片AT24C256可以實(shí)現(xiàn)24×24中文漢字的輸入。

3 軟件系統(tǒng)
    T9拼音輸入系統(tǒng)軟件部分的主要任務(wù)是將鍵盤(pán)輸入的數(shù)字序列轉(zhuǎn)換成漢字,。其主要由3部分構(gòu)成:
    ①將鍵盤(pán)輸入的數(shù)字序列轉(zhuǎn)換為拼音編碼,;
    ②根據(jù)拼音編碼找到對(duì)應(yīng)的漢字編碼;
    ③根據(jù)漢字編碼找到二級(jí)字庫(kù)存儲(chǔ)芯片中對(duì)應(yīng)的漢字字模數(shù)據(jù)的首地址,。
3.1 拼音,、漢字表格式定義
    在程序中,拼音編碼的數(shù)據(jù)格式如下:

6e.JPG

    拼音編碼索引表的定義為一個(gè)常量數(shù)組,,每一個(gè)拼音的編碼都作為一個(gè)元素存在,。其格式如下:

6f.JPG

    漢字編碼表為多個(gè)常量數(shù)組構(gòu)成。其格式如下:

6g.JPG

    漢字編碼表中,,每一個(gè)漢字對(duì)應(yīng)1個(gè)ACSII碼,,根據(jù)ASCII碼可以分離出漢字在漢字內(nèi)碼表的行、列位置,,用于查找字庫(kù)中對(duì)應(yīng)漢字的字模的首地址,。
3.2 漢字庫(kù)字模首地址查詢
    漢字內(nèi)碼是一個(gè)4位十六進(jìn)制數(shù),區(qū)位碼是一個(gè)4位的十進(jìn)制數(shù),,每個(gè)漢字內(nèi)碼或區(qū)位碼都對(duì)應(yīng)著一個(gè)唯一的漢字或符號(hào),。圖6(a)和6(b)分別為區(qū)位碼表和漢字內(nèi)碼表,。其對(duì)應(yīng)關(guān)系為:漢字內(nèi)碼列=區(qū)碼+0xaO;漢字內(nèi)碼行=位碼+0xaO,。

6h.JPG


    在E2PROM中,,二級(jí)字庫(kù)字模的存儲(chǔ)格式為一維數(shù)組,而在漢字輸出匹配時(shí)采用的是漢字內(nèi)碼格式(2個(gè)十六進(jìn)制數(shù)表示),,所以需要將漢字內(nèi)碼的行和列二維地址換算成一維地址,,從而對(duì)應(yīng)找到24x 24字庫(kù)中漢字字模的起始位置。
    對(duì)于最終匹配好的漢字編碼表中的漢字,,取出其漢字內(nèi)碼的行和列分別作為code_a和code_b(以“白”字為例,,其漢字內(nèi)碼為B0D7,則code_a=0xb0,、code_b=0xd7),。則其對(duì)應(yīng)的存儲(chǔ)器中24×24漢字字模首地址的計(jì)算關(guān)系為:存儲(chǔ)器中漢字字模首地址=[(code_a一0xal)+(code_b一0xb0)×94]×(24×24/8)。
3.3 文字輸入判斷
    T9鍵盤(pán)輸入時(shí),,需要對(duì)鍵值進(jìn)行一系列的判斷,。根據(jù)功能的不同,分別需要對(duì)數(shù)字鍵,、翻頁(yè)鍵,、退格鍵、數(shù)字/漢字切換鍵,、字母/漢字切換鍵,、符號(hào)鍵以及確定、取消鍵進(jìn)行順次的判斷,。其判斷流程如圖7所示,。

6i.JPG


3.4 數(shù)字,、拼音和漢字匹配輸出
    拼音編碼索引表和漢字編碼數(shù)組是一一對(duì)應(yīng)的,,如何實(shí)現(xiàn)對(duì)輸入數(shù)字序列與拼音列表之間的映射、拼音與漢字列表之間的映射,、漢字與字庫(kù)芯片中漢字字模之間的映射是該系統(tǒng)的核心問(wèn)題,。

6j.JPG


    如圖8所示,數(shù)字,、拼音和漢字匹配輸出程序步驟(以‘白’字為例):
    ①系統(tǒng)針對(duì)于所輸入的數(shù)字序列“224”,,在拼音編碼索引表中進(jìn)行匹配,得到兩個(gè)拼音“bai”和“cai”,;
    ②通過(guò)光標(biāo)選擇“bai”后,,在拼音編碼索引表中可以獲得漢字編碼表中對(duì)應(yīng)漢字的位置,即T9PY_IDX數(shù)組中的*hz_bai,;
    ③在漢字編碼表中獲取hz_bai[]數(shù)組數(shù)據(jù),,送屏幕進(jìn)行顯示“白百擺敗拜佰柏稗”,;
    ④通過(guò)數(shù)字鍵選擇對(duì)應(yīng)的漢字后,獲取該漢字的ASCII碼BOD7,;
    ⑤將漢字內(nèi)碼的ASCII碼通過(guò)漢字內(nèi)碼地址的轉(zhuǎn)換,,找到存儲(chǔ)芯片中該漢字字模數(shù)據(jù)的首地址,將字模數(shù)據(jù)送液晶顯示,,完成一個(gè)漢字的輸入,。

結(jié)語(yǔ)
    本文介紹了基于Philips公司的ARM7微控制器LPC2138的T9中文輸入系統(tǒng)的設(shè)計(jì)方法,實(shí)現(xiàn)了漢字,、英文字母,、數(shù)字符號(hào)等文本信息的輸入。本方案可以為基于單片機(jī)的產(chǎn)品開(kāi)發(fā),、中文輸入法研究等提供參考,,具有一定的實(shí)用價(jià)值。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。