chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>T9輸入法在嵌入式設(shè)備中的實(shí)現(xiàn)方案資料下載

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

2021-04-13 | pdf | 328.2KB | 次下載 | 5積分

資料介紹

引言T9輸入法全名為智能輸入法,由美國(guó)特捷通訊(Tegic Communications)軟件公司開(kāi)發(fā),是目前小型嵌入式人機(jī)交互設(shè)備中常用的文字輸入法,可以直觀、簡(jiǎn)捷、快速地輸入簡(jiǎn)短文字。 在研制基于STM32F107VCT6(以下簡(jiǎn)稱(chēng)STM32)芯片的人機(jī)交互設(shè)備時(shí),需要輸入文字(主要是漢字)進(jìn)行人機(jī)交互,但是可用的鍵盤(pán)已定型固化而且按鍵極其有限(僅有7個(gè))。根據(jù)T9輸 入法的基本原理,研究了一種利用有限鍵盤(pán)資源實(shí)現(xiàn)輸入漢、英文字的方案。1 總體設(shè)計(jì)方案硬件由4部分組成:中心控制芯片STM32F107VCT6、驅(qū)動(dòng)芯片SSD1963QL9AU315AF控制的7寸480×240像素的TFT顯示屏、預(yù)裝中文字庫(kù)容量為64 Mb的W25Q64的FLASH芯片、簡(jiǎn)單的鍵盤(pán)。其邏輯組成如圖1所示。程序的功能實(shí)現(xiàn)方面主要由4個(gè)功能模塊組成:STM32F107VCT6的系統(tǒng)驅(qū)動(dòng)程序、TFT屏幕驅(qū)動(dòng)和顯示程序、按鍵控制程序、T9輸入法程序。本文的總體設(shè)計(jì)方案是外部鍵盤(pán)輸入、T9算法、存儲(chǔ)并顯示這3部分通過(guò)與STM32控制芯片的交互,實(shí)現(xiàn)文字的輸入、顯示與存儲(chǔ)。系統(tǒng)開(kāi)始工作前先將點(diǎn)陣字庫(kù)文件存放到W25Q64芯片的FLASH中(通過(guò)SPI接口實(shí)現(xiàn)與STM32的信息交換)。系統(tǒng)啟動(dòng)后,在TFT顯示屏上繪制T9輸入界面,包括提示信息和拼音輸入表,通過(guò)掃描按鍵得到輸入信號(hào),利用T9算法得到存放在W25Q64的FLASH芯片中的字符點(diǎn)陣,并顯示在TFT屏幕上。1.1 硬件設(shè)計(jì)STM32F107VCT6是ST公司設(shè)計(jì)的一種低功耗、低成本的內(nèi)核為32位的CortexM3處理器,其最高工作頻率達(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來(lái)實(shí)現(xiàn)對(duì)外部FLASH W25Q64的讀寫(xiě)。本設(shè)計(jì)中,鍵盤(pán)由四向操縱桿的4個(gè)方向鍵和3個(gè)按鍵組成。文字的輸入需要借助TFT顯示屏上的光標(biāo)位置并結(jié)合鍵盤(pán)操作來(lái)完成,是一種充分利用現(xiàn)有資源的集約設(shè)計(jì)。其中3個(gè)按鍵分別稱(chēng)為確定1鍵、確定2鍵、輸入方式切換鍵,其具體功能如表1所列。TFT顯示屏及其顯示芯片在本設(shè)計(jì)中作為外部存儲(chǔ)器使用,對(duì)TFT驅(qū)動(dòng)芯片SSD1963QL9AU315AF的操作進(jìn)行簡(jiǎn)單編程,利用指針實(shí)現(xiàn)對(duì)TFT的讀寫(xiě)操作。由于鍵盤(pán)已定型固化而且按鍵有限,因此本設(shè)計(jì)中TFT顯示屏還將結(jié)合鍵盤(pán),模擬T9數(shù)字鍵盤(pán)的功能。1.2 程序設(shè)計(jì)本系統(tǒng)中,T9算法的代碼在ST公司自帶的庫(kù)文件上編寫(xiě)。初始化階段先配置好STM32F107VCT6的內(nèi)部時(shí)鐘、SPI、鍵盤(pán)、W25Q64、TFT等設(shè)備的接口,并分別初始化啟動(dòng),進(jìn)入到T9輸入法界面。設(shè)計(jì)的T9輸入法包括漢字拼音輸入和英文(含數(shù)字、標(biāo)點(diǎn)、大小寫(xiě)英文)兩種方式,并且兩種輸入方式可相互切換。T9輸入法實(shí)際上就是一個(gè)查找、判斷輸入數(shù)字串與拼音組合之間的映射關(guān)系過(guò)程[4]。本設(shè)計(jì)中采用的是簡(jiǎn)單的循環(huán)結(jié)構(gòu)[2],首先通過(guò)掃描鍵盤(pán)獲得輸入信號(hào),然后判斷是數(shù)字序列還是處理信號(hào);若是數(shù)字序列則再判斷是漢字輸入狀態(tài)還是英文輸入狀態(tài);根據(jù)輸入內(nèi)容不斷修正與拼音碼表及漢字排列表的映射關(guān)系進(jìn)行定位,獲得文字的機(jī)內(nèi)碼并在數(shù)組中存儲(chǔ);根據(jù)機(jī)內(nèi)碼在字庫(kù)中獲取相應(yīng)的點(diǎn)陣數(shù)組,在LCD顯示屏上顯示;若鍵盤(pán)輸入的是字符處理信號(hào),則需要對(duì)已輸入的數(shù)字序列進(jìn)行相應(yīng)的刪除、選擇等處理。算法的主體結(jié)構(gòu)流程如圖2所示。2 T9輸入法的實(shí)現(xiàn)T9輸入法的實(shí)現(xiàn)過(guò)程可看作是根據(jù)鍵盤(pán)輸入信號(hào)查找拼音組合,進(jìn)而確定相應(yīng)漢字的過(guò)程,其中難點(diǎn)在于數(shù)字串到拼音的映射往往是多對(duì)多的映射關(guān)系,而拼音到同音的漢字排列表是一對(duì)多的映射關(guān)系。因此為了理清T9輸入法的基本映射原理,使文字的輸入過(guò)程更加明晰,可以將T9輸入法代碼從邏輯上分為3部分:拼音輸入與漢字查找的數(shù)據(jù)結(jié)構(gòu)(即碼表設(shè)計(jì))、碼表的查找過(guò)程、界面顯示設(shè)計(jì)。2.1 碼表設(shè)計(jì)中的重要數(shù)據(jù)結(jié)構(gòu)在T9輸入法中,采用漢語(yǔ)拼音的漢字輸入方式比較復(fù)雜。在輸入過(guò)程中,首先需要獲得正確組合的數(shù)字序列,根據(jù)數(shù)字序列找到對(duì)應(yīng)的拼音碼表進(jìn)行初步定位,再根據(jù)該拼音碼在漢字庫(kù)中找到對(duì)應(yīng)的漢字,然后根據(jù)漢字的機(jī)內(nèi)碼到漢字字庫(kù)中查找漢字的點(diǎn)陣數(shù)組,這一過(guò)程稱(chēng)為“碼表查找”。從保證碼表查找過(guò)程的簡(jiǎn)捷、高效這一意義上講,碼表的設(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è)完整的三級(jí)映射關(guān)系。其定義如下:typedef struct {u8 *py_input;//輸入的數(shù)字序列u8 *py;//數(shù)字序列對(duì)應(yīng)的拼音u8 *pymb;//拼音碼表}py_index;其中具體的拼音索引表(部分)如下所示:Const py_indexpy_index_li[] ={{"2","a",(u8*)PY_mb_a},{"2","b",(u8*)PY_mb_b},{"2","c",(u8*)PY_mb_c},……{"2264","bang",(u8*)PY_mb_bang},{"2264","cang",(u8*)PY_mb_cang},……} //拼音索引表與拼音碼表對(duì)應(yīng)的漢字排列表(部分)如下所示:const u8 PY_mb_a[]={"啊阿腌吖錒厑嗄錒呵腌"};const u8 PY_mb_b[]={"不把被百比"};const u8 PY_mb_c[]={"才出吃次成"};……const u8 PY_mb_bang[]={"邦幫梆榜膀綁棒磅蚌鎊傍謗蒡浜"};const u8 PY_mb_cang[]={"蒼艙倉(cāng)滄藏傖"};const u8 PY_mb_zhu[]={"助主住注祝竹珠蛛朱株豬諸誅逐燭煮拄矚囑著柱蛀……"};const u8 PY_mb_xiu[]={"臭宿休修羞朽嗅銹秀袖繡咻溴貅饈岫庥鵂髹"};……//拼音漢字排列表2.1.2 漢字字模數(shù)據(jù)結(jié)構(gòu)漢字字模數(shù)據(jù)結(jié)構(gòu)是一個(gè)包括漢字的機(jī)內(nèi)碼(兩個(gè)字節(jié))、點(diǎn)陣碼的結(jié)構(gòu)體,其定義如下:typedef struct {//漢字字模數(shù)據(jù)結(jié)構(gòu)unsigned char Index[2];//漢字內(nèi)碼索引unsigned char Msk[32];//點(diǎn)陣碼數(shù)據(jù)}FNT_GB16;漢字的點(diǎn)陣碼數(shù)據(jù)是橫向取模,根據(jù)所用顯示屏特性,數(shù)據(jù)排列方式為從左到右、從上到下。以漢字“啊”為例,如下所示:const FNT_GB16 GBHZ_16[] = {//宋體12,對(duì)應(yīng)的點(diǎn)陣為:寬×高=16×16"啊",0x00,0x00,0x0E,0xFC,0xEA,0x08,0xAA,0x08,0xAA,0xE8,0xAA,0xA8,0xAC,0xA8,0xAA,0xA8,0xAA,0xA8,0xAA,0xA8,0xEA,0xE8,0xAA,0xA8,0x0C,0x08,0x08,0x08,0x08,0x28,0x08,0x10,……"幫",0x08,0x00,0x08,0x7C,0xFF,0x48,0x08,0x50,0x7E,0x48,0x08,0x44,0xFF,0x54,0x10,0x48,0x20,0x40,0x41,0x00,0xBF,0xF8,0x21,0x08,0x21,0x08,0x21,0x28,0x21,0x10,0x01,0x00,"助",0x00,0x20,0x7C,0x20,0x44,0x20,0x44,0x20,0x44,0xFC,0x7C,0x24,0x44,0x24,0x44,0x24,0x7C,0x24,0x44,0x24,0x44,0x24,0x44,0x44,0x4E,0x44,0xF0,0x84,0x01,0x28,0x02,0x10,……};2.2T9 算法的查找流程與實(shí)現(xiàn)在本設(shè)計(jì)中,一個(gè)輸入事件就是輸入一串外部信號(hào),通過(guò)軟硬件的交互處理,在相應(yīng)的文本框中顯示與外部輸入信號(hào)對(duì)應(yīng)的文字。由于本設(shè)計(jì)中鍵盤(pán)有限,相同的操作在不同的環(huán)境下可能有不同的意義,因此為了更進(jìn)一步明晰每一個(gè)外部信號(hào)的作用,輸入界面加入了其他成型的輸入設(shè)備中不常出現(xiàn)的“數(shù)字”、“當(dāng)前索引”、“匹配數(shù)”等提示信息。圖3是本設(shè)計(jì)T9拼音輸入下輸入“互助相幫”文字過(guò)程中的顯示界面。py查找流程是一個(gè)隨著外部信號(hào)的輸入而不斷變化的動(dòng)態(tài)過(guò)程,以輸入漢字“幫”為例,將T9輸入法的拼音輸入漢字的過(guò)程簡(jiǎn)略概括如下:首先掃描鍵盤(pán),結(jié)合光標(biāo)在TFT顯示屏的位置,通過(guò)右鍵結(jié)合確定鍵2輸入數(shù)字串“2264”,根據(jù)數(shù)字串到py_index型自定義數(shù)據(jù)結(jié)構(gòu)py_index3[]中搜索相應(yīng)的py和pymb,其中與“2264”對(duì)應(yīng)的py有兩種,即“bang”和“cang”,而其分別對(duì)應(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的順序排列顯示(參見(jiàn)圖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”),下一步需要選定漢字。掃描鍵盤(pán),若輸入信號(hào)是確定1鍵按下,則會(huì)將“bang”音的前8個(gè)漢字按順序排列(參見(jiàn)圖3),而“幫”在“bang”音漢字?jǐn)?shù)組{"邦幫梆榜膀綁棒磅……"}中排第2位,則利用右鍵將光標(biāo)移動(dòng)到2的位置,按下確定2鍵,即可利用賦值語(yǔ)句從存儲(chǔ)數(shù)組buf_store[]中取出漢字“幫”的漢字機(jī)內(nèi)碼碼0xB0和0xEF;然后利用“幫”的漢字機(jī)內(nèi)碼到FLASH中存儲(chǔ)的GBHZ_16[]中查找漢字“幫”的顯示點(diǎn)陣,將之顯示到顯示屏上,并存儲(chǔ)其漢字內(nèi)碼到u8 buf_message[]中,從而完成一次完整拼音輸入、漢字查找并顯示的過(guò)程。具體過(guò)程如圖4所示。英文輸入過(guò)程相對(duì)簡(jiǎn)單,映射關(guān)系也相對(duì)清晰,可以參考py到pymb一對(duì)多的映射和搜索過(guò)程,在此不再贅述。結(jié)語(yǔ)當(dāng)前嵌入式人機(jī)交互設(shè)備在各行業(yè)獲得廣泛應(yīng)用,輸入法是不可或缺的重要組成部分,而商用輸入法的成本較高[5]且具有一定的安全風(fēng)險(xiǎn),因此自行設(shè)計(jì)具備中英文切換功能的輸入法是很有必要的。鑒于此,根據(jù)T9輸入法的基本思想,本文介紹了一個(gè)比較簡(jiǎn)單但能滿(mǎn)足基本文字交互要求的輸入法實(shí)現(xiàn)方案。本設(shè)計(jì)方案中所有程序代碼采用C語(yǔ)言編寫(xiě),代碼具有較強(qiáng)的可移植性,并可根據(jù)需要添加詞組和聯(lián)想功能,目前本方案己經(jīng)應(yīng)用在數(shù)種型號(hào)的嵌入式人機(jī)交互設(shè)備中。(mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1DC電源插座圖紙
  2. 0.67 MB   |  3次下載  |  免費(fèi)
  3. 2AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
  4. 1.41MB   |  3次下載  |  免費(fèi)
  5. 3AN158 GD32VW553 Wi-Fi開(kāi)發(fā)指南
  6. 1.51MB   |  2次下載  |  免費(fèi)
  7. 4AN148 GD32VW553射頻硬件開(kāi)發(fā)指南
  8. 2.07MB   |  1次下載  |  免費(fèi)
  9. 5AN111-LTC3219用戶(hù)指南
  10. 84.32KB   |  次下載  |  免費(fèi)
  11. 6AN153-用于電源系統(tǒng)管理的Linduino
  12. 1.38MB   |  次下載  |  免費(fèi)
  13. 7AN-283: Σ-Δ型ADC和DAC[中文版]
  14. 677.86KB   |  次下載  |  免費(fèi)
  15. 8SM2018E 支持可控硅調(diào)光線性恒流控制芯片
  16. 402.24 KB  |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  450次下載  |  免費(fèi)
  3. 2免費(fèi)開(kāi)源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  138次下載  |  1 積分
  5. 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
  6. 0.10 MB   |  130次下載  |  免費(fèi)
  7. 4使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  8. 2.96 MB   |  44次下載  |  免費(fèi)
  9. 5美的電磁爐維修手冊(cè)大全
  10. 1.56 MB   |  24次下載  |  5 積分
  11. 6如何正確測(cè)試電源的紋波
  12. 0.36 MB   |  18次下載  |  免費(fèi)
  13. 7感應(yīng)筆電路圖
  14. 0.06 MB   |  10次下載  |  免費(fèi)
  15. 8萬(wàn)用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分