两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種漢字顯示方法

文檔序號:6397231閱讀:551來源:國知局
專利名稱:一種漢字顯示方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機漢字顯示方法,特別是在沒有字庫的單片機上顯示漢字的方法。
背景技術(shù)
目前,單片機的漢字顯示一般采用標(biāo)準(zhǔn)字庫法,即將字庫固入ROM中,將單片機的 硬件和軟件進(jìn)行特別擴展后以顯示漢字。眾所周知,即使是16X16點陣標(biāo)準(zhǔn)字庫,也需占 用200K以上單元內(nèi)存,而就目前主流51系列單片機而言,最大尋址范圍僅64K,即使程序區(qū) 與數(shù)據(jù)區(qū)合并起來也僅128K內(nèi)存,因此若不加特別的擴展設(shè)計,不要說檢字程序和用戶空 間,僅字庫就容納不下。這種方法雖然可以直接使用現(xiàn)成標(biāo)準(zhǔn)字庫,但卻需占用大量的硬件 和軟件資源,并增加很大一部分成本和設(shè)計難度。
發(fā)明的內(nèi)容 針對現(xiàn)有單片機在漢字顯示中的上述難題,申請人進(jìn)行了研究改進(jìn),提供另一種
占用空間小、通用性強的漢字顯示方法。 本發(fā)明的技術(shù)方案如下 —種漢字顯示方法,包括以下步驟 (1)在單片機非易失性存儲器中建立點陣信息庫、漢字原始碼庫及索引碼庫,其中 所述點陣信息庫包括用于儲存漢字的漢字點陣信息庫及用于儲存ASCII碼的ASCII碼點陣 信息庫; (2)獲取需要顯示的文本的原始碼; (3)對需要顯示的文本中的漢字進(jìn)行分析,將對應(yīng)的漢字點陣信息從矢量字庫中 逐一提取出來,按順序?qū)懭胨鰸h字點陣信息庫,相同的漢字點陣信息不重復(fù)寫入;
(4)將需要顯示的文本中的漢字的原始碼,按順序?qū)懭胨鰸h字原始碼庫,相同的 漢字原始碼不重復(fù)寫入; (5)將需要顯示的文本的原始碼重新編碼,寫入所述索引碼庫,其步驟包括
(5a)當(dāng)碰到需要顯示文本的原始碼中小于0x80的字符,則該字符表示ASCII碼, 占一個節(jié)字,將該ASCII碼的原始碼不做改變寫入索引碼庫; (5b)當(dāng)碰到需要顯示文本的原始碼中大于或者等于0x80的字符,則該字符及其 后的一個字符表示漢字,占兩個節(jié)字,將第一個碰到的漢字重新編碼為0x80 0x00寫入索 引碼庫; (5c)再次碰到表示漢字的原始碼時,若該漢字未出現(xiàn)過,則依次重新編碼為0x80 0x01 、0x80 0x02、0x80 0x03…,寫入索引碼庫;若該漢字已經(jīng)出現(xiàn)過,則按該已經(jīng)出現(xiàn)過的 同樣的編碼重新編碼,寫入索引碼庫; (6)按所述索引碼庫搜索點陣信息庫,將對應(yīng)的漢字點陣及ASCII點陣予以顯示, 其步驟包括 (6a)當(dāng)碰到ASCII碼字符時,搜索所述ASCII碼點陣信息庫;
3
(6b)當(dāng)碰到漢字字符時,計算該雙字節(jié)漢字字符與0x80 OxOO的差值,計為該漢 字點陣的索引值; (6c)按照該下式得到的該漢字點陣的起始地址搜索所述漢字點陣信息庫該索 引值X每個點陣的字節(jié)數(shù)+所述漢字點陣信息庫的起始地址=該漢字點陣的起始地址。
(7)PC要讀取需要顯示的文本時,讀所述索引碼庫,對索引碼庫中ASCII碼直接 讀取,對索引碼庫中漢字則按照下式得到的該漢字原始碼的起始地址搜索所述漢字原始碼 庫,換為相應(yīng)的原始碼讀取索引值X2+漢字原始碼庫的起始地址二該漢字原始碼的起始 地址。 所述ASCII碼點陣信息庫為標(biāo)準(zhǔn)庫。
本發(fā)明的有益技術(shù)效果是 本發(fā)明可以在沒有字庫的單片機上用較小的空間顯示漢字。其優(yōu)點如下(一)重 新構(gòu)建的點陣信息庫占用空間較??;(二)通過索引碼來搜索漢字點陣,計算簡單,顯示速 度更快;(三)可以同時顯示從0x80 0x00到OxFF OxFF共32768個漢字,足夠一般應(yīng)用使 用;(四)由于點陣信息是從PC機的矢量字庫中提取出來的,所以可以顯示宋體、隸體等各 種字體;(五)通用性強,可用于顯示各種大小的字體點陣;(六)也可以用于顯示日文、韓 文等其他語言文字。
具體實施例方式
下面對本發(fā)明的具體實施方式
做進(jìn)一步說明。 (1)在單片機的非易失性存儲器中建立點陣信息庫、漢字原始碼庫及索引碼庫。其 中點陣信息庫包括用于儲存漢字的漢字點陣信息庫及用于儲存ASCII碼的ASCII碼點陣信 息庫,所述ASCII碼點陣信息庫為標(biāo)準(zhǔn)庫。
(2)獲取需要顯示的文本的原始碼。 以單片機需要顯示的文本為字符串"你好你好!"為例。其中"你好你好"為漢字 字符,"!"為ASCII碼。由《信息交換用漢字編碼字符集》國家標(biāo)準(zhǔn)GB 2312可知,"你好你 好"的漢字原始碼為0xC4 0xE3 OxBA 0xC3 0xC4 0xE30xBA 0xC3,由美國信息交換標(biāo)準(zhǔn)編 碼ASICII可知,"!"的原始碼為0x21。因此,整個字符串"你好你好!"的原始碼為0xC4 0xE3 OxBA 0xC3 0xC4 0xE30xBA 0xC3 0x21。 (3)對需要顯示的文本中的漢字進(jìn)行分析,將對應(yīng)的漢字點陣信息從矢量字庫中 逐一提取出來,按順序?qū)懭胨鰸h字點陣信息庫,相同的漢字點陣信息不重復(fù)寫入。
PC機對漢字字符"你好你好"進(jìn)行分析,將"你"、"好"的漢字點陣信息從PC機提 供的矢量字庫中分別提取出來?,F(xiàn)以32X32的矢量字庫為例,即每個漢字要顯示為32X32 的點陣。由于32X32點陣的一個漢字字型共有32行;每行有32列,占32個二進(jìn)制位,而 1字節(jié)由8個二進(jìn)制位組成,則每行為4個字節(jié)。則32X32點陣的一個漢字字型占32X4 =128個字節(jié)。因此,將PC機從矢量字庫中提取的32X32漢字"你"的點陣信息保存在漢 字點陣信息庫的起始位置開始的第0 127個字節(jié)中,將PC機從矢量字庫中提取的32X 32 漢字"好"的點陣信息保存在漢字點陣信息庫的起始位置開始的第128 255個字節(jié)中。
(4)將需要顯示的文本中的漢字的原始碼,按順序?qū)懭胨鰸h字原始碼庫,相同的 漢字原始碼不重復(fù)寫入。
由于"你好你好"的漢字原始碼為0xC4 0xE3 OxBA 0xC3 0xC4 0xE3 0xBA0xC3。因 此,將第一個漢字"你"的原始碼"0xC4 0xE3"保存在漢字原始碼庫起始位置開始的第0 1個字節(jié)中,將第一個漢字"好"的原始碼"OxBA 0xC3"保存在漢字原始碼庫起始位置開始 的第2 3個字節(jié)中。其他相同的漢字不必再重復(fù)保存。 (5)將需要顯示的文本的原始碼重新編碼,寫入所述索引碼庫,其步驟包括(5a) 當(dāng)碰到需要顯示文本的原始碼中小于0x80的字符,則該字符表示ASCII碼,占一個節(jié)字,將 該ASCII碼的原始碼不做改變寫入索引碼庫;(5b)當(dāng)碰到需要顯示文本的原始碼中大于或 者等于0x80的字符,則該字符及其后的一個字符表示漢字,占兩個節(jié)字,將第一個碰到的 漢字重新編碼為0x80 0x00寫入索引碼庫;(5c)再次碰到表示漢字的原始碼時,若該漢字 未出現(xiàn)過,則依次重新編碼為0x80 0x01、0x80 0x02、0x80 0x03…,寫入索引碼庫;若該漢 字已經(jīng)出現(xiàn)過,則按該已經(jīng)出現(xiàn)過的同樣的編碼重新編碼,寫入索引碼庫;
對于前述實施例,對需要顯示的文本"你好你好!"的原始碼重新進(jìn)行編碼。將其 中的漢字"你"重新編碼為"0x80 0x00",漢字"好"重新編碼為"0x800x01 ",則字符串"你 好你好"的新編碼為0x80 0x00 0x80 0x01 0x80 0x00 0x800x01。由于"!"為ASCII碼, 其原始碼為0x21,不做改變緊跟在"你好你好"的新編碼之后。然后將上述"你好你好!"完 整的新編碼0x80 0x00 0x80 0x010x80 0x00 0x80 0x01 0x21寫入索引碼庫。
(6)按所述索引碼庫搜索點陣信息庫,將對應(yīng)的漢字點陣及ASCII點陣予以顯示, 其步驟包括(6a)當(dāng)碰到ASCII碼字符時,搜索所述ASCII碼點陣信息庫;(6b)當(dāng)碰到漢字 字符時,計算該雙字節(jié)漢字字符與0x80 0x00的差值,計為該漢字點陣的索引值;(6c)按照 該下式得到的該漢字點陣的起始地址搜索所述漢字點陣信息庫該索引值X每個點陣的 字節(jié)數(shù)+所述漢字點陣信息庫的起始地址=該漢字點陣的起始地址。 對于前述實施例,單片機需要顯示文本時,按索引碼庫的內(nèi)容搜索點陣信息庫。碰 到表示漢字的字符"0x80 0x00"時,計算0x80 0x00與0x80 0x00的差值,得到索引值為0, 計算索引值OX每個點陣的字節(jié)數(shù)128+漢字點陣信息庫的起始地址,得到該漢字點陣信息 的起始地址為漢字點陣信息庫的起始位置開始的第0個字節(jié),從而將漢字點陣信息庫的起 始位置開始的第0 127個字節(jié)保存的漢字"你"的點陣予以顯示。同樣的,碰到表示漢字 的字符"0x80 0x01"時,計算0x80 0x01與0x80 0x00的差值,得到索引值為1,計算索引 值IX每個點陣的字節(jié)數(shù)128+漢字點陣信息庫的起始地址,得到該漢字點陣信息的起始地 址為漢字點陣信息庫的起始位置開始的第128個字節(jié),從而將漢字點陣信息庫的起始位置 開始的第128 255個字節(jié)保存的漢字"好"的點陣予以顯示。碰到表示ASCII碼的字符 "0x21"時,直接搜索ASCII碼點陣信息庫,將保存的"!"的16X32點陣予以顯示。經(jīng)上述 步驟,從而將"你好你好!"文本完全顯示出來。由于是通過索引碼來搜索漢字點陣,與通過 原始碼來搜索漢字點陣相比,計算過程簡單很多,因此顯示速度更快。 (7)PC要讀取需要顯示的文本時,讀所述索引碼庫,對索引碼庫中ASCII碼直接 讀取,對索引碼庫中漢字則按照下式得到的該漢字原始碼的起始地址搜索所述漢字原始碼 庫,換為相應(yīng)的原始碼讀取索引值X2+漢字原始碼庫的起始地址二該漢字原始碼的起始 地址。 對于前述實施例,PC要讀取需要顯示的文本時,讀索引碼庫。碰到表示漢字的字符 "0x80 0x00"時,計算0x80 0x00與0x80 0x00的差值,得到索引值為0,計算索引值0 X 2+漢字原始碼庫的起始地址,得到該漢字原始碼的起始地址為漢字原始碼庫的起始位置開始 的第0個字節(jié),從而將"0x80 OxOO"轉(zhuǎn)換為漢字原始碼庫起始位置開始的第0 1個字節(jié)保 存的"你"的原始碼"0xC40xE3"。同樣的,碰到表示漢字的字符"0x80 0x01"時,計算0x80 0x01與0x800x00的差值,得到索引值為1,計算索引值1 X 2+漢字原始碼庫的起始地址,得 到該漢字原始碼的起始地址為漢字原始碼庫的起始位置開始的第2個字節(jié),從而將"0x80 Ox01"轉(zhuǎn)換為漢字原始碼庫起始位置開始的第2 3個字節(jié)保存的"好"的原始碼"OxBA 0xC3"。碰到表示ASCII碼的"0x21"時,則直接讀取。經(jīng)上述步驟,從而將索引碼庫中的內(nèi) 容完全轉(zhuǎn)換為PC機可以識別讀取的原始碼。 本發(fā)明可以同時顯示從0x80 0x00到OxFF OxFF,共32768個漢字,足夠一般應(yīng)用 使用。不僅適用于顯示32X32的漢字點陣,還可以適用于顯示16X16、64X64等各種大小 的漢字點陣,并且點陣字庫可以是宋體、隸體等各種字體的字庫,甚至是日文、韓文等其他 語言文字的點陣字庫,因此通用性極強。 以上所述的僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明不限于以上實施例??梢岳斫?,本 領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和構(gòu)思的前提下,可以做出其他改進(jìn)和變化。
權(quán)利要求
一種漢字顯示方法,其特征在于包括以下步驟(1)在單片機非易失性存儲器中建立點陣信息庫、漢字原始碼庫及索引碼庫,其中所述點陣信息庫包括用于儲存漢字的漢字點陣信息庫及用于儲存ASCII碼的ASCII碼點陣信息庫;(2)獲取需要顯示的文本的原始碼;(3)對需要顯示的文本中的漢字進(jìn)行分析,將對應(yīng)的漢字點陣信息從矢量字庫中逐一提取出來,按順序?qū)懭胨鰸h字點陣信息庫,相同的漢字點陣信息不重復(fù)寫入;(4)將需要顯示的文本中的漢字的原始碼,按順序?qū)懭胨鰸h字原始碼庫,相同的漢字原始碼不重復(fù)寫入;(5)將需要顯示的文本的原始碼重新編碼,寫入所述索引碼庫,其步驟包括(5a)當(dāng)碰到需要顯示文本的原始碼中小于0x80的字符,則該字符表示ASCII碼,占一個節(jié)字,將該ASCII碼的原始碼不做改變寫入索引碼庫;(5b)當(dāng)碰到需要顯示文本的原始碼中大于或者等于0x80的字符,則該字符及其后的一個字符表示漢字,占兩個節(jié)字,將第一個碰到的漢字重新編碼為0x800x00寫入索引碼庫;(5c)再次碰到表示漢字的原始碼時,若該漢字未出現(xiàn)過,則依次重新編碼為0x80 0x01、0x80 0x02、0x80 0x03…,寫入索引碼庫;若該漢字已經(jīng)出現(xiàn)過,則按該已經(jīng)出現(xiàn)過的同樣的編碼重新編碼,寫入索引碼庫;(6)按所述索引碼庫搜索點陣信息庫,將對應(yīng)的漢字點陣及ASCII點陣予以顯示,其步驟包括(6a)當(dāng)碰到ASCII碼字符時,搜索所述ASCII碼點陣信息庫;(6b)當(dāng)碰到漢字字符時,計算該雙字節(jié)漢字字符與0x80 0x00的差值,計為該漢字點陣的索引值;(6c)按照下式得到的該漢字點陣的起始地址搜索所述漢字點陣信息庫該索引值×每個點陣的字節(jié)數(shù)+所述漢字點陣信息庫的起始地址=該漢字點陣的起始地址。
2. 根據(jù)權(quán)利要求1所述漢字顯示方法,其特征在于,還包括以下步驟(7) PC要讀取需要顯示的文本時,讀所述索引碼庫,對索引碼庫中ASCII碼直接讀取, 對索引碼庫中漢字則按照下式得到的該漢字原始碼的起始地址搜索所述漢字原始碼庫,換 為相應(yīng)的原始碼讀取索引值X2+漢字原始碼庫的起始地址二該漢字原始碼的起始地址。
3. 根據(jù)權(quán)利要求1所述漢字顯示方法,其特征在于,所述ASCII碼點陣信息庫為標(biāo)準(zhǔn)庫。
全文摘要
一種漢字顯示方法,在單片機非易失性存儲器中建立點陣信息庫、漢字原始碼庫及索引碼庫,獲取需要顯示的文本的原始碼,對需要顯示的文本中的漢字進(jìn)行分析,將對應(yīng)的漢字點陣信息從矢量字庫中提取出來,按順序?qū)懭霛h字點陣信息庫,將需要顯示的文本中的漢字的原始碼,按順序?qū)懭霛h字原始碼庫,將需要顯示的文本的原始碼重新編碼,寫入索引碼庫,按索引碼庫搜索點陣信息庫,將對應(yīng)的漢字點陣及ASCII點陣予以顯示。本發(fā)明可以在沒有字庫的單片機上用較小的空間顯示漢字,可以顯示宋體、隸體等各種字體,以及顯示各種大小的字體點陣,也可以用于顯示日文、韓文等其他語言文字。通過索引碼搜索漢字點陣,計算簡單,顯示速度快。
文檔編號G06F17/30GK101739936SQ20091026307
公開日2010年6月16日 申請日期2009年12月16日 優(yōu)先權(quán)日2009年12月16日
發(fā)明者沈斌, 陳志明 申請人:臺安科技(無錫)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
根河市| 博客| 安乡县| 清河县| 安远县| 剑河县| 门源| 阜康市| 北安市| 师宗县| 菏泽市| 桂阳县| 嘉黎县| 临澧县| 辰溪县| 平和县| 姚安县| 交口县| 昌黎县| 安国市| 吴江市| 华蓥市| 兴仁县| 邯郸县| 深水埗区| 寻甸| 西宁市| 井研县| 隆尧县| 长岛县| 上饶县| 于都县| 东至县| 葫芦岛市| 鞍山市| 赫章县| 龙里县| 大石桥市| 武定县| 友谊县| 永清县|