基于單片機(jī)和液晶模塊的LCD控制及觸屏接口設(shè)計(jì)
0 引言
本文引用地址:http://www.ex-cimer.com/article/201706/348325.htm隨著嵌入式系統(tǒng)的廣泛應(yīng)用, 出現(xiàn)了大量的16位和32位的嵌入式處理器。而傳統(tǒng)的8位單片機(jī)長期用于生產(chǎn)實(shí)踐, 制造工藝成熟、性能更加可靠, 仍然占有相當(dāng)大的市場, 特別是在汽車電子等對可靠性要求極高的領(lǐng)域。液晶顯示位模塊具有顯示信息量豐富、功耗低、體積小、質(zhì)量輕、無輻射等優(yōu)點(diǎn)。
觸摸屏作為一種特殊的計(jì)算機(jī)外設(shè), 是目前最自然、便利的一種人機(jī)交互方式。T32QM 6450液晶顯示模塊是帶有觸摸屏功能TFT 型彩色LCD顯示屏, 分辨率為240×320, 支持2.6 ×105色顯示。其功能強(qiáng), 使用方便, 接口簡單, 具有豐富的專用控制指令, 可方便地實(shí)現(xiàn)畫面滾動(dòng)顯示及觸摸屏等功能。
1 T32QM6450液晶模塊結(jié)構(gòu)
T32QM 6450是液晶模塊, 主要由TFT - LCD 顯示器、LED背光燈、觸摸屏、源極驅(qū)動(dòng)IC IS2102和柵極驅(qū)動(dòng)IC IS2202構(gòu)成, 其中Source Driver負(fù)責(zé)提供列上各色素點(diǎn)的驅(qū)動(dòng)電壓, 而Ga te Driver控制每行像素的選通狀態(tài)。TFT液晶的每個(gè)像素點(diǎn)都是由集成在像素點(diǎn)后面的薄膜晶體管來驅(qū)動(dòng), 從而可以做到高速度、高亮度、高對比度顯示屏幕信息, 可以精確控制顯示灰度, LCD通過總線與處理器連接, 實(shí)現(xiàn)數(shù)據(jù)和指令的傳遞。
2 T32QM6450與W77E58接口電路
硬件連接如圖1所示。處理器芯片選用W77E58.該芯片是一個(gè)快速8051兼容微控制器, 其內(nèi)核經(jīng)過重新設(shè)計(jì), 提高了時(shí)鐘速度和存儲(chǔ)器訪問周期速度。它的指令集基本與8051相同, 多了一條DEC DPTR指令。8051每12個(gè)時(shí)鐘周期為一個(gè)機(jī)器周期, 而W77E58每4個(gè)時(shí)鐘周期為一個(gè)機(jī)器周期, 提高了指令執(zhí)行速度。另外, W77E58 還可調(diào)整MOVX 指令的周期,范圍為2~ 9個(gè)機(jī)器周期, 這種設(shè)計(jì)使W77E58能夠更有效訪問慢速或快速外部RAM 及外設(shè)。
圖1 液晶屏與W77E58硬件連接電路
因?yàn)閃77E58是高速8 位單片機(jī), 而該LCD模塊采用16位總線接口, 所以電路中用了2 片鎖存器74HC573, 用P24~P27口分別控制2片鎖存器的鎖存使能和輸出使能引腳LE (下降沿鎖存) 、OE (低電平有效), 先給第一片74HC573的LE一個(gè)高電平, 通過P1口傳送低8 位數(shù)據(jù), 然后給該片的LE 低電平鎖存當(dāng)前數(shù)據(jù); 給第二片的LE 高電平, 同樣通過P1口傳送高8位數(shù)據(jù)并鎖存, 最后同時(shí)給2片74H C573的OE低電平, 即可實(shí)現(xiàn)16位數(shù)據(jù)的傳送。
該系統(tǒng)是混合電壓系統(tǒng), 液晶模塊和ADS7843用3.3 V 供電, 而處理器和鎖存器是5 V 供電, 這2部分是不能直接相連的。所以還要處理好電平的轉(zhuǎn)換問題, 電路中用4 片雙向電平轉(zhuǎn)換芯片74LVC4245, 它可以實(shí)現(xiàn)3.3 V和5 V的相互轉(zhuǎn)換。
為實(shí)現(xiàn)觸摸屏功能, 電路中用1 片觸摸屏控制器ADS7843.它是電阻式觸摸屏控制芯片, 具備串行12 位A /D轉(zhuǎn)換功能, 在關(guān)閉模式下, 功耗僅為0.5uW, 在12 V、125 kH z的工作模式下功耗為750 uW3. 文中僅結(jié)合電路對主要功能加以介紹。CS是芯片選通端; DCLK 是時(shí)鐘輸入端, 由P20 腳軟件模擬時(shí)鐘信號輸入; DIN 是數(shù)據(jù)串行輸入端, 控制數(shù)據(jù)通過該引腳輸入; X+ 、Y + 、X- 、Y - 是接觸點(diǎn)坐標(biāo)數(shù)據(jù)輸入端; INT是中斷引腳, 用于通知MCU 有觸摸事件發(fā)生, DOUT 將轉(zhuǎn)換后的觸摸位置數(shù)據(jù)串行輸出到MCU。
3 LCD 顯示的程序設(shè)計(jì)
3. 1 指令、數(shù)據(jù)的讀寫
通過對LCD模塊的RS引腳設(shè)置1或0 值, 即可實(shí)現(xiàn)處理器和LCD之間數(shù)據(jù)或指令的傳送。當(dāng)設(shè)定RS= 1, 傳遞的是數(shù)據(jù)信號; 設(shè)定RS= 0, 傳遞的是指令信號, 模塊的D8~ D15端口接收到的數(shù)據(jù)(即高8位)代表寄存器號, D0~ D7接收到的是控制指令。部分子程序如下:
3. 2 字符、漢字及顏色的顯示
可調(diào)用以上子程序方便地向LCD模塊發(fā)送控制命令和顏色信息。T32QM 6450模塊共有158 個(gè)寄存器, 通過調(diào)用WriCom 函數(shù)可向相關(guān)寄存器寫入控制命令, 然后調(diào)用WriData寫入2字節(jié)的顏色信息, 其RGB格式為: 紅色為高5位( B it15~B it11), 綠色為中間6位( B it10~ B it5), 藍(lán)色為低5位( B it4~B it0)。經(jīng)以上操作, 即可在指定位置或區(qū)域顯示色彩、字符、圖象等。如要在屏上坐標(biāo)為(X, Y) 的點(diǎn)以顏色Co lo r顯示一個(gè)字符或漢字, 只要知道其點(diǎn)陣數(shù)組, 在每個(gè)要顯示的點(diǎn)調(diào)用W r iDa ta(Color)即可。圖片的顯示原理類似, 用轉(zhuǎn)換工具將圖片轉(zhuǎn)換成C格式的數(shù)組文件即可。下例為顯示字符的程序:
3. 3 滾動(dòng)顯示畫面
要實(shí)現(xiàn)指定區(qū)域的畫面的滾動(dòng)顯示效果, 可以通過設(shè)置寄存器R75~ R80實(shí)現(xiàn), 其中寄存器R75、R76用于設(shè)置滾動(dòng)區(qū)域的起始行; R77、R78設(shè)置畫面的范圍, 即要滾動(dòng)顯示的行數(shù);R79、R80設(shè)置每次滾動(dòng)的行數(shù), 即步長。要注意的是, 步長的設(shè)置并不是一勞永逸的, 因?yàn)檫@里的步長是相對于滾屏初始化設(shè)置時(shí)的狀態(tài)而言的, 并非相對于上一次滾屏動(dòng)作而言。圖2舉例說明了滾屏的設(shè)置及演示效果。
圖2 滾屏的設(shè)置及過程演示
圖2所示過程的C程序如下:
如果按照上述程序調(diào)試, 則畫面滾動(dòng)較快, 效果不明顯。
實(shí)際應(yīng)用時(shí), 可以結(jié)合定時(shí)器, 每隔一定時(shí)間改變一次寄存器R79、R80的值, 一般是按遞增的等差數(shù)列賦值,可以獲得很好的視覺效果。所賦最大值不能超過319, 因?yàn)槠聊蛔畲笾挥?20行; 當(dāng)所賦值為319, 并且R75、R76所賦值為0時(shí), 可實(shí)現(xiàn)全屏畫面的滾動(dòng)顯示。
4 結(jié)束語
該顯示系統(tǒng)調(diào)試完成后, 通過串口和GPS 模塊連接, 可以實(shí)時(shí)顯示經(jīng)度、緯度、時(shí)間等信號, 顯示效果良好。文中給出的子程序的形參多為2 字節(jié)的整型值, 可直接用于16位、32位單片機(jī), 兼容性強(qiáng), 為其在便攜式系統(tǒng)中的應(yīng)用提供了一種方法。
評論