在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內(nèi)不再提示

基于μC/OS-II與MCU實(shí)現(xiàn)中文輸入法的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:中國(guó)電子網(wǎng) ? 作者:佚名 ? 2020-03-03 07:59 ? 次閱讀

引言

目前,以LCD和數(shù)字鍵盤實(shí)現(xiàn)的人機(jī)交互式界面在智能終端中廣泛采用。在不同的應(yīng)用場(chǎng)合,對(duì)人機(jī)界面的要求也不同,一些情況下只要求簡(jiǎn)單參數(shù)的顯示和選擇,而在一些信息終端中,還要求文字的輸入。

在使用高性能CPU和標(biāo)準(zhǔn)顯示設(shè)備的情況下,實(shí)現(xiàn)友好的人機(jī)界面可采用商用嵌入式系統(tǒng)( 如Linux或WinCE)所支持的GUI程序。但很多情況下,智能終端使用MCU,且其顯示設(shè)備是非標(biāo)準(zhǔn)接口的小型LCD。此時(shí),必須找到占用較少資源的低成本實(shí)現(xiàn)方法。

智能終端項(xiàng)目就是一個(gè)比較典型的基于MCU的人機(jī)界面應(yīng)用,使用128×64點(diǎn)陣式LCD模塊,要求可顯示Unicode編碼的一、二級(jí)常用漢字庫(kù)并可進(jìn)行中文輸入。此應(yīng)用中輸入法相關(guān)的代碼和數(shù)據(jù)占用約20kB。在應(yīng)用開發(fā)中,我們使用了實(shí)時(shí)操作系統(tǒng)μC/OS-II,相關(guān)內(nèi)容可參考有關(guān)文獻(xiàn)。

簡(jiǎn)單的中文拼音輸入法

漢字輸入法的實(shí)質(zhì)是建立一種按鍵組合到漢字編碼的映射關(guān)系,因此,使用數(shù)字鍵盤的嵌入式系統(tǒng)的輸入法與使用標(biāo)準(zhǔn)鍵盤的PC機(jī)的輸入法沒有本質(zhì)的不同,其區(qū)別主要在于嵌入式應(yīng)用中處理器、存儲(chǔ)器等資源比較有限。如對(duì)應(yīng)漢字“你”,拼音輸入法下PC鍵盤按鍵組合為“ni”,而在一般數(shù)字鍵盤下,其按鍵組合則為“64”。

在多數(shù)手持式設(shè)備(如智能電話)中,以0~9數(shù)字鍵與幾個(gè)簡(jiǎn)單的控制鍵實(shí)現(xiàn)漢字輸入,比較著名的是在手機(jī)中廣泛采用的T9 和iTap 輸入法。這里我們介紹一種簡(jiǎn)單的拼音輸入法的實(shí)現(xiàn)方法。

一般終端鍵盤包括12個(gè)按鍵,分別是0~9數(shù)字鍵和“*”、“#”兩個(gè)特殊鍵。按通用規(guī)則,數(shù)字1對(duì)應(yīng)空格,其功能基本等同于PC機(jī)中的空格鍵,用于輸入空格或作為當(dāng)前漢字的確認(rèn)鍵;2~9數(shù)字鍵分別對(duì)應(yīng)下述漢語(yǔ)拼音字母:

2:a b c 3:d e f 4:g h i

5:j k l 6:m n o 7:p q r s

8:t u v 9:w x y z

而“0”、“*”、“#”鍵則作為輸入法中的控制鍵。我們將“#”作為“選擇鍵”,用于選取同一數(shù)字鍵組合下的不同拼音組合。

輸入法中使用了兩個(gè)重要數(shù)據(jù)結(jié)構(gòu),分別是PY_NODE和PY_SUBNODE。每個(gè)PY_NODE對(duì)應(yīng)一個(gè)數(shù)字鍵組合,PY_SUBNODE則對(duì)應(yīng)一組拼音組合。由于一個(gè)數(shù)字組合可對(duì)應(yīng)多個(gè)拼音組合(如“226”對(duì)應(yīng)“ban”、“bao”、“can ”、“cao”),因此這兩個(gè)結(jié)構(gòu)實(shí)現(xiàn)的是一個(gè)兩級(jí)的對(duì)應(yīng)表。

PY_NODE按樹組織,而PY_SUBNODE按雙向鏈表組織。

基于μC/OS-II與MCU實(shí)現(xiàn)中文輸入法的設(shè)計(jì)

以下是兩個(gè)結(jié)構(gòu)的定義:

