當(dāng)前位置:首頁(yè) > 顯示光電 > 顯示光電
[導(dǎo)讀]1引言  在基于單片機(jī)的智能系統(tǒng)中,漢字顯示模塊是很重要的一個(gè)組成部分,它應(yīng)用廣泛、操作容易、調(diào)試簡(jiǎn)便。  然而,在單片機(jī)上顯示漢字也存在幾個(gè)問(wèn)題。首先,單片機(jī)資源有限,我們不能為了顯示漢字占用太多的資

1引言

  在基于單片機(jī)的智能系統(tǒng)中,漢字顯示模塊是很重要的一個(gè)組成部分,它應(yīng)用廣泛、操作容易、調(diào)試簡(jiǎn)便。

  然而,在單片機(jī)上顯示漢字也存在幾個(gè)問(wèn)題。首先,單片機(jī)資源有限,我們不能為了顯示漢字占用太多的資源;其次,漢字存儲(chǔ)讀取比較繁瑣,使用不方便;第三,漢字是通過(guò)點(diǎn)陣顯示出來(lái)的,往往與LCD寫(xiě)入方式不一樣,這就得進(jìn)行轉(zhuǎn)換和調(diào)整。

  值得注意的是,基于單片機(jī)的漢字顯示不能在字符LCD上實(shí)現(xiàn)。使用圖形LCD有很多優(yōu)點(diǎn),不僅能顯示漢字,而且可以實(shí)現(xiàn)漢字動(dòng)態(tài)移動(dòng)和上下滾屏,實(shí)現(xiàn)漢字與圖形的混合顯示,同時(shí)功耗低。

  2基于單片機(jī)的漢字顯示原理

  2.1漢字字模

  漢字一般是以點(diǎn)陣式存儲(chǔ)的,如16×16,24×24點(diǎn)陣(即漢字的字模),每個(gè)漢字由32字節(jié)(16點(diǎn)陣)或72字節(jié)(24點(diǎn)陣)描述。根據(jù)漢字的不同字體,也可分為宋體字模、楷體字模、黑體字模等等。

  漢字的字模其實(shí)是漢字字形的圖形化。對(duì)于16點(diǎn)陣字模,就是把漢字寫(xiě)在一個(gè)16×16的網(wǎng)格內(nèi),漢字的筆畫(huà)能過(guò)某網(wǎng)格時(shí)該網(wǎng)格就對(duì)應(yīng)1,否則該網(wǎng)格對(duì)應(yīng)0,這樣每一網(wǎng)格均對(duì)應(yīng)1或0,把對(duì)應(yīng)1的網(wǎng)格連起來(lái)看,就是這個(gè)漢字。漢字就是這樣通過(guò)字節(jié)表示點(diǎn)陣存儲(chǔ)在字庫(kù)中的。

  為了方便查找所需漢字的漢字字模,每個(gè)漢字都與一個(gè)雙字節(jié)的內(nèi)碼一一對(duì)應(yīng)。通過(guò)漢字的內(nèi)碼可以計(jì)算出它的點(diǎn)陣起始字節(jié)?,F(xiàn)以16點(diǎn)陣為例說(shuō)明。

  先由內(nèi)碼計(jì)算出它在漢字庫(kù)中的區(qū)位碼,計(jì)算公式為:

  區(qū)碼=內(nèi)碼第一字節(jié)-160

  位碼=內(nèi)碼第二字節(jié)-160

  再由區(qū)位碼可以得到它在漢字庫(kù)中字模第一個(gè)字節(jié)的位置:
