基于不帶字庫的圖形LCD模塊漢字顯示解決方案
2 字庫芯片與單片機的接口
2.1 漢字的編碼標準
為了用0、1代碼串表示漢字,規定了漢字的信息交換碼:GB 2312-80,簡(jiǎn)稱(chēng)國標碼,共有字符7445個(gè),包括漢字和其他字符。一級漢字3755個(gè),按漢語(yǔ)拼音順序排列;二級漢字3008個(gè),按部首和筆畫(huà)排列。其他字符有常用符號、序號、GB1988圖形字符集、希臘字符、制表符等。國標碼的每一個(gè)符號都用兩個(gè)字節(16位二進(jìn)制)代碼來(lái)表示一個(gè)漢字。
1) 國標碼:行、列各94(0-93),用先行后列的兩個(gè)7位二進(jìn)制數表示。
2) 區位碼:由于二進(jìn)制國標碼表示不很方便,因此漢字也可用十進(jìn)制區位碼表示。區、位各94(1-94),用先區后位的兩個(gè)2位十進(jìn)制數表示。
3) 機內碼:是計算機內部表示漢字的代碼,在微機中多用兩字節(最高位為1)代碼作為機內碼。
2.2區位碼和機內碼的相互轉換
西文系統的交換碼和機內碼都采用美國標準信息交換碼ASCII,用一個(gè)字節表示,一般只用低七位,可以表示128可符號。在軟件中嵌入的漢字經(jīng)編譯器編譯后存放的格式為機內碼。區位碼和機內碼之間的轉換關(guān)系可概括為:(區位碼的十六進(jìn)制表示)+A0A0H=機內碼。以漢字“大”為例,“大”字的區內碼的十六進(jìn)制表示為1453H,加上A0A0H得到機內碼為B4F3H。
2.3 漢字字模庫
漢字的輸出是將漢字的筆劃離散化,用點(diǎn)陣來(lái)表示。點(diǎn)陣的中每個(gè)點(diǎn)位只有兩種狀態(tài):有筆畫(huà)(1)、無(wú)筆畫(huà)(0)。
描述漢字點(diǎn)陣信息的二進(jìn)制代碼集稱(chēng)為漢字的字模。所有漢字和符號的點(diǎn)陣信息就組成了漢字庫。
2.3 混合字符的顯示
在本系統中,每個(gè)漢字的顯示采用16×16圖形點(diǎn)陣方式顯示。國標GB2312-80一、二級漢字點(diǎn)陣庫存放在一片ROM芯片AT27C040中,每個(gè)漢字占用32個(gè)字節。當需要顯示漢字時(shí),首先根據區碼和位碼計算出該漢字點(diǎn)陣在ROM中存放的起始地址,然后從此地址連續的取出32個(gè)字節的漢字點(diǎn)陣,并寫(xiě)入LCD模塊對應的地址中,就可以顯示出該漢字。根據漢字區位碼和該漢字計算漢字在字庫ROM位置的轉換關(guān)系可概括為:起始地址=(區碼×94+位碼)×32
在應用中,常需要漢字和英文字符混合顯示,在軟件處理時(shí)需要判斷顯示的內容是漢字的編碼還是英文字符的編碼,如果是漢字編碼則根據其機內碼計算區位碼,并根據區位碼計算出該漢字在字模中的起始地址。圖3是混合顯示的軟件流程圖。
3 應用實(shí)例
在某檢測設備中,需要給用戶(hù)顯示電流、電壓、頻率值以及一些事件記錄等。用戶(hù)的命令通過(guò)設備的8鍵鍵盤(pán)輸入,顯示的內容有漢字、數字和英文字符。
以下列出了顯示漢字、數字和英文字符串部分軟件
/*-----------------------------------------------------------------------------------------
混合顯示一串漢字和英文字符
row:行(1-8), column: 列(1-15)
str:字符代碼(標準機內碼)指針
---------------------------------------------------------------------------------------*/
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評論