亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        T9輸入法在嵌入式設(shè)備中的實(shí)現(xiàn)方案

        2014-07-02 08:42:54李文軍于明浩王新征鄭振華
        關(guān)鍵詞:碼表輸入法數(shù)據(jù)結(jié)構(gòu)

        李文軍,于明浩,王新征,鄭振華

        (總參通信訓(xùn)練基地,宣化075100)

        引 言

        T9輸入法全名為智能輸入法,由美國特捷通訊(Tegic Communications)軟件公司開發(fā),是目前小型嵌入式人機(jī)交互設(shè)備中常用的文字輸入法,可以直觀、簡捷、快速地輸入簡短文字。在研制基于STM32F107VCT6(以下簡稱STM32)芯片的人機(jī)交互設(shè)備時(shí),需要輸入文字(主要是漢字)進(jìn)行人機(jī)交互,但是可用的鍵盤已定型固化而且按鍵極其有限(僅有7個(gè))。根據(jù)T9輸入法的基本原理,研究了一種利用有限鍵盤資源實(shí)現(xiàn)輸入漢、英文字的方案。

        1 總體設(shè)計(jì)方案

        硬件由4部分組成:中心控制芯片STM32F107VCT6、驅(qū)動芯片SSD1963QL9AU315AF控制的7寸480×240像素的TFT顯示屏、預(yù)裝中文字庫容量為64 Mb的W25Q64的FLASH芯片、簡單的鍵盤。其邏輯組成如圖1所示。程序的功能實(shí)現(xiàn)方面主要由4個(gè)功能模塊組成:STM32F107VCT6的系統(tǒng)驅(qū)動程序、TFT屏幕驅(qū)動和顯示程序、按鍵控制程序、T9輸入法程序。

        圖1 系統(tǒng)硬件方框圖

        本文的總體設(shè)計(jì)方案是外部鍵盤輸入、T9算法、存儲并顯示這3部分通過與STM32控制芯片的交互,實(shí)現(xiàn)文字的輸入、顯示與存儲。系統(tǒng)開始工作前先將點(diǎn)陣字庫文件存放到W25Q64芯片的FLASH中(通過SPI接口實(shí)現(xiàn)與STM32的信息交換)。系統(tǒng)啟動后,在TFT顯示屏上繪制T9輸入界面,包括提示信息和拼音輸入表,通過掃描按鍵得到輸入信號,利用T9算法得到存放在W25Q64的FLASH芯片中的字符點(diǎn)陣,并顯示在TFT屏幕上。

        1.1 硬件設(shè)計(jì)

        STM32F107VCT6是ST公司設(shè)計(jì)的一種低功耗、低成本的內(nèi)核為32位的Cortex-M3處理器,其最高工作頻率達(dá)72 MHz,內(nèi)部含有256 KB的FLASH和64 KB的SRAM,實(shí)時(shí)性好,且具有很強(qiáng)的中斷處理能力[1],目前廣泛應(yīng)用于各種嵌入式和手持設(shè)備中,是本設(shè)計(jì)的核心部件。

        W25Q64是華邦公司推出的大容量SPI FLASH產(chǎn)品,容量為8 MB,支持標(biāo)準(zhǔn)SPI,最大SPI時(shí)鐘可達(dá)80 MHz[1],在本設(shè)計(jì)中則是利用STM32自帶的SPI來實(shí)現(xiàn)對外部FLASH W25Q64的讀寫。

        本設(shè)計(jì)中,鍵盤由四向操縱桿的4個(gè)方向鍵和3個(gè)按鍵組成。文字的輸入需要借助TFT顯示屏上的光標(biāo)位置并結(jié)合鍵盤操作來完成,是一種充分利用現(xiàn)有資源的集約設(shè)計(jì)。其中3個(gè)按鍵分別稱為確定1鍵、確定2鍵、輸入方式切換鍵,其具體功能如表1所列。

        表1 鍵盤具體功能表

        TFT顯示屏及其顯示芯片在本設(shè)計(jì)中作為外部存儲器使用,對TFT驅(qū)動芯片SSD1963QL9AU315AF的操作進(jìn)行簡單編程,利用指針實(shí)現(xiàn)對TFT的讀寫操作。由于鍵盤已定型固化而且按鍵有限,因此本設(shè)計(jì)中TFT顯示屏還將結(jié)合鍵盤,模擬T9數(shù)字鍵盤的功能。

        1.2 程序設(shè)計(jì)

        本系統(tǒng)中,T9算法的代碼在ST公司自帶的庫文件上編寫。初始化階段先配置好STM32F107VCT6的內(nèi)部時(shí)鐘、SPI、鍵盤、W25Q64、TFT等設(shè)備的接口,并分別初始化啟動,進(jìn)入到T9輸入法界面。設(shè)計(jì)的T9輸入法包括漢字拼音輸入和英文(含數(shù)字、標(biāo)點(diǎn)、大小寫英文)兩種方式,并且兩種輸入方式可相互切換。

        T9輸入法實(shí)際上就是一個(gè)查找、判斷輸入數(shù)字串與拼音組合之間的映射關(guān)系過程[4]。本設(shè)計(jì)中采用的是簡單的循環(huán)結(jié)構(gòu)[2],首先通過掃描鍵盤獲得輸入信號,然后判斷是數(shù)字序列還是處理信號;若是數(shù)字序列則再判斷是漢字輸入狀態(tài)還是英文輸入狀態(tài);根據(jù)輸入內(nèi)容不斷修正與拼音碼表及漢字排列表的映射關(guān)系進(jìn)行定位,獲得文字的機(jī)內(nèi)碼并在數(shù)組中存儲;根據(jù)機(jī)內(nèi)碼在字庫中獲取相應(yīng)的點(diǎn)陣數(shù)組,在LCD顯示屏上顯示;若鍵盤輸入的是字符處理信號,則需要對已輸入的數(shù)字序列進(jìn)行相應(yīng)的刪除、選擇等處理。算法的主體結(jié)構(gòu)流程如圖2所示。

        圖2 T9輸入法主體結(jié)構(gòu)流程圖

        2 T9輸入法的實(shí)現(xiàn)

        T9輸入法的實(shí)現(xiàn)過程可看作是根據(jù)鍵盤輸入信號查找拼音組合,進(jìn)而確定相應(yīng)漢字的過程,其中難點(diǎn)在于數(shù)字串到拼音的映射往往是多對多的映射關(guān)系,而拼音到同音的漢字排列表是一對多的映射關(guān)系。因此為了理清T9輸入法的基本映射原理,使文字的輸入過程更加明晰,可以將T9輸入法代碼從邏輯上分為3部分:拼音輸入與漢字查找的數(shù)據(jù)結(jié)構(gòu)(即碼表設(shè)計(jì))、碼表的查找過程、界面顯示設(shè)計(jì)。

        2.1 碼表設(shè)計(jì)中的重要數(shù)據(jù)結(jié)構(gòu)

        在T9輸入法中,采用漢語拼音的漢字輸入方式比較復(fù)雜。在輸入過程中,首先需要獲得正確組合的數(shù)字序列,根據(jù)數(shù)字序列找到對應(yīng)的拼音碼表進(jìn)行初步定位,再根據(jù)該拼音碼在漢字庫中找到對應(yīng)的漢字,然后根據(jù)漢字的機(jī)內(nèi)碼到漢字字庫中查找漢字的點(diǎn)陣數(shù)組,這一過程稱為“碼表查找”。從保證碼表查找過程的簡捷、高效這一意義上講,碼表的設(shè)計(jì)是碼表查找的關(guān)鍵[3]。在T9算法的碼表設(shè)計(jì)里用到兩種數(shù)據(jù)結(jié)構(gòu),即拼音索引數(shù)據(jù)結(jié)構(gòu)和漢字字模數(shù)據(jù)結(jié)構(gòu)。

        2.1.1 拼音索引數(shù)據(jù)結(jié)構(gòu)

        本文拼音索引的數(shù)據(jù)結(jié)構(gòu)是一個(gè)包括輸入數(shù)字序列、拼音、拼音碼表的結(jié)構(gòu)體,這三者構(gòu)成一個(gè)完整的三級映射關(guān)系。其定義如下:

        其中具體的拼音索引表(部分)如下所示:

        與拼音碼表對應(yīng)的漢字排列表(部分)如下所示:

        2.1.2 漢字字模數(shù)據(jù)結(jié)構(gòu)

        漢字字模數(shù)據(jù)結(jié)構(gòu)是一個(gè)包括漢字的機(jī)內(nèi)碼(兩個(gè)字節(jié))、點(diǎn)陣碼的結(jié)構(gòu)體,其定義如下:

        漢字的點(diǎn)陣碼數(shù)據(jù)是橫向取模,根據(jù)所用顯示屏特性,數(shù)據(jù)排列方式為從左到右、從上到下。以漢字“啊”為例,如下所示:

        2.2 T9算法的查找流程與實(shí)現(xiàn)

        在本設(shè)計(jì)中,一個(gè)輸入事件就是輸入一串外部信號,通過軟硬件的交互處理,在相應(yīng)的文本框中顯示與外部輸入信號對應(yīng)的文字。由于本設(shè)計(jì)中鍵盤有限,相同的操作在不同的環(huán)境下可能有不同的意義,因此為了更進(jìn)一步明晰每一個(gè)外部信號的作用,輸入界面加入了其他成型的輸入設(shè)備中不常出現(xiàn)的“數(shù)字”、“當(dāng)前索引”、“匹配數(shù)”等提示信息。圖3是本設(shè)計(jì)T9拼音輸入下輸入“互助相幫”文字過程中的顯示界面。

        圖3 T9輸入法操作界面

        py查找流程是一個(gè)隨著外部信號的輸入而不斷變化的動態(tài)過程,以輸入漢字“幫”為例,將T9輸入法的拼音輸入漢字的過程簡略概括如下:首先掃描鍵盤,結(jié)合光標(biāo)在TFT顯示屏的位置,通過右鍵結(jié)合確定鍵2輸入數(shù)字串“2264”,根據(jù)數(shù)字串到py_index型自定義數(shù)據(jù)結(jié)構(gòu)py_index3[]中搜索相應(yīng)的py和pymb,其中與“2264”對應(yīng)的py有兩種,即“bang”和“cang”,而其分別對應(yīng)的同音漢字也有兩組,具體情形參考2.1.1小節(jié)中的內(nèi)容。

        在本設(shè)計(jì)自定義的拼音索引表py_index_li[]中,拼音順序按英文字母表順序排列。拼音“bang”的位置比“cang”靠前,是第一個(gè)匹配拼音(圖3中“當(dāng)前索引”為1),即當(dāng)前的“拼音匹配”。將當(dāng)前“拼音匹配”“bang”音的漢字存放到數(shù)組u8 buf_store[]中,并將前8個(gè)漢字,即“邦幫梆榜膀綁棒磅”分別按1至8的順序排列顯示(參見圖3)。掃描按鍵,如果是左鍵按下,則將“當(dāng)前索引”修改為2,“拼音匹配”修改為“cang”,將拼音匹配“cang”音的漢字存放到數(shù)組u8 buf_store[]中,并將其前8個(gè)漢字按順序排列顯示。若是光標(biāo)1結(jié)合確定2鍵按下,即執(zhí)行刪除操作,則數(shù)字序列最后一位被刪去,變?yōu)椤?26”,其py有“ban”、“bao”、“can”、“cao”四種,其中“ban”為第一個(gè)匹配拼音,并顯示其前8個(gè)漢字。

        選定拼音后(設(shè)選定“bang”),下一步需要選定漢字。掃描鍵盤,若輸入信號是確定1鍵按下,則會將“bang”音的前8個(gè)漢字按順序排列(參見圖3),而“幫”在“bang”音漢字?jǐn)?shù)組{"邦幫梆榜膀綁棒磅……"}中排第2位,則利用右鍵將光標(biāo)移動到2的位置,按下確定2鍵,即可利用賦值語句從存儲數(shù)組buf_store[]中取出漢字“幫”的漢字機(jī)內(nèi)碼碼0xB0和0x EF;然后利用“幫”的漢字機(jī)內(nèi)碼到FLASH中存儲的GBHZ_16[]中查找漢字“幫”的顯示點(diǎn)陣,將之顯示到顯示屏上,并存儲其漢字內(nèi)碼到u8 buf_message[]中,從而完成一次完整拼音輸入、漢字查找并顯示的過程。具體過程如圖4所示。

        圖4 T9輸入法“py”查找流程圖

        英文輸入過程相對簡單,映射關(guān)系也相對清晰,可以參考py到pymb一對多的映射和搜索過程,在此不再贅述。

        結(jié) 語

        當(dāng)前嵌入式人機(jī)交互設(shè)備在各行業(yè)獲得廣泛應(yīng)用,輸入法是不可或缺的重要組成部分,而商用輸入法的成本較高[5]且具有一定的安全風(fēng)險(xiǎn),因此自行設(shè)計(jì)具備中英文切換功能的輸入法是很有必要的。鑒于此,根據(jù)T9輸入法的基本思想,本文介紹了一個(gè)比較簡單但能滿足基本文字交互要求的輸入法實(shí)現(xiàn)方案。本設(shè)計(jì)方案中所有程序代碼采用C語言編寫,代碼具有較強(qiáng)的可移植性,并可根據(jù)需要添加詞組和聯(lián)想功能,目前本方案己經(jīng)應(yīng)用在數(shù)種型號的嵌入式人機(jī)交互設(shè)備中。

        [1]張洋,劉軍.原子教你玩STM32[M].北京:北京航空航天大學(xué)出版社,2013.

        [2]張真波,李俊,倪宏,等.電視機(jī)遙控器中文輸入法的實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2008,1(2):278-280.

        [3]甘亞輝.嵌入式中文拼音輸入法的設(shè)計(jì)[J].開發(fā)案例,2008,3(3):84-85.

        [4]李晨.嵌入式系統(tǒng)下中文拼音輸入法的設(shè)計(jì)與實(shí)現(xiàn)[J].航空電子技術(shù),2009,12(4):31-34.

        [5]閔華松,童學(xué)才,陳啟卷.嵌入式中文輸入法設(shè)計(jì)[J].嵌入式系統(tǒng)應(yīng)用,2006,8(22):41-43.

        猜你喜歡
        碼表輸入法數(shù)據(jù)結(jié)構(gòu)
        要命的輸入法
        iGPSPORTiGS618智能GPS碼表測評
        中國自行車(2018年9期)2018-10-13 06:17:04
        皺皺眉頭就是一首詩
        優(yōu)雅(2017年8期)2017-08-08 06:01:53
        廉價(jià)親民黑鳥單車BB10 GPS碼表評測
        中國自行車(2017年1期)2017-04-16 02:54:07
        百度被訴侵犯商標(biāo)權(quán)和不正當(dāng)競爭
        “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        輕松上手 碼表踏頻組
        TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
        《數(shù)據(jù)結(jié)構(gòu)》教學(xué)方法創(chuàng)新探討
        河南科技(2014年5期)2014-02-27 14:08:57
        毛片精品一区二区二区三区| 国产三级国产精品国产专区50| 亚洲天堂av在线一区| 熟女人妻在线中文字幕| 国产av熟女一区二区三区| 国产精品毛片一区二区 | 麻豆精品国产专区在线观看| 摸进她的内裤里疯狂揉她动图视频| 狠狠躁夜夜躁人人爽天天古典| 亚洲中文字幕无码一区| 亚洲一区二区三区久久蜜桃| 乱人伦人妻中文字幕不卡| 国产人成视频免费在线观看| 国产精品毛片毛片av一区二区| 亚洲成人一区二区av| 亚洲一区二区三区99| 国产91传媒一区二区三区| 精品国产av一区二区三区| 最近中文字幕完整版| 九九精品国产99精品| 麻豆视频黄片在线免费观看| 亚洲人成网77777色在线播放| 日本一卡2卡3卡4卡无卡免费网站| 国产免费av片在线观看麻豆| 国产精品国产三级国产专播| 色噜噜精品一区二区三区| 国产av麻豆精品第一页| 国产在线视频一区二区天美蜜桃| 99精品视频69v精品视频| 狠狠噜天天噜日日噜视频麻豆| 国产精品va在线观看无码| 91精品91久久久久久| 国产亚洲精品视频网站| 蜜桃视频插满18在线观看| 亚洲老妈激情一区二区三区| 国产精品久久久久电影网| АⅤ天堂中文在线网| 国产区一区二区三区性色 | 扒开腿狂躁女人爽出白浆| 日日躁夜夜躁狠狠躁超碰97 | 真实国产精品vr专区|