基于單片機(jī)的智能終端中漢字顯示的處理
字模裁減及填充終端字庫(kù)下載文件流程如圖4 所示:
首先,運(yùn)行在服務(wù)器上的處理程序遍歷數(shù)據(jù)庫(kù)中的菜譜表、桌位表等所有包含下載信息的、帶有漢字的表記錄。從中找到需要下載的漢字,根據(jù)這些漢字的內(nèi)碼,從系統(tǒng)字庫(kù)中得到漢字的字模,經(jīng)過(guò)字模轉(zhuǎn)化(在后面介紹),然后保存在字庫(kù)下載文件中。
為了保證下傳的漢字字模不會(huì)重復(fù),在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)“漢字表”來(lái)存儲(chǔ)每個(gè)經(jīng)過(guò)篩選的漢字的信息。表中有兩個(gè)字段,一個(gè)用來(lái)存儲(chǔ)漢字的內(nèi)碼,另一個(gè)用來(lái)存儲(chǔ)該漢字字模在字庫(kù)下載文件中的偏移地址(終端程序可以通過(guò)某個(gè)漢字在字庫(kù)下載文件中的偏移地址來(lái)唯一確定該漢字的字模存放位置)。每得到一個(gè)漢字的內(nèi)碼時(shí),先到漢字表中查詢(xún)表中是否已經(jīng)包含了該漢字,再?zèng)Q定是否進(jìn)行提取和下載處理。
然后,處理程序逐個(gè)遍歷菜譜表、桌位表等數(shù)據(jù)表項(xiàng)來(lái)生成菜譜下載文件、桌位下載文件等。這些下載文件中涉及到的漢字,以該漢字的字模在終端下載字庫(kù)文件中的偏移地址來(lái)標(biāo)識(shí)。這樣每個(gè)漢字可以用兩個(gè)字節(jié)唯一標(biāo)識(shí)。
最后,處理程序?qū)⒁陨线@些下載文件通過(guò)串口下傳給終端,終端將下載文件的內(nèi)容保存在數(shù)據(jù)存儲(chǔ)區(qū)中,并記錄存放字庫(kù)下載文件數(shù)據(jù)區(qū)的起始地址,記為A。當(dāng)需要顯示漢字時(shí),終端程序先得到該漢字在下載文件中的偏移地址,記為B,然后計(jì)算出該漢字字模的存放位置(A+B),從此位置開(kāi)始連續(xù)讀取32字節(jié),就得到了該漢字字模數(shù)據(jù),之后通過(guò)驅(qū)動(dòng)液晶屏將漢字顯示出來(lái)。
3.需要注意的關(guān)鍵技術(shù)
3.1 漢字字模的提取
先說(shuō)明一下在中文信息交換標(biāo)準(zhǔn)GB2312中涉及到的三個(gè)概念:區(qū)位碼、國(guó)標(biāo)碼、內(nèi)碼。
中文國(guó)標(biāo)字符集是一個(gè)94×94的矩陣,其中每一個(gè)漢字(包括數(shù)字、英文字母和標(biāo)點(diǎn)符號(hào))都是二維矩陣中的某個(gè)元素。這樣,每一個(gè)漢字都可以用一個(gè)二元組來(lái)表示(x,y)。其中,x是該字所在的行號(hào),y為列號(hào)。
評(píng)論