<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 漢字的動態(tài)編碼與顯示方案

    時間:2024-09-20 10:43:47 理工畢業(yè)論文 我要投稿
    • 相關(guān)推薦

    漢字的動態(tài)編碼與顯示方案

    摘要:綜合幾種常用單片機(jī)漢字顯示方案,提出一種基于PC機(jī)預(yù)處理的漢字動態(tài)編碼和動態(tài)字庫的顯示方法,較好地解決了存儲空間、顯示速度、軟件開發(fā)維護(hù)幾方面的相互矛盾;具有平臺化的優(yōu)點,同時,給出針對MCS51優(yōu)化的匯編顯示例程。

    因為漢字本身的特點,顯示漢字始終是計算機(jī)在我國應(yīng)用普及的一個障礙。最初,為了能在PC機(jī)上顯示、處理漢字,國人發(fā)明了一種硬件設(shè)備"漢卡",后來各種各樣的采用純軟件技術(shù)的中文DOS逐漸成熟,其中、西文軟件的運(yùn)行速度和性能還是有明顯的差距。最終在軟件進(jìn)入支持UNICODE、真正實現(xiàn)國際化的WIN95以后,硬件跨入"奔騰"時代,才實現(xiàn)了漢字與西文的統(tǒng)一顯示,但是這一切是以硬件資源的飛速發(fā)展為前提的。以國際GB2312為例,一、二級漢字庫共收錄了6000多個漢字,每個字按16×16點陣計算,字模需要占用32字節(jié)的存儲空間,整個字庫的規(guī)模在200k字節(jié)以上,高點陣(24點陣以上)和矢量字庫以及Windows用的TrueType字體的字庫規(guī)模都是幾兆字節(jié)大小,這在早期的386時代是難以想象的。單片機(jī)因為使用靈活、結(jié)構(gòu)簡單、體積小、成本低而在工業(yè)和生活中得到廣泛應(yīng)用,也正是因此,它的硬件資源很有 限,尋址和計算機(jī)能力都遠(yuǎn)低于PC機(jī),顯示漢字更受限制。人們不滿足單片機(jī)系統(tǒng)采用LED數(shù)碼管的簡單顯示,根據(jù)單片機(jī)的特點,開發(fā)出了很多種漢字顯示方法。

    1 幾種常用單片機(jī)顯示漢字方法

    (1)采用標(biāo)準(zhǔn)字[1]

    這種方法仿器中文DOS的辦法,將一個標(biāo)準(zhǔn)的漢字庫裝入ROM存儲器,再根據(jù)漢字的機(jī)內(nèi)碼在字庫中尋址,找到對應(yīng)的字模,提取后送到顯示器顯示。因為采用了和PC機(jī)相同的編碼(機(jī)內(nèi)碼),軟件的開發(fā)和維護(hù)非常簡單,基本上與寫PC機(jī)軟件差不多。而對單片機(jī)系統(tǒng)自身的要求則相對高多了,16×16點陣的字庫需要256K字節(jié),但是一般8位單片機(jī)的尋址能力只有64K字節(jié),要進(jìn)行存儲器擴(kuò)充,除增加很大一部分硬件成本外,還因為要進(jìn)行存儲器分頁管理、地址切換,顯示速度明顯受影響,而且只能顯示一種點陣字體。

    (2)直接固化顯示字模[2]

    將要顯示的語句中全部漢字的字模數(shù)據(jù)依次提取出來,順序存放在存儲器中,當(dāng)顯示時,直接取出字模數(shù)據(jù)送至顯示器即可。這種方法占用空間少,程序?qū)崿F(xiàn)簡單,顯示速度快;但是字模數(shù)據(jù)的提取和存儲安排是一件委有繁瑣的事件,要想大量顯示漢字或進(jìn)行程序修改幾乎是不可能的,軟件的可維護(hù)性很差。

    (3)建立帶索引的小字庫[3]

    將全部要顯示的漢字統(tǒng)一建成一個小字庫,字庫分為2部分:索引素和字模表。索引表由若干定長記錄組成,記錄的內(nèi)容為:漢字機(jī)內(nèi)碼、地址碼、識別碼。其中地址碼是該漢字字模在字模表中的位置,識別碼標(biāo)志該漢字的點陣形式或字體等。字模表中按素引存放漢字字模。顯示漢字時先根據(jù)待顯漢字的機(jī)內(nèi)碼在索引表中尋找,找到對應(yīng)索引記錄后,讀出地址碼和識別碼,再根據(jù)此從字模表中讀出字模,送顯即可。這種方法可根據(jù)實際使用對字庫進(jìn)行裁剪,硬件開銷較小,但是要進(jìn)行復(fù)雜的查詢運(yùn)算,字多了平均尋找時間就會變長,效率降低。

    2 漢字動態(tài)編碼

    綜上所述,我們發(fā)現(xiàn):在方法1中,程序員工作量最少,但單片要機(jī)的軟、硬件開銷最大;方法2中,單片機(jī)的開銷較少,但是編寫和維護(hù)軟件極為困難;方法3,介于二者之間。顯然,存儲空間、顯示速度、軟件開發(fā)維護(hù)件間存在著矛盾。受各種PC機(jī)模擬軟件的啟發(fā),我們提出一種基于PC機(jī)預(yù)處理的漢字顯示方法--漢字動態(tài)編碼,在實際應(yīng)用中較好地解決了這一問題。其基本原理如下:建立一種新的編碼機(jī)制,這個漢字編碼是動態(tài)的;一個編碼不與某個漢字具體相聯(lián)系,而僅代表某個漢字在字庫中的位置(這個位置也是動態(tài)的);用該碼代替程序里字符串(C語言)或數(shù)據(jù)段(匯編語言)內(nèi)漢字的機(jī)內(nèi)碼,單處機(jī)顯示程序可根據(jù)這個新的編碼直接在專門建立的動態(tài)小字庫中找到字模,不用進(jìn)行復(fù)雜的尋址、查找等運(yùn)算,如圖1所示。

    實現(xiàn)漢字動態(tài)編碼的過程就是先進(jìn)行漢字識別,然后建立編碼字典、提取字模、建立動態(tài)字庫、改寫機(jī)內(nèi)碼。首先掃描一遍程序文件,識別其中的漢字,將它們按出現(xiàn)先后順序或機(jī)內(nèi)碼的大小排序,重復(fù)出現(xiàn)的剔除,建立了一個編碼字典;根據(jù)漢字在編碼字典的位置(序號),可以對漢字按區(qū)碼、位碼進(jìn)行編碼,也可以采用其它的方法編碼,總之序號與它的動態(tài)編碼存在一一對應(yīng)關(guān)系;根據(jù)字典中每個漢字的機(jī)內(nèi)碼依次從PC機(jī)的漢字點陣字庫中提取字模,順序存儲,建立一個小規(guī)模的動態(tài)字庫,這樣每個漢字的字模在字庫中的位置就與其在編碼字典中的序號、動態(tài)編碼一一對應(yīng)了。最后,再掃描一遍程序文件,按照編碼字典將每個漢字的機(jī)內(nèi)碼改寫為對應(yīng)的動態(tài)編碼。因為程序文件中的漢字隨時會增減,編碼隨之而變,字庫的大小也隨時在變。所以稱之為動態(tài)編碼和動態(tài)字庫。

    考慮一般應(yīng)用場合,1000個左右的漢字即可滿足要求,按照漢字動態(tài)編碼方法所需的字庫僅為32K字節(jié)大小,只需要1片27256即可,幾乎不用增加什么硬件。這樣,字庫的大小可由漢字的多少控制,程序的編寫和維護(hù)可以沿用中文系統(tǒng)下的習(xí)慣,僅需要編寫好的單片機(jī)程序用PC機(jī)進(jìn)行一次預(yù)處理,程序員從繁雜的漢字處理工作中解放出來,有效地降低了軟件和硬件開發(fā)成本。

    3 漢字動態(tài)編碼的具體實現(xiàn)

    實現(xiàn)漢字動態(tài)編碼的關(guān)鍵是建立編碼字典和改寫機(jī)內(nèi)碼。下面以是顯示1行漢字"天上有個太陽,水中有個月亮"為例,說明動態(tài)編碼的實現(xiàn)過程。

    (1)漢字識別

    漢字在PC機(jī)內(nèi)的存儲和處理是用機(jī)內(nèi)碼來實現(xiàn)的。每個漢字的機(jī)內(nèi)碼是唯一的,由2個字節(jié)組成,分區(qū)碼和位碼,為了和西文的ASCII碼有區(qū)別,漢字機(jī)內(nèi)碼的區(qū)碼和位碼的取值都大于0A0H。我們要處理的源程序文件都是文本文件,存儲的都是西文字符、控制符的ASCII碼和中文字符的機(jī)內(nèi)碼,當(dāng)掃描到文件中大于0A0H的字節(jié)內(nèi)容時,即可判斷該字節(jié)是漢字機(jī)內(nèi)碼的1個字節(jié),而且肯定是成對出現(xiàn),第1個字節(jié)是區(qū)別,第2個字節(jié)是位碼,都大于0A0H,否則出錯。

    在C和匯編程序中表示字符的方式有所不同,但最終字符在文件中的存儲格式是一樣的。顯示上面那行漢字,用C語言可以表示為:

    char OneSent[]="天上有個太陽,水中有個月亮";

    printfhz(OneSent);/*printfh

    漢字的動態(tài)編碼與顯示方案

    【漢字的動態(tài)編碼與顯示方案】相關(guān)文章:

    動態(tài)哈夫曼編碼的改進(jìn)03-18

    單片機(jī)系統(tǒng)中的漢字顯示03-18

    計算機(jī)畢業(yè)論文-動態(tài)哈夫曼編碼的改進(jìn)03-06

    Tunstall編碼與自適應(yīng)編碼算法03-07

    不依賴高點陣字庫實現(xiàn)屏幕漢字顯示03-03

    VGA顯示與TV顯示的區(qū)別及轉(zhuǎn)換03-19

    Video Object編碼技術(shù)01-07

    視音頻素材的編碼轉(zhuǎn)換03-19

    自適應(yīng)算術(shù)編碼的FPGA實現(xiàn)03-18

    主站蜘蛛池模板: 亚洲欧美日韩国产精品| 久久精品国产99国产精品| segui久久国产精品| 亚洲AV日韩精品久久久久久 | 国产精品乱码高清在线观看| 精品人妻无码专区中文字幕| 国产精品天干天干综合网| 日韩精品视频在线观看免费| 日本欧美韩国日本精品| 亚洲国产一成人久久精品| 精品视频一区二区三区| 欧美亚洲国产精品第一页| 久久亚洲日韩精品一区二区三区| 久久er国产精品免费观看8| 国产精品一二区| 国内精品久久久久久99蜜桃| 三级高清精品国产| 国产精品一区二区三区免费| 精品成人免费自拍视频| 久久精品国产网红主播| 日韩精品一区二区三区不卡| 国产精品九九久久免费视频 | 亚洲精品狼友在线播放| 免费看一级毛片在线观看精品视频 | 北条麻妃国产九九九精品视频| 国产精品亚洲成在人线| 亚洲AV成人精品网站在线播放| 青青青青久久精品国产h久久精品五福影院1421| 四虎国产精品免费久久久| 成人久久精品一区二区三区| 欧美精品欧美人与动人物牲交| 亚洲国产午夜中文字幕精品黄网站| 国产乱人伦偷精品视频免观看| 久久最新精品国产| 精品一区二区久久| 国产成人精品亚洲日本在线| 99精品国产在热久久| 2020国产精品永久在线| 国产精品日韩AV在线播放| 国产欧美日韩精品a在线观看| 色久综合网精品一区二区|