基于μC/OS-II與MCU實(shí)現(xiàn)中文輸入法的設(shè)計(jì)

設(shè)計(jì)中我們所參照的漢語(yǔ)拼音表中共有412種組合,這樣系統(tǒng)中必須有412個(gè)PY_SUBNODE與其一一對(duì)應(yīng);系統(tǒng)中共建立了250個(gè)PY_NODE。建立此部分?jǐn)?shù)據(jù)的工作比較繁瑣,分以下5個(gè)步驟進(jìn)行:

1、 漢字按拼音進(jìn)行分組,按常用程度排序,并將漢字轉(zhuǎn)化為Unicode碼或國(guó)標(biāo)碼,碼型視系統(tǒng)要求而定;

2、 將有效拼音轉(zhuǎn)換為數(shù)字鍵盤值組合,如拼音“cui”轉(zhuǎn)為數(shù)字值“284”,這些值對(duì)應(yīng)了部分PY_NODE;

3、 增加中間PY_NODE,用于表示本身無效但后續(xù)輸入有效的拼音,如“b”、“c”、“don”、“dua”等節(jié)點(diǎn);

4、 將數(shù)字鍵組合相同的PY_SUBNODE編成鏈表,由某一PY_NODE中的ptrpy指針指向表頭;

5、 按數(shù)字鍵組合的關(guān)系,將PY_NODE組成樹。

圖1中所示組織關(guān)系并不復(fù)雜,但其工作量不小,一般情況下可編寫轉(zhuǎn)換程序自動(dòng)建立。圖2為拼音輸入法數(shù)據(jù)結(jié)構(gòu)的一個(gè)片斷。

在改變當(dāng)前PY_NODE時(shí),一般應(yīng)伴有一些顯示操作,因應(yīng)用不同各有差異,此處不做過多說明。

