關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于LPC2138的中文輸入系統(tǒng)設(shè)計(jì)

基于LPC2138的中文輸入系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-09-25 來源:網(wǎng)絡(luò) 收藏

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。

本文引用地址:http://butianyuan.cn/article/162830.htm

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鍵盤輸入時(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)的核心問題。

6j.JPG


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

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: ARM7

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