新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 硬件漢字庫設計原理與應用

硬件漢字庫設計原理與應用

作者: 時間:2012-07-04 來源:網絡 收藏
隨著技術的發(fā)展和應用,越來越多的開發(fā)人員希望在自己開發(fā)的儀器設備中使用液晶屏幕來顯示漢字,通常的漢字顯示方式是先根據所需要的漢字提取漢字點陣如16x16 點陣,將點陣文件存入ROM 形成新的漢字編碼,而在使用時則需要先根據新的漢字編碼組成語句再由MCU 根據新編碼提取相應的點陣進行漢字顯示,在這種顯示方式中如果使用的漢字數量較大或語句較多時,利用漢字的新編碼組成語句將是一件繁瑣而枯燥的工作。
如果有新的漢字加入那么漢字庫的維護也成問題,而我們日常生活的一些手持工具上如手機快譯通等等它們可以任意輸入漢字不僅靈活性大而且檢索速度快,這其中的主要原因就是在這些設備中固化了。而半導體技術的發(fā)展使得大容量FLASH ROM 的價格大大下降從而使用的儀器設備的成本大大下降,因此越來越多的技術開發(fā)人員開始關注起希望能在自己開發(fā)的設備中設計并使用硬件漢字庫,達到加快產品開發(fā)速度降低軟件成本的目的。

一硬件漢字庫相關知識

1 漢字機內碼國標碼和區(qū)位碼

在PC 機的文本文件中,漢字是以機內碼的形式存儲的。每個漢字占用兩個字節(jié)長度為了和ASCII碼區(qū)別,范圍從十六進制的0A1H 開始小于80H 的為ASCII 碼,將機內碼每個字節(jié)的最高位屏蔽掉,再以十六進制的形式顯示出來則為國標碼。將機內碼的每個字節(jié)各減去0A0H 再以十進制顯示出來,即為該漢字的區(qū)位碼。例如"國"字的機內碼國標碼和區(qū)位碼如表1 所示
表1 國字的機內碼國標碼和區(qū)位碼
類別數值高位字節(jié)低位字節(jié)
機內碼B9FAH 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0
國標碼397AH 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0
區(qū)位碼195AH 0 0 0 1 1 0 0 1 0 1 0 1 1 0 1 0
即區(qū)位碼機內碼0A0AOH 就國字而言其區(qū)位碼和機內碼的關系為
195AH 區(qū)位碼0B9FAH 機內碼0A0A0H
記住這個關系是我們理解下面有關程序的關鍵

2 國標漢字字符集與區(qū)位碼

根據對漢字使用頻率程度的研究可把漢字分成高頻字約100 個常用字約3000 個次常用
字約4000 字罕見字約8000 個和死字約45000 個即正常使用的漢字達15000 個。我國1981
年公布了通訊用漢字字符集基本集及其交換碼標準GB2312-80 方案,把高頻字常用字和次常用字集合成漢字基本字符集共6763 個,在該字符集中按漢字使用的頻度又將其分為一級漢字3755 個,按拼音排序二級漢字3008 個,按部首排序再加上西文字母數字圖形符號等700 個,國家標準的漢字字符集GB2312-80 在漢字操作系統(tǒng)中是以漢字庫的形式提供的漢字庫結構作了統(tǒng)一規(guī)定如圖1 所示

此主題相關圖片如下:
硬件漢字庫設計原理與應用
即將字庫分成94 個區(qū)每個區(qū)有94 個漢字,以位作區(qū)別每一個漢字在漢字庫中有確定的區(qū)和位。編號用兩個字節(jié)這就是所謂的區(qū)位碼。區(qū)位碼的第一個字節(jié)表示區(qū)號,第二個字節(jié)表示位號,因而只要知道了區(qū)位碼就可知道該漢字在字庫中的地址。每個漢字在字庫中是以點陣字模形式存儲的,如一般采用16x16 點陣形式,每個點用一個二進制位表示,存1 的點當顯示時可以在屏上顯示一個亮點,存0 的點則在屏上不顯示,這樣就把存某字的16 16 點陣信息直接用來在顯示器上按上述原則顯示,則將出現對應的漢字如一個國字的16 16 點陣字模如圖2 所示。當用存儲單元存儲該字模信息時將需32 個字節(jié)地址在圖2 的右邊寫出了該字模對應的字節(jié)值

此主題相關圖片如下:
按此在新窗口瀏覽圖片

