圖形LCD模塊ACM19264ASB的漢字顯示
出處:kex 發(fā)布于:2007-04-17 13:22:55
1引言
在基于單片機的智能系統(tǒng)中,漢字顯示模塊是很重要的一個組成部分,它應(yīng)用廣泛、操作容易、調(diào)試簡便。
然而,在單片機上顯示漢字也存在幾個問題。首先,單片機資源有限,我們不能為了顯示漢字占用太多的資源;其次,漢字存儲讀取比較繁瑣,使用不方便;第三,漢字是通過點陣顯示出來的,往往與LCD寫入方式不一樣,這就得進行轉(zhuǎn)換和調(diào)整。
值得注意的是,基于單片機的漢字顯示不能在字符LCD上實現(xiàn)。使用圖形LCD有很多優(yōu)點,不僅能顯示漢字,而且可以實現(xiàn)漢字動態(tài)移動和上下滾屏,實現(xiàn)漢字與圖形的混合顯示,同時功耗低。
2基于單片機的漢字顯示原理
2.1漢字字模
漢字一般是以點陣式存儲的,如16×16,24×24點陣(即漢字的字模),每個漢字由32字節(jié)(16點陣)或72字節(jié)(24點陣)描述。根據(jù)漢字的不同字體,也可分為宋體字模、楷體字模、黑體字模等等。
漢字的字模其實是漢字字形的圖形化。對于16點陣字模,就是把漢字寫在一個16×16的網(wǎng)格內(nèi),漢字的筆畫能過某網(wǎng)格時該網(wǎng)格就對應(yīng)1,否則該網(wǎng)格對應(yīng)0,這樣每一網(wǎng)格均對應(yīng)1或0,把對應(yīng)1的網(wǎng)格連起來看,就是這個漢字。漢字就是這樣通過字節(jié)表示點陣存儲在字庫中的。
為了方便查找所需漢字的點陣,每個漢字都與一個雙字節(jié)的內(nèi)碼一一對應(yīng)。通過漢字的內(nèi)碼可以計算出它的點陣起始字節(jié)?,F(xiàn)以16點陣為例說明。
先由內(nèi)碼計算出它在漢字庫中的區(qū)位碼,計算公式為:
區(qū)碼=內(nèi)碼字節(jié)-160
位碼=內(nèi)碼第二字節(jié)-160
再由區(qū)位碼可以得到它在漢字庫中字模個字節(jié)的位置:
(區(qū)碼×94+位碼)×32 于是,可以向后連續(xù)讀出由32個字節(jié)組成的該字的點陣數(shù)據(jù)。
2.2漢字顯示
漢字占用資源太多(如16點陣,每個漢字就需32字節(jié)),因而通常把漢字庫放在EEPROM里,需要顯示某個漢字時,先算出它的區(qū)位碼,再求出點陣起始位置,從EEPROM中順序調(diào)出該字的點陣數(shù)據(jù),存在緩沖區(qū)里,依次送往LCD顯示,描出該字。需要說明的是漢字存儲方式與LCD顯示方式有一定差別。
本文使用另一種顯示方法,即事先將程序用到的漢字、符號和數(shù)碼(為了節(jié)省顯示空間,可以將數(shù)碼壓成8×16點陣),編成一個文本文件,用一段小程序做出相應(yīng)小的漢字庫,這個小字庫的漢字點陣數(shù)據(jù)取自于一般漢字庫。再經(jīng)過轉(zhuǎn)換和調(diào)整,得到新的漢字庫,把新字庫固化在EEPROM中。單片機只需按序號讀出點陣字節(jié),送往LCD即可顯示所需漢字。減輕了單片機的負擔,去除了繁瑣的查找內(nèi)碼、求起始位置、轉(zhuǎn)換、調(diào)整等工作,提高了系統(tǒng)可靠性。
|
表116點陣漢字字庫存儲方式 |
3自定義小字庫的制作
典型的漢字庫可選用UCDOS下的字庫,如16點陣字庫HZK16。需要256K空間,用了較大的EEPROM,又不方便讀取,而實際應(yīng)用中需要的漢字又非常少,因而我們可以自己制作小的漢字庫,在這個小字庫里只包含系統(tǒng)需要的漢字。這樣,一方面節(jié)省讀取時間,另一方面大大地節(jié)省了資源。
限于篇幅,這里僅僅給出流程圖(假定事先將所需漢字寫到了一個文本文件),如所示。
4圖形點陣液晶顯示模塊ACM19264ASB的結(jié)構(gòu)與原理
4.1技術(shù)參數(shù)和性能
1)電源:+5V;
2)顯示內(nèi)容:192(列)×64(行)點陣,可顯示圖形,也可顯示12×4(16點陣)漢字;
3)全屏幕點陣;
4)7種指令;
5)與CPU接口采用8位數(shù)據(jù)總線并行輸入輸出和8條控制線。
4.2模塊主要外部接口
1)VSS:地;
2)D/I:高時表示DB7~DB0為顯示數(shù)據(jù),低時表示為顯示指令數(shù)據(jù);
3)R/W:讀寫控制;
4)E:使能信號;
5)DB7~DB0:數(shù)據(jù)線;
6)CS3~CS1:3組列驅(qū)動選擇器;
7)RESET:復(fù)位控制;
8)VEE:負電壓驅(qū)動。
4.3指令說明,指令字為【R/W,D/I,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0】
1)顯示開關(guān)控制【0,0,0,0,1,1,1,1,1,D】,D=1表示開顯示,可進行各種顯示操作;
2)設(shè)置顯示起始行【0,0,1,1,A5,A4,A3,A2,A1,A0】,起始行地址可以是0~63的任意一行;
3)設(shè)置頁地址(即X地址)【0,0,1,0,1,1,1,A2,A1,A0】,8行為一頁,模塊共64行即8頁,0~7可選;
4)設(shè)置Y地址【0,0,0,1,A5,A4,A3,A2,A1,A0】,Y可從0~63選,對應(yīng)CS3~CS1,各包含64列,Y可選擇其中一列作讀寫操作起始列,每操作Y自動加1;
5)讀狀態(tài)【1,0,BF,0,ON/OFF,RST,0,0,0,0】,其中BF為忙標志,BF=1表示內(nèi)部正進行操作,不接受外部指令,ON/OFF為顯示控制觸發(fā)器狀態(tài),ON/OFF=1為開顯示,數(shù)據(jù)就顯示在屏幕上,RST=1表示內(nèi)部正進行初始化,不接受任何指令和數(shù)據(jù);
6)寫顯示數(shù)據(jù)【0,1,D7,D6,D5,D4,D3,D2,D1,D0】,寫入顯示數(shù)據(jù)存儲單元進行顯示,Y地址指針自動加1;
7)讀顯示數(shù)據(jù)【1,1,D7,D6,D5,D4,D3,D2,D1,D0】,讀出數(shù)據(jù),Y自動加1。
4.4模塊主要硬件構(gòu)成說明
圖形顯示LCD模塊ACM19264ASB的內(nèi)部結(jié)構(gòu)
如所示。IC4為行驅(qū)動器,IC3~IC1為列驅(qū)動器,各驅(qū)動器含有如下功能器件:指令寄存器(IR),數(shù)據(jù)寄存器(DR),忙標志(BF),顯示控制觸發(fā)器(DFF),XY地址計數(shù)器,顯示數(shù)據(jù)RAM(DDRAM),Z地址計數(shù)器(即行掃描計數(shù)器,掃完一行自動加1,0~63循環(huán),故可實現(xiàn)滾屏顯示)。
4.5顯示數(shù)據(jù)存儲單元地址表
表2示出顯示數(shù)據(jù)存儲單元地址。
|
表2圖形顯示LCD模塊ACM19264ASB的DDRAM地址表 |
5漢字庫到LCD的調(diào)整與轉(zhuǎn)換
從表1和表2可以看出,漢字庫點陣需要經(jīng)過調(diào)整和轉(zhuǎn)換才能顯示在LCD上。具體地講,需要先從行點陣轉(zhuǎn)換到列點陣,再翻轉(zhuǎn)180°。相應(yīng)程序如下:
先將#include加到頭文件中,然后設(shè)置數(shù)組:
unsignedintfarHzLib[16*1000];轉(zhuǎn)換前的漢字庫點陣數(shù)組,雙字節(jié)寫入unsignedintfarHzXLib[8*2000];轉(zhuǎn)換后的漢字庫點陣數(shù)組,單字節(jié)寫入 這里,轉(zhuǎn)換前的漢字庫數(shù)組每次按雙字節(jié)寫入16位點陣數(shù)據(jù),快捷方便,轉(zhuǎn)換后的漢字庫數(shù)組按單字節(jié)寫入。 把轉(zhuǎn)換子程序函數(shù)加到主程序后面即可。轉(zhuǎn)換子程序如下:voidHZ_TZH(){
inti,j,k,GetBit;for(k=0;k{for(i=0;i<16;i++);先轉(zhuǎn)換低16字節(jié){for(j=7;j>=0;j--){GetBit=(HzLib[16*k+j]>>(15-i))-(HzLib[16*k+j]>>(16-i))*2;取每個字節(jié)的相同位,實現(xiàn)行到列的轉(zhuǎn)換HzXLib[i+32*k]+=GetBit<時,高低位順序倒轉(zhuǎn)180°}}for(i=16;i<32;i++);再轉(zhuǎn)換高16字節(jié){for(j=15;j>=8;j--){GetBit=(HzLib[16*k+j]>>(31-i))-(HzLib[16*k+j]>>(32-i))*2HzXLib[i+32*k]+=GetBit<<(j-8)}}}}
6漢字顯示應(yīng)用舉例
示出漢字顯示的典型應(yīng)用框圖。
CPLD用來擴展I/O口,單片機通過CPLD讀取漢字庫EEPROM點陣數(shù)組,緩存到SRAM中,然后依次寫入LCD顯示出來,鍵盤用來輸入指令與改變數(shù)據(jù)。
使用過程中應(yīng)注意幾個問題:
1)LCD分3個區(qū)CS1~CS3分別選中寫入,確定顯示位置后,先選中對應(yīng)區(qū)CS再寫入;
2)該型號LCD每行只能顯示24個漢字,到邊界時注意加一個判斷程序,防止顯示位置出錯;
3 )程序中可能用到數(shù)碼,為了節(jié)省顯示空間,可以事先將數(shù)碼壓成8×16點陣,添加到EEPROM漢字庫后面。 本系統(tǒng)在信號源產(chǎn)生系統(tǒng)中,已成功使用,速度快,程序簡捷,沒有出現(xiàn)誤碼等問題。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機技術(shù)特性與嵌入式開發(fā)實踐指南2026/1/7 10:00:02
- 單片機(MCU)與數(shù)字信號處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機專用SoC單片機2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴充定義2025/10/27 13:59:22
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