(區(qū)碼×94+位碼)×32 于是,可以向后連續(xù)讀出由32個(gè)字節(jié)組成的該字的點(diǎn)陣數(shù)據(jù)。

  2.2漢字顯示

  漢字占用資源太多(如16點(diǎn)陣,每個(gè)漢字就需32字節(jié)),因而通常把漢字庫(kù)放在EEPROM里,需要顯示某個(gè)漢字時(shí),先算出它的區(qū)位碼,再求出點(diǎn)陣起始位置,從EEPROM中順序調(diào)出該字的點(diǎn)陣數(shù)據(jù),存在緩沖區(qū)里,最后依次送往LCD顯示,描出該字。需要說(shuō)明的是漢字存儲(chǔ)方式與LCD顯示方式有一定差別。

  本文使用另一種顯示方法,即事先將程序用到的漢字、符號(hào)和數(shù)碼(為了節(jié)省顯示空間,可以將數(shù)  碼壓成8×16點(diǎn)陣),編成一個(gè)文本文件,用一段小程序做出相應(yīng)小的漢字庫(kù),這個(gè)小字庫(kù)的漢字點(diǎn)陣數(shù)據(jù)取自于一般漢字庫(kù)。再經(jīng)過(guò)轉(zhuǎn)換和調(diào)整,得到新的漢字庫(kù),最后把新字庫(kù)固化在EEPROM中。單片機(jī)只需按序號(hào)讀出點(diǎn)陣字節(jié),送往LCD即可顯示所需漢字。減輕了單片機(jī)的負(fù)擔(dān),去除了繁瑣的查找內(nèi)碼、求起始位置、轉(zhuǎn)換、調(diào)整等工作,提高了系統(tǒng)可靠性。

  表116點(diǎn)陣漢字字庫(kù)存儲(chǔ)方式

3自定義小字庫(kù)的制作

  典型的漢字庫(kù)可選用UCDOS下的字庫(kù),如16點(diǎn)陣字庫(kù)HZK16。需要256K空間,用了較大的EEPROM,又不方便讀取,而實(shí)際應(yīng)用中需要的漢字又非常少,因而我們可以自己制作小的漢字庫(kù),在這個(gè)小字庫(kù)里只包含系統(tǒng)需要的漢字。這樣,一方面節(jié)省讀取時(shí)間,另一方面大大地節(jié)省了資源。

  限于篇幅,這里僅僅給出流程圖(假定事先將所需漢字寫(xiě)到了一個(gè)文本文件),如圖1所示。

4圖形點(diǎn)陣液晶顯示模塊ACM19264ASB的結(jié)構(gòu)與原理

  4.1技術(shù)參數(shù)和性能

  1)電源:+5V;
  2)顯示內(nèi)容:192(列)×64(行)點(diǎn)陣,可顯示圖形,也可顯示12×4(16點(diǎn)陣)漢字;
  3)全屏幕點(diǎn)陣;
  4)7種指令
  5)與CPU接口采用8位數(shù)據(jù)總線并行輸入輸出和8條控制線。

  4.2模塊主要外部接口
  
  1)VSS:地;
  2)D/I:高時(shí)表示DB7~DB0為顯示數(shù)據(jù),低時(shí)表示為顯示指令數(shù)據(jù);
  3)R/W:讀寫(xiě)控制;
  4)E:使能信號(hào);
  5)DB7~DB0:數(shù)據(jù)線;
  6)CS3~CS1:3組列驅(qū)動(dòng)選擇器;
  7)RESET:復(fù)位控制;
  8)VEE:負(fù)電壓驅(qū)動(dòng)。

  4.3指令說(shuō)明,指令字為【R/W,D/I,DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0】

  1)顯示開(kāi)關(guān)控制【0,0,0,0,1,1,1,1,1,D】,D=1表示開(kāi)顯示,可進(jìn)行各種顯示操作;

  2)設(shè)置顯示起始行【0,0,1,1,A5,A4,A3,A2,A1,A0】,起始行地址可以是0~63的任意一行;

  3)設(shè)置頁(yè)地址(即X地址)【0,0,1,0,1,1,1,A2,A1,A0】,8行為一頁(yè),模塊共64行即8頁(yè),0~7可選;

  4)設(shè)置Y地址【0,0,0,1,A5,A4,A3,A2,A1,A0】,Y可從0~63選,對(duì)應(yīng)CS3~CS1,各包含64列,Y可選擇其中一列作讀寫(xiě)操作起始列,每操作一次Y自動(dòng)加1;

  5)讀狀態(tài)【1,0,BF,0,ON/OFF,RST,0,0,0,0】,其中BF為忙標(biāo)志,BF=1表示內(nèi)部正進(jìn)行操作,不接受外部指令,ON/OFF為顯示控制觸發(fā)器狀態(tài),ON/OFF=1為開(kāi)顯示,數(shù)據(jù)就顯示在屏幕上,RST=1表示內(nèi)部正進(jìn)行初始化,不接受任何指令和數(shù)據(jù);

  6)寫(xiě)顯示數(shù)據(jù)【0,1,D7,D6,D5,D4,D3,D2,D1,D0】,寫(xiě)入顯示數(shù)據(jù)存儲(chǔ)單元進(jìn)行顯示,Y地址指針自動(dòng)加1;

  7)讀顯示數(shù)據(jù)【1,1,D7,D6,D5,D4,D3,D2,D1,D0】,讀出數(shù)據(jù),Y自動(dòng)加1。

  4.4模塊主要硬件構(gòu)成說(shuō)明

  圖形顯示LCD模塊ACM19264ASB的內(nèi)部結(jié)構(gòu)

  如圖2所示。IC4為行驅(qū)動(dòng)器,IC3~I(xiàn)C1為列驅(qū)動(dòng)器,各驅(qū)動(dòng)器含有如下功能器件:指令寄存器(IR),數(shù)據(jù)寄存器(DR),忙標(biāo)志(BF),顯示控制觸發(fā)器(DFF),XY地址計(jì)數(shù)器,顯示數(shù)據(jù)RAM(DDRAM),Z地址計(jì)數(shù)器(即行掃描計(jì)數(shù)器,掃完一行自動(dòng)加1,0~63循環(huán),故可實(shí)現(xiàn)滾屏顯示)。

