采用內(nèi)存接液晶顯示模塊設(shè)計
點陣式液晶接口簡單,能以點陣或圖形方式顯示出各種信息,因此在各種電子設(shè)計中得到廣泛應(yīng)用。但是,它的接口必須遵循一定的硬件和時序規(guī)范,根據(jù)不同的液晶驅(qū)動器,可能需要發(fā)出不同的命令進行控制才能顯示數(shù)據(jù)。而且命令的執(zhí)行需要耗費一定時間,在系統(tǒng)大量的實時數(shù)據(jù)的情況下,如果直接控制液晶顯示,可能會消耗過多的時間,從而影響數(shù)據(jù)的處理。因此,由于某種需要必須采用不同的液晶模塊,這就需要修改軟件。為了解決這些問題,文提出采用內(nèi)存接口的液晶顯示模塊,在現(xiàn)有點陣式液晶顯示屏上附加一個MCU(Micro-Controller Unit微處理器)及相關(guān)器件,利用內(nèi)存與外部控制器進行接口,從而解決了統(tǒng)一接口和顯示速度的問題。
本文引用地址:http://m.butianyuan.cn/article/168668.htm1 系統(tǒng)設(shè)計
1.1 設(shè)計思想
我們知道,人眼有視覺暫留現(xiàn)象,每0.1秒時間內(nèi)變化一次的影像看上去會認為是連續(xù)的,而且只在0.1秒之內(nèi)變化的影像人眼很難察覺到。根據(jù)這一物理現(xiàn)象,我們采用內(nèi)存與外部控制器接口設(shè)計一種液晶接口模塊,外部控制器將欲顯示的數(shù)據(jù)直接寫入接口內(nèi)存,根據(jù)接口刷新液晶的顯示。刷新率在每秒10次以上,就可達到連續(xù)顯示的目的。當(dāng)然,刷新率越高人眼就越能感覺圖像變化的連續(xù)與流暢。
1.2 硬件設(shè)計
采用內(nèi)存與外部控制器接口,具有統(tǒng)一的硬件接口規(guī)范。因為外部控制器和模塊內(nèi)的MCU需要同時讀寫內(nèi)存,接口內(nèi)存采用帶有BUSY線的2K雙RAM IDT 7132,MCU選用常用的AT89C51,液晶模塊為市面普及的采用HITACHI公司HD61202液晶控制器的單5V供電的128×64點陣液晶。液晶顯示模塊的設(shè)計必須具備很強的通用性,可以被廣泛應(yīng)用到各種系統(tǒng)中。目前系統(tǒng)一般為3V電平或5V電平系統(tǒng),因此液晶顯示模塊的設(shè)計也必須同時考慮應(yīng)用于這兩種系統(tǒng)。液晶顯示模塊硬件結(jié)構(gòu)框圖如圖1所示。外部控制器將欲顯示的數(shù)據(jù)寫入雙口RAM,MCU則不斷掃描內(nèi)存,根據(jù)內(nèi)存中的數(shù)據(jù)進行相應(yīng)的處理,不斷刷新液晶顯示屏上的顯示。綜合考慮液晶和系統(tǒng)操作的時序,AT89C51單片機運行在12MHz時鐘下,設(shè)計系統(tǒng)的刷新率達到每秒18次。
外部控制器的數(shù)據(jù)、地址、控制總線通過接插件引入液晶顯示模塊。因為雙口RAM IDT7132的輸入輸出為TTL電平,BUSY信號為開漏極輸出,因此無論是3V還是5V的系統(tǒng),地址和控制總線可以直接引入。而數(shù)據(jù)總線因為是雙向系統(tǒng),如果直接與雙口RAM連接,在雙口RAM輸出數(shù)據(jù)的時候可能會對3V系統(tǒng)造成損害,因此設(shè)計一個總線驅(qū)動器,采用74LVC245進行總線電平轉(zhuǎn)換。 74LVC245在3V供電時,輸入5V的電壓信號這樣就實現(xiàn)了與3V和5V電平系統(tǒng)的接口。
雙口RAM的BUSY信號是用來標(biāo)示雙口RAM的兩個口同時在訪問相同的內(nèi)存單元,而且至少有一個口處于寫該單元狀態(tài)。雙口RAM通過仲裁邏輯使后訪問該單元的BUSY信號有效,并屏蔽該口的操作,直到?jīng)]有訪問,競爭BUSY信號才變?yōu)闊o效。通過檢測BUSY信號可有效地確保內(nèi)存讀寫的安全。
模塊內(nèi)采用27C040保存16×8的256個ASCII字符點陣的16×16點陣的漢字庫,方便用戶使用。
考慮到液晶背光電流較大,加入了液晶背光的控制,可根據(jù)需要開關(guān)背光。
1.3 軟件設(shè)計
軟件部分涉及接口操作、點陣操作及液晶操作等,這里僅對接口有關(guān)部分進行介紹。
1.3.1 接口內(nèi)存分配
接口內(nèi)存的分配如表1所示。
表1 接口內(nèi)存分配表
液晶屏幕上共有128×64=8192點,每個點用內(nèi)存中的一位為0或1來表示點亮或熄滅。在雙口RAM中分配0000H~03FFH的內(nèi)存用來直接與屏幕上的點相對應(yīng),稱為直接顯示映射區(qū)。這樣,用戶只需將欲顯示的點陣寫入內(nèi)存中的指定地址,就可在屏幕上指定位置直接顯示出來。
另外,為方便使用,還設(shè)計了簡單的命令接口,分配0400~0507H的空間作為命令接口的內(nèi)存,具體分配詳見表1。其中,0400H~04FEH的內(nèi)存也作為字符顯示映射區(qū),在設(shè)置了顯示模式后,將欲顯示的字符寫入該區(qū)域的指定地址,即可在屏幕指定位置顯示出該字符。
1.3.2 命令接口簡介
外部控制器將命令按照預(yù)定格式寫入命令接口的內(nèi)存。顯示模塊的單片機檢測到有命令時,首先將命令讀出,將命令字地址內(nèi)容變?yōu)?0H,并將該命令字最高位置為 1寫入命令結(jié)果地址內(nèi),表示該命令正在被執(zhí)行。當(dāng)命令執(zhí)行完后,命令執(zhí)行的結(jié)果(規(guī)定最高位為0)寫入命令結(jié)果地址。這樣,外部控制器可以通過檢測命令字地址的內(nèi)容和命令執(zhí)行結(jié)果來確認顯示模塊當(dāng)前的工作狀態(tài),發(fā)布命令?;久钭秩绫?所示,當(dāng)然根據(jù)具體應(yīng)用還可增加如繪制各種圖形、填充等的命令字。
表2 命令字及其參數(shù)
1.3.3 接口模塊工作方式
設(shè)計了兩種顯示模式:顯示模式1和顯示模式2。在顯示模式1時,MCU不斷掃描顯示映射區(qū)并檢查雙口RAM中用戶寫入的命令。在顯示模式2時,MCU不斷監(jiān)測字符顯示映射區(qū)的變化,將用戶寫入的字符轉(zhuǎn)化成點陣,寫入直接顯示映射區(qū),然后掃描顯示映射區(qū)進行顯示。此時MCU只執(zhí)行改變顯示模式或初始化命令。其它的命令一概忽略。這樣外部控制器就不需要了解具體的液晶操作,操作液晶像讀寫內(nèi)存一樣簡單快捷,因此外部控制器可以處理大量的實時數(shù)據(jù),并進行實時顯示。
2 應(yīng)用實例
液晶顯示模塊在我們設(shè)計的一套藍牙系統(tǒng)中得到了成功應(yīng)用,藍牙模塊采用Ericsson Rok 101,主控制器采用TI公司的MSP430F149。通過藍牙傳送的動畫和所有控制信息均在液晶顯示模塊上顯示,效果很流暢,達到了設(shè)計要求。
本文提出的液晶顯示模塊采用內(nèi)存和外部控制器進行接口,具有統(tǒng)一的接口規(guī)范。外部控制器將欲顯示的內(nèi)容直接寫入液晶顯示模塊提供的內(nèi)存接口即可實現(xiàn)顯示,不需要直接進行繁復(fù)費時的液晶控制和點陣處理操作,有利于控制器對大量數(shù)據(jù)進行實時處理。目前市面上有大屏幕的彩色液晶采用了類似方案,但價格昂貴。對一般應(yīng)用來說,本文提出的液晶顯示模塊具有很強的通用性,而且增加的硬件成本不到單獨購買一塊點陣式液晶的20%,因此可廣泛應(yīng)用。
評論