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