3 模塊特性與字模數據
漢字顯示是國內應用圖形模塊的目的之一,目前對硬件漢字庫比較關心的技術人員大多是想將其應用到圖形點陣液晶顯示器中,但目前有關液晶顯示的資料大多數是介紹通過字模軟件取出的點陣數據是如何送往液晶顯示器的,因此作者在此作一下比較要在液晶屏幕上顯示出這個點陣圖形需要將相應的點陣數據送入液晶顯示驅動器,但對于不同的液晶顯示驅動器要顯示同一圖形所需要送入的數據排列順序可能不同,作者曾經使用過內置D61202U 液晶顯示驅動控制器和內置T6963C 液晶顯示驅動控制器的液晶顯示模塊,同樣是顯示16 16 點陣的國
字則需要的點陣數據如下
HD61202U
DB 000H,0FEH,002H,00AH,08AH,08AH,08AH,0FAH
DB 08AH,08AH,08AH,00AH,002H,0FEH,000H,000H
DB 000H,0FFH,040H,048H,048H,048H,048H,04FH
DB 048H,049H,04EH,048H,040H,0FFH,000H,000H
由于HD61202U 顯示存儲器的特性不能將計算機內的漢字庫提出直接使用,需要將其旋轉90 度后再寫入,也就是有些字模軟件如zimo22.exe 可到www.c51bbs.com上免費下載設置為豎向倒序取模后所得的數據其生成字庫的格式是前16 個字節(jié)為上半部16 8 點陣字模數據后16 個字節(jié)為下半部16x8 點陣字模數據,讀者如果與圖2 中的相應數據作比較可以看出如果僅僅從數據上是看不出兩者的聯系的,如果在這種液晶顯示器上要使用硬件漢字庫則讀出的點陣信息必須經過處理方可送出顯示增加了使用難度
T6963C
DB 000H,000H,07FH,0FCH,040H,004H,05FH,0F4H
DB 041H,004H,041H,004H,041H,004H,04FH,0E4H
DB 041H,044H,041H,024H,041H,024H,05FH,0F4H
DB 040H,004H,040H,004H,07FH,0FCH,040H,004H
這些數據也是通過字模軟件得出的讀者再與圖2 中的32 個數據相比較可以看出兩者在數值和排列順序上都是一致的,正是這種特性使得筆者選擇了內置T6963C 的液晶顯示模塊作為論述開發(fā)硬件漢字庫的例子

二漢字庫的制作

在本節(jié)中筆者將論述將16 16 點陣的宋體漢字庫燒錄到256KB 的存儲器中的具體方法,這也是讀者比較關心的問題。本例中使用了AT29C020 該產品是ATMEL 公司生產的高達256KB 的FLASH ROM ,讀者也可以使用其它容量不小于256KB 的產品,但在具體電路設計時應注意引腳定義和邏輯關系,并在燒錄時選擇相應的型號UCDOS 軟件有一個名字為HZK16 的文件,這就是16 16 的國標漢字點陣文件,在該文件中按漢字區(qū)位碼從小到大依次存有:國標區(qū)位碼中的所有漢字,每個漢字占用32 格字節(jié),每個區(qū)為94 個漢字,如果顯示其屬性可以看出其大小為262KB 。當寫入AT29C020A 時可以將多于256KB 的部分截去,實際上在國標漢字點陣字庫中二級漢字排到第87 區(qū),從第88 區(qū)開始就是空白,所以將多余部分截去不會影響實際使用。在實際操作中硬件漢字庫的制作和普通的程序存儲器的編程沒什么不同,注意將HZK16 文件調入時要使用二進制方式打開編程并校驗成功后,即可將存儲器取下備用,這樣一個硬件漢字庫就制作好了。針對不同的應用讀者也可以選用其它大容量甚至是串行數據存儲器從而可以擴展硬件漢字庫的使用范圍。在此也一并向大家推薦容量為512KB 甚至更大的存儲器除了可以存儲全部的國標漢字外還可以存儲8 16 的ASCII 碼點陣數據以及漢字語句編碼數據,使用起來更加方便。串行數據存儲器如AT45DB041B 等特點是占用口線少體積小和成本低如果對于速度要求不是很高的場合非常適宜

三硬件漢字庫使用電路

在本節(jié)中筆者使用PHILIPS 公司的產品 作為主控CPU ,使用內置T6963 控制器的240x128 點陣圖形液晶顯示器并結合硬件漢字庫的使用,將一部3 萬多字的小說嵌入其中,開機后就可以閱讀小說。 是PHILIPS 公司于2001 年發(fā)布的一款非常優(yōu)秀的單片機,該單片機是基于8 位80C51單片機的派生產品,它在完全保留80C51 指令系統(tǒng)和硬件結構的大框架外發(fā)生了多方面的加強擴展翻新和創(chuàng)新, 將原有的對外數據和程序存儲器的16 位尋址機制加以利用,把片上的RAM 擴展到1K 字節(jié),片上的FLASH EPROM 擴展到64K 字節(jié),由于一個漢字的內碼占用兩個字節(jié),所以1024 字節(jié)可以存儲512 個漢字所以64KB 的閃存可以存儲3 萬多漢字。
本系統(tǒng)使用了Microtips Technology Inc.公司生產的內置Toshiba 公司生產的T6963C 的液晶顯示器型號為MTG-F24128CMNHSCW 具有CCFL 背光相關接口信息如下

此主題相關圖片如下:
硬件漢字庫設計原理與應用


此主題相關圖片如下:
按此在新窗口瀏覽圖片
硬件設計說明
由于AT29C020 的容量為256KB 而80C51 系列微控制器只能管理64KB 的數據空間所以可以將
AT29C020 分成8 頁每頁32KB 占單片機系統(tǒng)數據空間的0000 7FFFH 剩余32KB 空間為單片機系統(tǒng)的其它存儲器和外設
A15 反相后作為液晶顯示器的片選LCD/CS P1.5 是控制液晶顯示器正顯和反顯的該液晶顯示器的
復位電平為低電平與P89C51RD2 正好相反


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