在當(dāng)前節(jié)點(diǎn)下,可以用某一指定控制鍵(如“#”鍵)來選擇此PY_NODE下屬的PY_SUBNODE以縮小漢字的選取范圍。

增加功能

上述拼音輸入法比較簡(jiǎn)單,且完成了輸入法需要的基本功能。對(duì)于某些應(yīng)用場(chǎng)合,對(duì)輸入法還有更多的要求,可在上述方法的基礎(chǔ)上進(jìn)行改進(jìn)實(shí)現(xiàn)。一些常見的要求和改進(jìn)方法列舉如下:

① 增加常用字功能

在上述輸入法中,增加常用漢字。只考慮國(guó)標(biāo)碼中的約7000常用漢字情況下,輸入法所占用的存儲(chǔ)空間增加14kB。

② 增加聯(lián)想功能

為使輸入更為友好,很多輸入法設(shè)有聯(lián)想功能,即在輸入一個(gè)漢字后,此漢字常用的后續(xù)漢字自動(dòng)成為候選項(xiàng)由用戶選擇。

③ 筆劃輸入法

筆劃輸入法較之拼音輸入法的優(yōu)勢(shì)在于重碼少,輸入不常用漢字時(shí)也不必多次翻頁(yè)查找。

以五筆劃輸入法為例,通過五個(gè)按鍵即可輸入漢字。該輸入法將漢字筆劃分為5種筆劃,即:“一”、“丨”、“丿”、“丶”和“-”五種筆劃,分別對(duì)應(yīng)數(shù)字鍵“7”、“8”、“9”、“*”、“0”,如“你”字的組合為“丿”、“丨”、“丿”、“-”、“丨”、“丿”、“丶”。

筆劃輸入法與拼音輸入法的區(qū)別在于人的感覺而非機(jī)器的操作,本質(zhì)上只是按鍵組合與漢字碼表對(duì)應(yīng)關(guān)系有所不同,如“你”在拼音輸入法下對(duì)應(yīng)“64”,而在筆劃輸入法下則對(duì)應(yīng)“989089*”。

④ 關(guān)于特殊符號(hào)、英文和數(shù)字

對(duì)于一些常用的特殊符號(hào)、英文和數(shù)字的輸入,較常用的做法是將以單獨(dú)的輸入法實(shí)現(xiàn)。

軟、硬件設(shè)計(jì)

輸入法的性能優(yōu)劣,更多的不是體現(xiàn)在算法,而是是否符合實(shí)際需求。因此它的優(yōu)化工作是對(duì)前述PY_NODE和PY_SUBNODE組織的優(yōu)化,如漢字次序的安排、聯(lián)想功能中后序字的組織、以及操作界面的設(shè)計(jì)是否適合人們的使用習(xí)慣。因算法本身很簡(jiǎn)單,所以用C語(yǔ)言可實(shí)現(xiàn)較高的代碼效率,以及較好的可移植性。

對(duì)于很多8位MCU,地址空間不大于64kB。這樣小的空間對(duì)于漢字界面中的漢字庫(kù)和輸入法中的大量數(shù)據(jù)結(jié)構(gòu)是遠(yuǎn)遠(yuǎn)不夠的(如一、二級(jí)常用字的16×16點(diǎn)陣漢字庫(kù)至少需要約220kB),因此常使用地址分頁(yè)方式實(shí)現(xiàn)地址擴(kuò)展。在MCU外部設(shè)一鎖存器作為“頁(yè)”寄存器,每頁(yè)大小根據(jù)MCU特性和實(shí)際需求確定,如MCS51系列最大可為64kB一頁(yè)。由于頁(yè)寄存器的操作為獨(dú)占型的,因此在中斷內(nèi)不能進(jìn)行操作;而在基于RTOS的多任務(wù)環(huán)境下,應(yīng)避免多個(gè)任務(wù)同時(shí)使用頁(yè)寄存器。

結(jié)語(yǔ)

由于8位、16位MCU的應(yīng)用場(chǎng)合多是低成本的設(shè)備,當(dāng)商用輸入法的成本無法接受或無法得到時(shí),自行編寫輸入法應(yīng)是可行的。當(dāng)然,本文所討論的只是實(shí)現(xiàn)輸入法的基本方法,雖然方法可行,但所編寫的輸入法代碼應(yīng)經(jīng)過較長(zhǎng)時(shí)間的測(cè)試才可以作為產(chǎn)品的正式軟件發(fā)布。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人機(jī)交互
    +關(guān)注

    關(guān)注

    12

    文章

    1217

    瀏覽量

    55569
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17359

    瀏覽量

    352829
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6900

    瀏覽量

    123814
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【AWTK使用經(jīng)驗(yàn)】如何添加中文輸入法

    目前需要在AWTK程序中用到中文輸入法,并且要自定義輸入法的聯(lián)想詞,此時(shí)需要用到AWStudio添加軟鍵盤和輸入法。下面將介紹如何使用AWStudio在項(xiàng)目中添加
    的頭像 發(fā)表于 06-20 08:25 ?1137次閱讀
    【AWTK使用經(jīng)驗(yàn)】如何添加<b class='flag-5'>中文輸入法</b>

    中文輸入法在B超系統(tǒng)中的應(yīng)用

    中文輸入法在B超系統(tǒng)中的應(yīng)用本文對(duì)中文輸入法在B超系統(tǒng)中的實(shí)現(xiàn)進(jìn)行了介紹。 在計(jì)算機(jī)迅速發(fā)展和普及的今天,用計(jì)算機(jī)對(duì)漢字進(jìn)行輸入、編輯和處理已經(jīng)非常普遍了。在醫(yī)療電子產(chǎn)品中,越來越多的
    發(fā)表于 11-30 10:15

    求wince中文輸入法

    各位大神,求一個(gè)wince的免費(fèi)中文輸入法,能分享一下嗎
    發(fā)表于 06-24 08:50

    如何實(shí)現(xiàn)ARM-LINUX嵌入式設(shè)備上的中文輸入法

    如何實(shí)現(xiàn)ARM-LINUX嵌入式設(shè)備上的中文輸入法
    發(fā)表于 12-23 06:15

    OKMX6UL-C開發(fā)板自帶linux系統(tǒng)怎么安裝中文輸入法

    請(qǐng)問一下,OKMX6UL-C開發(fā)板自帶linux系統(tǒng),怎么安裝中文輸入法
    發(fā)表于 01-11 06:37

    如何去實(shí)現(xiàn)RK3399 ARM開發(fā)板添加中文輸入法的功能呢

    如何去實(shí)現(xiàn)RK3399 ARM開發(fā)板添加中文輸入法的功能呢?
    發(fā)表于 03-07 06:53

    KICAD6與中文輸入法沖突

    目前在多臺(tái)電腦試過,windows10開中文輸入法,即使是英文輸入狀態(tài),操作KICAD6會(huì)卡死,現(xiàn)象就是鼠標(biāo)沒反應(yīng)了,啥也做不了,只能結(jié)束進(jìn)程。多臺(tái)電腦驗(yàn)證過了。windows11開中文輸入法,KICAD6不崩潰,兩臺(tái)電腦驗(yàn)證過
    發(fā)表于 04-30 11:55

    【飛凌RK3568開發(fā)板試用體驗(yàn)】添加中文輸入法

    由于英文版的ubuntu20沒有安裝拼音、五筆輸入法,經(jīng)過查詢資料,把中文輸入法解決了,這里記錄一下,以便后來查詢:1、先把fcitx徹底卸載:sudo apt remove fcitxsudo
    發(fā)表于 11-29 20:57

    嵌入式中文輸入法設(shè)計(jì)

    本文比較了嵌入式系統(tǒng)中拼音輸入法和筆畫輸入法的優(yōu)缺點(diǎn),介紹了嵌入式系統(tǒng)中的中文輸入法的基本設(shè)計(jì)思想。本文重點(diǎn)介紹拼音輸入法的設(shè)計(jì)思想,并針對(duì)傳統(tǒng)拼音
    發(fā)表于 06-19 08:29 ?41次下載

    μC/OS-II在PC機(jī)上移植的設(shè)計(jì)與實(shí)現(xiàn)

    本文介紹了μC/OS-II移植到PC機(jī)上的過程,使μC/OS-II應(yīng)用系統(tǒng)程序在PC機(jī)上脫離DOS或Windows環(huán)境運(yùn)行。著重介紹了Bootloader引導(dǎo)程序和EXE程序啟動(dòng)代碼的
    發(fā)表于 09-02 08:51 ?14次下載

    手機(jī)中文輸入法

    手機(jī)中文輸入法              中文輸入法
    發(fā)表于 12-19 13:58 ?547次閱讀

    掌上電腦中文輸入法有哪些?

    掌上電腦中文輸入法有哪些?             掌上電腦有多種文
    發(fā)表于 12-21 17:36 ?1740次閱讀

    電腦辭典中文輸入法及其他功能

    電腦辭典中文輸入法及其他功能  中文輸入法     
    發(fā)表于 12-22 11:45 ?870次閱讀

    中文輸入法在B超系統(tǒng)中的實(shí)現(xiàn)

    本文對(duì)中文輸入法在B超系統(tǒng)中的實(shí)現(xiàn)進(jìn)行了介紹。 字庫(kù)設(shè)計(jì) 通常的漢字顯示方式是:先用字模軟件提取所需要的漢字點(diǎn)陣,取得的數(shù)據(jù)可放入ASM匯編文件中,接著
    發(fā)表于 09-16 11:12 ?1070次閱讀
    <b class='flag-5'>中文輸入法</b>在B超系統(tǒng)中的<b class='flag-5'>實(shí)現(xiàn)</b>

    基于Qt/E的中文輸入法的設(shè)計(jì)

    隨著嵌人式系統(tǒng)在信息家電、移動(dòng)通信、手持設(shè)備以及工業(yè)控制等眾多領(lǐng)域的廣泛應(yīng)用,國(guó)內(nèi)用戶對(duì)支持中文輸入法的輕量級(jí)GUI的需求日益迫切。
    的頭像 發(fā)表于 12-06 07:44 ?4750次閱讀
    基于Qt/E的<b class='flag-5'>中文輸入法</b>的設(shè)計(jì)
    主站蜘蛛池模板: 亚洲一区欧美二区 | 看片午夜| 曰韩一级 | 最新欧美精品一区二区三区 | 一级做a爱片特黄在线观看免费看 | 午夜久久免影院欧洲 | 最近2018年中文字幕大全一 | 国产做a爰片久久毛片a | 国产精品免费看久久久香蕉 | 天天做天天爱夜夜想毛片 | 中国色老头 | 天天摸天天做天天爽在线 | 色拍拍综合网 | 狠狠操夜夜爱 | 13日本xxxxxxxxx18 1515hh四虎免费观38com | 午夜福利毛片 | 欧美日韩亚洲一区 | 手机看片国产精品 | 午夜在线观看免费视频 | 同性同男小说肉黄 | 夜夜福利 | 亚欧成人中文字幕一区 | 国产精品怡红院永久免费 | 性色欧美 | 在线视频黄色 | 色天使美国| 天天爱天天做天天爽天天躁 | 伊人久久大香线蕉综合爱婷婷 | 欧美一级片手机在线观看 | 亚洲欧美国产高清va在线播放 | 日本特黄色大片 | freesex性欧美重口 | 在线免费观看色片 | 国内自拍网红在综合图区 | 国产农村妇女毛片精品久久久 | 中文字幕第一区 | 毛片毛片| 69精品久久久久 | 曰韩高清一级毛片 | 亚洲一区二区三区中文字幕5566 | 广东毛片 |