非完整漢字庫的建立與顯示_第1頁
非完整漢字庫的建立與顯示_第2頁
非完整漢字庫的建立與顯示_第3頁
非完整漢字庫的建立與顯示_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

非完整漢字庫的建立與顯示

非完整漢字庫的研究的必要性隨著嵌入式技術(shù)的快速發(fā)展,引擎界面變得越來越重要。實際的LCD應(yīng)用中要顯示的漢字一般很有限并不需要完整的漢字庫,再加上完整字庫在程序中要占用大量空間,因而非完整漢字庫的研究就有了其自身的現(xiàn)實必要性。本文以AT91SAM7S256處理器的LCD顯示模塊為例,介紹了非完整漢字庫的建立方法及其具體實現(xiàn)。1海水淡化后的熱壓tn可以作為螺旋形色深液晶顯示器LCD(LiquidCrystalDisplay)主要用于文本、圖形及圖像信息的顯示。液晶顯示屏具有輕薄、體積小、耗電量低、無輻射、平面直角顯示以及影像穩(wěn)定不閃爍等特點。液晶是一種介于固態(tài)和液態(tài)之間的有機化合物。當(dāng)被加熱時,它會呈現(xiàn)透明的液態(tài),而冷卻的時候會結(jié)晶成混亂的固態(tài)。用于液晶顯示器的是Nematic液晶,當(dāng)向液晶通電時,液晶體分子便排列得井然有序,可以使光線容易通過;而不通電時,液晶分子便排列混亂,阻止光線通過。從整體來看,TN(扭曲向列型)單色液晶顯示器液晶分子的排列就像螺旋形的扭轉(zhuǎn)排列。光線從上向下照射時,通常只有一個角度的光線能夠穿透下來,通過上濾光片導(dǎo)入上部夾層的溝槽中,再通過液晶分子扭轉(zhuǎn)排列的通路從下濾光片穿出。一旦通過電極給這些液晶分子加電之后,液晶分子變成豎立的狀態(tài),這樣光線就無法通過,結(jié)果在顯示屏上出現(xiàn)黑色。這樣會形成透光時(即不加電時)為白、不透光時(加電時)為黑,字符就可以顯示在屏幕上了。2編碼知識2.1字編碼的編碼漢字系統(tǒng)對每個漢字預(yù)先規(guī)定輸入計算機中的代碼,即漢字的外部碼。計算機為了識別漢字,要把漢字的外部碼轉(zhuǎn)換成內(nèi)部碼進行存儲和處理。輸出時,還將漢字的內(nèi)部碼轉(zhuǎn)換成漢字的字形碼。主要的漢字編碼有以下幾種:1)國標(biāo)碼:計算機與其他系統(tǒng)或設(shè)備之間進行漢字代碼信息交換的標(biāo)準(zhǔn)漢字代碼。它用兩個字節(jié)代碼來表示一個漢字。行、列各94(0-93),用先行后列的兩個7位二進制數(shù)表示。2)區(qū)位碼:每個漢字(圖形符號)用兩個字節(jié)表示,每個字節(jié)只用低7位,即最高位為0的二進制碼。漢字編碼使用的高字節(jié)稱為區(qū)碼,低字節(jié)稱為位碼。區(qū)位碼共94個區(qū),每個區(qū)有94個位,組成一個94*94的矩陣。3)機內(nèi)碼:中文或西文信息在計算機系統(tǒng)中的代碼表示稱為機內(nèi)碼。是計算機對漢字進行存儲、運算的實際代碼。一般用連續(xù)兩個字節(jié)表示漢字的內(nèi)碼且每個字節(jié)最高位為1。2.2碼內(nèi)碼+機內(nèi)碼(區(qū)位碼的十六進制表示)+A0A0H=機內(nèi)碼。國標(biāo)碼+8080H=(區(qū)位碼的十六進制表示)+A0A0H。國標(biāo)碼=(區(qū)位碼的十六進制表示)+2020H。3在完整的漢語庫中,漢字顯示和同義詞混合顯示3.1漢字的區(qū)位碼及字模位置漢字的輸出是將漢字的筆劃離散化,用點陣來表示。點陣的中每個點位只有兩種狀態(tài):有筆畫(1)、無筆畫(0)。描述漢字點陣信息的二進制代碼集稱為漢字的字模。所有漢字和符號的點陣信息就組成了漢字庫。點陣字庫文件已經(jīng)給使用者提供好了,關(guān)鍵在于如何取得漢字的圖形,即漢字的點陣字模。首先看一下如何取得漢字的區(qū)位碼。計算機在處理漢字和ASCII字符時,使每個ASCII字符占用一個字節(jié),而一個漢字占用兩個字節(jié),其值稱為漢字的內(nèi)碼。其中第一個字節(jié)的值為區(qū)號加上32(20H),第二個字節(jié)的值為位號加上32(20H)。為了與ASCII字符區(qū)別開,表示漢字的兩個字節(jié)的最高位都是1,也就是兩個字節(jié)的值都又加上了128(80H)。這樣,通過漢字的內(nèi)碼,就可以計算出漢字的區(qū)位碼。具體算式如下:其中qh、wh為漢字的區(qū)號和位號,c1、c2為漢字的第一字節(jié)和第二字節(jié)。根據(jù)區(qū)號和位號可以得到漢字字模在文件中的位置:location=(94*(qh-1)+(wh-1))*一個點陣字模的字節(jié)數(shù)。字模的表示順序為:先從左到右,再從上到下,依此類推,畫滿16×16個點。這樣,一個16×16點陣的漢字總共需要16*16/8=32個字節(jié)表示。因此,當(dāng)顯示16×16點陣的漢字時,只要根據(jù)區(qū)碼和位碼計算出該漢字點陣在ROM中存放的起始地址,然后從此地址連續(xù)地取出32個字節(jié)的漢字點陣,并寫入LCD模塊對應(yīng)的地址中,就可以顯示出該漢字。3.2文字符編碼的編碼在應(yīng)用中,常需要漢字和英文字符混合顯示,在軟件處理時需要判斷顯示的內(nèi)容是漢字的編碼還是英文字符的編碼,如果是漢字編碼則根據(jù)其機內(nèi)碼計算區(qū)位碼,并根據(jù)區(qū)位碼計算出該漢字在字模中的起始地址。顯示16×16點陣漢字的混合顯示軟件流程圖如圖1所示:按照以上的顯示原理可以編寫出在完整漢字庫下的漢字英文混合顯示程序,具體程序代碼在很多資料中都有,這里就不再贅述。4構(gòu)建完整的漢字庫,并用漢字和英文混合顯示4.1重復(fù)的漢字生成在很多的人機界面中,雖然顯示的漢字?jǐn)?shù)量較多,但實際無重復(fù)的漢字?jǐn)?shù)卻較少,而且不同的應(yīng)用環(huán)境用到的漢字也有其自身的特殊性。如果是提供少量的互不重復(fù)的漢字,較好的做法如下:利用DMTool字模轉(zhuǎn)化工具生成所需要的漢字模,然后利用123.exe軟件生成相應(yīng)的機內(nèi)碼。接下來就可將以上所得到的漢字的機內(nèi)碼和其字模合在一起組成數(shù)組,如此反復(fù)就可以將所需要的所有漢字都形成數(shù)組,最后將這些漢字組成二維數(shù)組。如下所示:在定義上面的二維數(shù)組時不規(guī)定數(shù)組的大小,這樣就可以方便地添加自己需要的漢字。要顯示特定漢字的時候,只需要從數(shù)組中查找內(nèi)碼與要求漢字內(nèi)碼相同的即可獲得字模。4.2硬件設(shè)計下面結(jié)合AT91SAM7S256處理器介紹LCD模塊的軟硬件設(shè)計過程。4.2.1m-asicm-第三方接口LCD模塊采用PM04OX1,LED背光。320*96點陣,256色顯示,亮度控制:6位。背光LED:6支(串聯(lián)),亮度控制2位,背光電流2.5mA~20mA。CN7,CN8:連接LCD面板PM042OX1;CN6LCD背光電源;U6:TimingController,PVI-2003A;U8:VS_ASICMCU-LCD接口轉(zhuǎn)換邏輯。以下介紹MCU-VS_ASIC-TimingController硬件接口。連接LCD面板的接口信號包括:LCD-CLK,R[5:0],G[5:0],B[5:0],VSHS和VSVS。其中VSHS,VSVS來源于MCU的PIO;LCDCLK來源于MCU-SPI的NPCS3;R[5:0]G[5:0],B[5:0]是U8根據(jù)MCU-SPI的VSCK(SPI-SCK)、VSDO(SPI-MOSI)、LCDCLK(SPI-NPCS3)和VSVS產(chǎn)生。LED驅(qū)動(LED0~LED15)是U8根據(jù)MCU-SPI的VSCK(SPI-SCK)、VSDO(SPI-MOSI)、LCDCLK(SPI-NPCS3)和VSVS產(chǎn)生。LCD掃描方向選擇:RP1、RP2為LCD掃描方向選擇,它們只能焊接其中的1只。LCD驅(qū)動原理框圖如圖2所示:4.2.2溫度和速度顯示參數(shù)通過SPI-DMA完成一個整行的掃描過程。在該過程中DMA(直接存儲器存取)向SPI(串行外設(shè)接口)傳輸400個8位數(shù)據(jù)。一個完整周期需要有104行掃描。其中第0行掃描的前3個數(shù)據(jù)為PMRAM數(shù)據(jù),其他數(shù)據(jù)無意義(可以是任何數(shù))。第1行和第103行掃描的全部數(shù)據(jù)均無意義;第2~102行為數(shù)據(jù)掃描,每一行數(shù)據(jù)中前64個和后16個數(shù)據(jù)無意義,中間320個數(shù)據(jù)為顯示數(shù)據(jù)。LCD驅(qū)動過程是由SPI-DMA操作配合SPI-DMA中斷服務(wù)程序完成的。應(yīng)當(dāng)指出的是,在MCU相應(yīng)的設(shè)備按要求初始化后,由于沒有啟動SPI-DMA,LCD驅(qū)動過程不能自動開始。因此顯示初始化程序應(yīng)當(dāng):1)設(shè)置SPI;2)設(shè)置TIMER1(可以啟動TIMER);3)設(shè)掃描行指針n=0;4)設(shè)DMA傳輸數(shù)據(jù)格式(8位/次,400個數(shù)據(jù));5)啟動DMA。以上過程在完成一行空掃描后,進入連續(xù)的LCD掃描過程。4.3此程序僅適用于此程序以下列出了16x16方陣漢字顯示的部分程序代碼:顯示英文字符的原理及程序代碼與漢字的類似,就不再贅述。5其他領(lǐng)域的應(yīng)用建立非完整漢字庫最大的特點是可以按照現(xiàn)實需要柔性地顯示漢字、軟件編程容易、可混合顯示漢字和英文字符。作為人機交互界

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論