4.5顯示數(shù)據(jù)存儲(chǔ)單元地址表

表2示出顯示數(shù)據(jù)存儲(chǔ)單元地址。


  表2圖形顯示LCD模塊ACM19264ASB的DDRAM地址表

5漢字庫(kù)到LCD的調(diào)整與轉(zhuǎn)換

  從表1和表2可以看出,漢字庫(kù)點(diǎn)陣需要經(jīng)過(guò)調(diào)整和轉(zhuǎn)換才能顯示在LCD上。具體地講,需要先從行點(diǎn)陣轉(zhuǎn)換到列點(diǎn)陣,再翻轉(zhuǎn)180°。相應(yīng)程序如下:

  先將#include加到頭文件中,然后設(shè)置數(shù)組:

  unsignedintfarHzLib[16*1000];轉(zhuǎn)換前的漢字庫(kù)點(diǎn)陣數(shù)組,雙字節(jié)寫(xiě)入unsignedintfarHzXLib[8*2000];轉(zhuǎn)換后的漢字庫(kù)點(diǎn)陣數(shù)組,單字節(jié)寫(xiě)入 這里,轉(zhuǎn)換前的漢字庫(kù)數(shù)組每次按雙字節(jié)寫(xiě)入16位點(diǎn)陣數(shù)據(jù),快捷方便,轉(zhuǎn)換后的漢字庫(kù)數(shù)組按單字節(jié)寫(xiě)入。 最后把轉(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;取每個(gè)字節(jié)的相同位,實(shí)現(xiàn)行到列的轉(zhuǎn)換HzXLib[i+32*k]+=GetBit<時(shí),高低位順序倒轉(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)用舉例

  圖3示出漢字顯示的典型應(yīng)用框圖。

CPLD用來(lái)擴(kuò)展I/O口,單片機(jī)通過(guò)CPLD讀取漢字庫(kù)EEPROM點(diǎn)陣數(shù)組,緩存到SRAM中,然后依次寫(xiě)入LCD顯示出來(lái),鍵盤用來(lái)輸入指令與改變數(shù)據(jù)。

  使用過(guò)程中應(yīng)注意幾個(gè)問(wèn)題:

  1)LCD分3個(gè)區(qū)CS1~CS3分別選中寫(xiě)入,確定顯示位置后,先選中對(duì)應(yīng)區(qū)CS再寫(xiě)入;
  2)該型號(hào)LCD每行只能顯示24個(gè)漢字,到邊界時(shí)注意加一個(gè)判斷程序,防止顯示位置出錯(cuò);
  3 )程序中可能用到數(shù)碼,為了節(jié)省顯示空間,可以事先將數(shù)碼壓成8×16點(diǎn)陣,添加到EEPROM漢字庫(kù)后面。 本系統(tǒng)在信號(hào)源產(chǎn)生系統(tǒng)中,已成功使用,速度快,程序簡(jiǎn)捷,沒(méi)有出現(xiàn)誤碼等問(wèn)題。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