圖形點(diǎn)陣LCD顯示控制研究
1 點(diǎn)陣式LCD的接口技術(shù)
本文引用地址:http://www.ex-cimer.com/article/200294.htm單片機(jī)可以通過(guò)數(shù)據(jù)總線與控制信號(hào)直接采用存儲(chǔ)器訪問(wèn)形式、I/O設(shè)備訪問(wèn)形式控制該液晶顯示模塊。本文以AT89C51為例,他與YEJHD19264接口電路如圖1所示。單片機(jī)通過(guò)P2.6,P2.7來(lái)控制CSA,CSB列選擇驅(qū)動(dòng)器,同時(shí)AT89C51用P2.1作為R/W信號(hào)控制數(shù)據(jù)總線的數(shù)據(jù)流向,用P2.0作為D/I信號(hào)控制寄存器的選擇,E信號(hào)由AT89C51的P2.4控制。電路中LCD電源控制端VO是用來(lái)調(diào)節(jié)顯示屏灰度的,調(diào)節(jié)該端的電壓,可改變顯示屏字符、圖形的顏色深淺??梢酝ㄟ^(guò)查閱顯示屏產(chǎn)品手冊(cè)查到基本顯示時(shí)序電路和顯示驅(qū)動(dòng)程序。
根據(jù)點(diǎn)陣式LCD的功能和特點(diǎn),筆者研究了兩種應(yīng)用廣泛的控制算法,左(右)循環(huán)位移算法和翻頁(yè)算法。
2.1 左(右)循環(huán)位移算法
此算法應(yīng)用于廣告或車載報(bào)站系統(tǒng)中。如圖2所示,以左循環(huán)為例,假如一串8個(gè)漢字(16*16字模)的廣告,要在192*64點(diǎn)陣LCD上的第二行(192*64型的點(diǎn)陣顯示16*16字模時(shí)為4行12列)實(shí)行左循環(huán)顯示功能,具體算法如圖3所示。
說(shuō)明:把8個(gè)字看作為一個(gè)整體,即漢字串,并以第一個(gè)漢字的顯示坐標(biāo)作為整個(gè)漢字串的顯示坐標(biāo),將其初始化為最右邊的坐標(biāo)值(假設(shè)廣告是從右向左移動(dòng))。接著依次向左延伸顯示8個(gè)漢字(一條廣告),如果在顯示過(guò)程中,有一些漢字的坐標(biāo)會(huì)超過(guò)液晶屏的顯示界限,這時(shí)控制程序不顯示這些漢字,如圖2虛線小方框所示。漢字串顯示坐標(biāo)向左移一位(減1)都要判斷坐標(biāo)值是否等于-7(等于-7,則一次左移結(jié)束,重新初始化為最右邊的坐標(biāo)值,準(zhǔn)備第二輪左移;不等于-7,則本輪左移尚未結(jié)束)。
在實(shí)際應(yīng)用中,左(右)循環(huán)位移算法還可根據(jù)系統(tǒng)需求進(jìn)行改進(jìn)和拓展,以使他的應(yīng)用更加靈活。比如要求廣告語(yǔ)是可實(shí)時(shí)更改的,即當(dāng)用戶通過(guò)串口或其他外部接口輸入新的廣告時(shí),原來(lái)的舊廣告要被新廣告替換,這樣,算法就會(huì)更加復(fù)雜,因?yàn)槌藦V告的內(nèi)容本身的變化(字改變),字?jǐn)?shù)也可能改變。
2.2 翻頁(yè)算法
此算法應(yīng)用于短信息的顯示系統(tǒng)中。首先必須把顯示所需的頁(yè)數(shù)計(jì)算出來(lái),公式為:
其中:P為頁(yè)數(shù),S為所要顯示的漢字總數(shù),M為整屏容納漢字的最大數(shù)。
比如在顯示100個(gè)漢字時(shí),100/46(本來(lái)除數(shù)應(yīng)該是48,但要留出兩個(gè)漢字的位置作為上下翻頁(yè)的提示符的顯示位置),結(jié)果商是2,余數(shù)是8。這就意味著100個(gè)字分成3頁(yè)顯示,第一和第二頁(yè)都顯示46個(gè)漢字,第三頁(yè)顯示最后8個(gè)漢字。其次,還需要建立頁(yè)碼和一屏漢字的存儲(chǔ)器首地址的對(duì)應(yīng)關(guān)系,也就是100個(gè)漢字,前46個(gè)漢字首地址對(duì)應(yīng)第一頁(yè),接下來(lái)的46個(gè)漢字首地址對(duì)應(yīng)第二頁(yè),剩余8個(gè)漢字對(duì)應(yīng)第三頁(yè)。因?yàn)橐粋€(gè)地址存儲(chǔ)了一個(gè)字節(jié),而漢字內(nèi)碼由兩個(gè)字節(jié)構(gòu)成,那么,任何一屏漢字的存儲(chǔ)首地址的計(jì)算公式為:
其中:t為任何一屏漢字存儲(chǔ)首地址,T為全體漢字存儲(chǔ)首地址,M為整屏容納漢字的最大數(shù),P為頁(yè)數(shù)。以下的算法結(jié)構(gòu)仍然以192*64點(diǎn)陣顯示器為例,整個(gè)顯示部分程序結(jié)構(gòu)圖如圖4所示。
說(shuō)明:根據(jù)所要顯示的頁(yè)面不同,文本把頁(yè)面顯示分為三個(gè)軟件模塊,他們分別是:首頁(yè)顯示模塊,代表第一頁(yè)漢字內(nèi)容;中間頁(yè)顯示模塊,代表非第一頁(yè)和非最后一頁(yè)的其他所有的頁(yè)面;末頁(yè)顯示模塊,代表最后一頁(yè)漢字內(nèi)容。在程序開(kāi)始時(shí),變量P作為將要顯示的頁(yè)面標(biāo)識(shí),賦初值為1,所以在第一次進(jìn)入循環(huán)時(shí)程序進(jìn)入首頁(yè)模塊,這時(shí)根據(jù)式(2)計(jì)算本屏漢字存儲(chǔ)首地址,從而顯示第一頁(yè)內(nèi)容,同時(shí)顯示向下翻頁(yè)提示符。隨后等待外部按鍵中斷,當(dāng)有下翻頁(yè)按鍵提示到來(lái)時(shí),要改變P值(加1),進(jìn)入中間頁(yè)顯示模塊或末頁(yè)顯示模塊。當(dāng)程序進(jìn)入中間頁(yè)顯示模塊時(shí),同樣根據(jù)式(2)計(jì)算本屏漢字存儲(chǔ)首地址,顯示本屏的漢字,同時(shí)顯示向上和向下翻頁(yè)提示符。隨后等待外部按鍵中斷,當(dāng)有下翻頁(yè)或上翻頁(yè)按鍵提示到來(lái)時(shí),要改變P值(加1或減1),并進(jìn)入上一頁(yè)顯示模塊或下一頁(yè)顯示模塊。注意:這里的上一頁(yè)顯示模塊可能仍是中間頁(yè),而不是首頁(yè);同樣下一頁(yè)顯示模塊可能仍是中間頁(yè),而不是末頁(yè),具體要視總共的頁(yè)數(shù)而定。當(dāng)程序進(jìn)入末頁(yè)顯示模塊時(shí),根據(jù)式(2)計(jì)算本屏漢字存儲(chǔ)首地址,顯示本屏漢字,同時(shí)顯示向上翻頁(yè)提示符。隨后等待外部按鍵中斷,當(dāng)有上翻頁(yè)按鍵提示到來(lái)時(shí),要改變P值(減1),進(jìn)入中間頁(yè)顯示模塊或首頁(yè)顯示模塊。
在實(shí)際應(yīng)用中,翻頁(yè)顯示算法可與短消息存儲(chǔ)和查閱算法,文件系統(tǒng)相結(jié)合實(shí)現(xiàn)類似手機(jī)的短消息模式的顯示系統(tǒng)。
3 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果
3.1 設(shè)計(jì)思路
在設(shè)計(jì)外圍硬件時(shí),筆者用了E2PROM存儲(chǔ)漢字庫(kù),8 kB的外部RAM存儲(chǔ)短消息和廣告中的每個(gè)漢字漢字內(nèi)碼,再把內(nèi)碼轉(zhuǎn)換成漢字庫(kù)字模首地址,然后讀取E2PROM中的字模。在外部RAM中,進(jìn)行了區(qū)域劃分:前4 kB:存儲(chǔ)已經(jīng)預(yù)處理完畢且即將顯示的短消息,可容納漢字2000個(gè)(每個(gè)漢字2 B)。接下來(lái)2 kB:存儲(chǔ)已經(jīng)預(yù)處理完畢且即將顯示的廣告,由于加入了滾動(dòng)機(jī)制,只可容納200個(gè)漢字。最后的2 kB:存儲(chǔ)串口接收來(lái)的BTYE,包括所有的解包、解碼的預(yù)處理都在這個(gè)區(qū)域進(jìn)行在這里,如之前所述,把有用信息的提取出來(lái),提取出的漢字部分,送入短消信或廣告存儲(chǔ)區(qū),等待顯示命令。此區(qū)域可支持2 000 B的編碼長(zhǎng)度。同時(shí)設(shè)計(jì)了4個(gè)按鍵,用于控制上下翻頁(yè),廣告模式與消息模式之間的切換,單片機(jī)復(fù)位。
3.2 實(shí)驗(yàn)結(jié)果
由于廣告是滾動(dòng)的,靜態(tài)圖無(wú)法描述清楚,所以這里只給出短消息顯示圖,這是中間頁(yè)顯示,左上角和右下角分別是上翻頁(yè)和下翻頁(yè)的提示符。筆者讓單片機(jī)順序提取字庫(kù)中的漢字進(jìn)行顯示。
4 結(jié) 語(yǔ)
這兩種算法已應(yīng)用于基于無(wú)線測(cè)控網(wǎng)的車載及船載短信息通信系統(tǒng)中,同時(shí)也可通過(guò)進(jìn)一步拓展算法來(lái)迎合更加復(fù)雜的系統(tǒng)需求。希望本文能為那些基于低端LCD應(yīng)用的程序開(kāi)發(fā)人員提供一個(gè)解決實(shí)際問(wèn)題的思路和方法。
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評(píng)論