文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)03-0054-03
傳統(tǒng)的單色智能儀表升級(jí)成彩色界面顯示時(shí),彩色顯示字符和圖像的方法與單色不同,,且單色顯示時(shí)所用的8 bit數(shù)據(jù)總線與低端MCU難以完成彩色液晶顯示,,以至于有時(shí)必須重新設(shè)計(jì)電路,嚴(yán)重增加了升級(jí)產(chǎn)品的成本,。另外,,智能儀表工作時(shí),往往要求實(shí)時(shí)曲線動(dòng)態(tài)顯示以便監(jiān)視設(shè)備的工作情況,。因此,,如何設(shè)計(jì)友好的人機(jī)交互界面的問題日漸突出。
本文以微控制器STC12C5A16S2為核心,,使用OCM480272T430液晶模塊開發(fā)了基于彩色TFT液晶模塊的智能儀表界面,。在研究彩色圖像轉(zhuǎn)換像素矩陣的原理基礎(chǔ)上,采用8 bit總線方式實(shí)現(xiàn)了靜態(tài)與動(dòng)態(tài)圖像的顯示,,可以達(dá)到16 bit真彩色的圖像顯示效果,。另外還研究了中西文混合字符串的顯示方法。為了更有效地對(duì)數(shù)據(jù)實(shí)時(shí)性監(jiān)控,,研究了實(shí)時(shí)曲線的動(dòng)態(tài)顯示和刷新方法,。并用實(shí)例驗(yàn)證了方法的可行性。
1 MCU與彩色液晶顯示器的接口設(shè)計(jì)
1.1 MCU的選擇
STC12C5A16S2是宏晶公司推出的一款高性能增強(qiáng)型51系列微控制器,,它以單時(shí)鐘/機(jī)器周期(1T)模式運(yùn)行,,指令系統(tǒng)與傳統(tǒng)8051完全兼容,但運(yùn)行速度是8051的8~12倍,。其I/O口兼容傳統(tǒng)8051的準(zhǔn)雙向口/弱上拉模式,,同時(shí)增加了強(qiáng)推挽/強(qiáng)上拉、單輸入/高阻,、開漏等模式,,系統(tǒng)設(shè)計(jì)時(shí),用戶可以根據(jù)需要對(duì)I/O模式設(shè)定[1],。傳統(tǒng)的智能儀表中MCU主要以C51系列單片機(jī)為主,,STC12C5A16S2豐富的硬件資源、高速運(yùn)算性能,,向下可以兼容傳統(tǒng)低端51系列單片機(jī),,向上可以支持智能儀表功能擴(kuò)展。其良好的性價(jià)比,,可以滿足各種智能儀表核心升級(jí)的要求,。
1.2 OCM480272T430-1B彩屏顯示模塊
OCM480272T430-1B是一款480×272的TFT彩屏LCM,采用RA8870控制器,,支持2D引擎與幾何圖形加速的文字,、圖像以及圖文混合模式,僅對(duì)寄存器操作就可以繪制直線,、矩形以及圓,。該模塊內(nèi)置有CGROM可顯示ISO8859-1/2/3/4字形,外掛字庫可顯示中文繁,、簡(jiǎn)字體,。OCM480272T430提供GB-2312及BIG-5編碼的16×16點(diǎn)陣字庫,內(nèi)嵌多種文本顯示效果處理,,例如:1~4倍的水平和垂直方向的獨(dú)立放大,,90°、180°,、270°文字旋轉(zhuǎn)顯示功能,。另外,該模塊提供文字光標(biāo)和32×32像素的圖形光標(biāo)功能[2],。在OCM480272T430 LCM內(nèi)部,,RA8870控制器直接通過DMA方式[3],不需要MCU讀取顯存資料,,顯示速度快,、畫面流暢,不會(huì)產(chǎn)生拖影,、“瀑布”等現(xiàn)象干擾,,為實(shí)時(shí)數(shù)據(jù)顯示提供了實(shí)時(shí)刷新速度,圖像可靠,。此外,,模塊本身的文字、圖形處理功能可以有效地簡(jiǎn)化代碼,,使在應(yīng)用系統(tǒng)中選擇小容量的MCU實(shí)現(xiàn)圖文混合的實(shí)時(shí)數(shù)據(jù)顯示成為可能,。因此,OCM480272T430-1B適合用于儀表數(shù)值監(jiān)視和曲線顯示,。
1.3 MCU與LCM的接口設(shè)計(jì)
MCU與LCM的接口電路如圖1所示,。LCM以8 bit數(shù)據(jù)總線模式與MCU的P0口相連,此時(shí),,P0口作為傳輸數(shù)據(jù)的輸入/輸出口,,P2.0~P2.5以及P3.2、P3.3作為MCU與LCM的聯(lián)絡(luò)控制信號(hào),。在系統(tǒng)中,,P0口設(shè)置為準(zhǔn)雙向口模式,。
2 字符串的顯示
在智能儀器儀表中,字符顯示(包括漢字和西文字符)常被用于參數(shù)顯示,、操作提示,、報(bào)警、菜單以及幫助信息,。LCM提供了漢字和4種西文字庫,,支持多種字體及處理效果,西文字型點(diǎn)陣為8×16半型字,,漢字為16×16宋體全型字,,其顯示流程如圖2所示。
不同于單色顯示,,彩色LCM在顯示時(shí),,首先要開辟顯示區(qū)域,顯示區(qū)域的大小可以根據(jù)顯示內(nèi)容多少確定,,其范圍不可超過480×272,;然后,在已設(shè)定的顯示區(qū)域內(nèi)定位字符的顯示位置,。
LCM被復(fù)位后,,默認(rèn)為圖形模式,在字符顯示之前,,須開啟文本模式,,它由LCM內(nèi)存寫入控制寄存器0(MWCR0)設(shè)定[3]。LCM背景色設(shè)定有2種形式:一種是BET背景色(64 K色),,另一種是文本背景色(256色),。一般情況下使用文本背景色。LCM嵌入了多種文本顯示效果處理方式,,通過字型控制寄存器1(FNCR1)的設(shè)定來實(shí)現(xiàn)[3],,擬定文本顯示效果一旦設(shè)定完畢,LCM自動(dòng)實(shí)現(xiàn)顯示效果處理,。
由于在文本模式下,,LCM對(duì)西文采用ASCII碼方式提取字符編碼,而對(duì)漢字字符采用GB-2312內(nèi)碼方式提取漢字字型編碼,。因此,,字符串顯示時(shí),須檢查被寫入數(shù)據(jù)的第一個(gè)字節(jié),,如果此字節(jié)小于80 H時(shí),,則把這次數(shù)據(jù)當(dāng)成半型字(ASCII碼)來譯碼;如果此字大于80 H時(shí),,則當(dāng)成全型字(漢字)來譯碼,,顯示漢字時(shí),,需要設(shè)定關(guān)閉ASCII碼模式。
3 圖形及曲線的顯示
智能儀器儀表參數(shù)常采用曲線方式顯示,,以便觀察參數(shù)的變化軌跡,。另外,在系統(tǒng)啟動(dòng)初始化時(shí),,常常采用一個(gè)引導(dǎo)界面,如廠家名稱和徽記,。前一種模式需要根據(jù)參數(shù)值的大小實(shí)時(shí)修正顯示位置,,是一種動(dòng)態(tài)圖形顯示。而后一種只是把事先準(zhǔn)備的圖形映射到顯示模塊上,,是一種靜態(tài)顯示,。
3.1 圖形靜態(tài)顯示
圖1所示的MCU與LCM連接采用8 bit數(shù)據(jù)總線方式。LCM在8 bit數(shù)據(jù)總線模式下,,若以256色格式輸出,,像素點(diǎn)的色彩信息可在一個(gè)發(fā)送周期內(nèi)完成,如果以多于256色格式輸出,,則需分2個(gè)周期發(fā)送[3],。在圖片顯示之前必須把圖片轉(zhuǎn)換成像素信息,即把圖片中每一個(gè)像素點(diǎn)轉(zhuǎn)換成用RGB表示的色彩編碼信息,。以16 bit真彩色80×80像素的圖片為例:1個(gè)像素用2 B表示,,經(jīng)過轉(zhuǎn)換后的編碼矩陣為160×80維的單字節(jié)矩陣。在LCM顯示時(shí),,從用戶指定存儲(chǔ)位置開始,,依次提取矩陣元素至顯示存儲(chǔ)區(qū)。
與字符顯示的文本模式不同,,圖像顯示需要使用圖形模式,。在圖形模式中,控制器將輸入源開放,,即將設(shè)置存儲(chǔ)位置與代碼長(zhǎng)度的權(quán)限交給用戶自行設(shè)定,。顯示靜態(tài)圖像時(shí),首先開辟顯示區(qū)域,,開啟圖形模式,,選定顯示的起始坐標(biāo),再將編碼矩陣按行方式寫入到選定的工作窗口中顯示,。使用靜態(tài)圖文混合方式顯示靜態(tài)畫面的程序流程圖如圖3所示,。
在應(yīng)用程序運(yùn)行之前要對(duì)LCM進(jìn)行初始化,以保證LCM能處在正常工作中,。LCM復(fù)位是對(duì)LCM內(nèi)部控制器進(jìn)行一次重啟,,使其內(nèi)部寄存器處于缺省的狀態(tài),。初始化液晶是對(duì)LCM內(nèi)系統(tǒng)時(shí)鐘以及相關(guān)內(nèi)部寄存器進(jìn)行設(shè)置。另外,,液晶的屏幕亮度可以在PWM背光設(shè)定,。設(shè)定背景色時(shí),把全屏作為一個(gè)顯示區(qū)域創(chuàng)建,,然后以設(shè)定需要的背景色清除顯存,。否則,顯示時(shí)會(huì)出現(xiàn)屏幕背景花屏的現(xiàn)象,。
文字處理有2種實(shí)現(xiàn)方法:(1)如果開啟文本模式,,可不用開啟工作窗口,直接設(shè)定起始坐標(biāo),,給定文本的輸入位置,。圖3采用此方法。(2)如果不開啟文本模式,,則必須指定顯示區(qū)域,,以顯示放大后的字體,同時(shí)設(shè)定起始坐標(biāo),、給定文本的輸入位置,。此外,對(duì)于單圖層與其他窗口無相交面積的情況可以不開背景穿透,。
3.2 圖形動(dòng)態(tài)顯示(實(shí)時(shí)數(shù)據(jù)的曲線顯示)
在智能儀表中,,利用曲線動(dòng)態(tài)顯示更能方便地對(duì)數(shù)據(jù)實(shí)時(shí)性監(jiān)視、突出樣本曲線的變化規(guī)律,。
顯示區(qū)域刷新方法有2種:(1)清屏刷新,。當(dāng)數(shù)據(jù)顯示到達(dá)曲線顯示區(qū)域最大邊界時(shí),將顯示區(qū)域內(nèi)的像素全部清除,,用于載入新的像素顯示,;(2)滾動(dòng)刷新。將顯示刷新的時(shí)間設(shè)置成滾動(dòng)時(shí)間,,當(dāng)?shù)竭_(dá)滾動(dòng)時(shí)間時(shí),,在滾動(dòng)區(qū)域內(nèi)將原像素按一定的偏移值移動(dòng),將滾動(dòng)后的像素清除同時(shí)載入新的像素,。這樣,,顯示區(qū)域可以逐步得到新的數(shù)據(jù)顯示。與清屏刷新相比,,滾動(dòng)刷新更有利于觀察新舊數(shù)據(jù)的聯(lián)系和對(duì)比,,因此選取滾動(dòng)刷新實(shí)現(xiàn)曲線的實(shí)時(shí)顯示。
實(shí)現(xiàn)滾動(dòng)刷新需要設(shè)定滾動(dòng)區(qū)域,、滾動(dòng)偏移值與滾動(dòng)時(shí)間,。滾動(dòng)區(qū)域用于指定滾動(dòng)的范圍,,避免影響其他屏幕信息。滾動(dòng)的偏移值用于指定滾動(dòng)的幅度和方向(水平方向和垂直方向),。滾動(dòng)時(shí)間可由定時(shí)器定時(shí)中斷,,或者在滾動(dòng)區(qū)域內(nèi)設(shè)定一個(gè)滿幅值,當(dāng)像素到達(dá)該值時(shí),,區(qū)域開始滾動(dòng)刷新,。
根據(jù)實(shí)際采樣時(shí)間,可以設(shè)計(jì)出對(duì)應(yīng)數(shù)值的網(wǎng)格線以方便對(duì)數(shù)據(jù)的監(jiān)測(cè),。更改相應(yīng)的參數(shù)就可以得到任意寬度的網(wǎng)格反映采樣時(shí)間的變化,。實(shí)時(shí)曲線顯示的程序流程如圖5所示。圖6為實(shí)時(shí)數(shù)據(jù)曲線顯示界面,,白色為主界面顏色,,藍(lán)色為顯示區(qū)域工作窗口,,滾動(dòng)區(qū)域與工作窗口大小一致,。滾動(dòng)偏移值為滾動(dòng)區(qū)域水平方向的一半。 本文以微控制器STC12C5A16S2為智能儀表核心,,利用OCM480272T430模塊開發(fā)了基于彩色TFT液晶模塊的智能儀表界面,。采用8 bit總線方式實(shí)現(xiàn)了基于彩色液晶模塊的靜態(tài)與動(dòng)態(tài)圖像的顯示方法實(shí)現(xiàn)16 bit真彩色圖像的顯示,滿足了傳統(tǒng)智能儀表升級(jí)的需要,。
字符串顯示時(shí),,通過調(diào)用字符庫,可根據(jù)需要添加文本處理功能,,實(shí)現(xiàn)顯示字符的放大,、旋轉(zhuǎn)等;曲線顯示時(shí),,通過建立測(cè)量參數(shù)與顯示模塊像素之間的坐標(biāo)轉(zhuǎn)換關(guān)系,,不斷更新曲線末端坐標(biāo),用繪制直線命令實(shí)現(xiàn)實(shí)時(shí)曲線的顯示,。另外,,利用滾屏方法可實(shí)現(xiàn)實(shí)時(shí)曲線的動(dòng)態(tài)刷新,為基于彩屏LCM的智能儀表人機(jī)交互界面設(shè)計(jì)提供了有效的實(shí)現(xiàn)方法,。
參考文獻(xiàn)
[1] STC12C5A60S2系列單片機(jī)器件手冊(cè)[DB/OL].URL:http: //www.stcmcu.com/datasheet/stc/STC-AD-PDF/STC12C5A-60S2.pdf, 2011-10-17.
[2] OCM480272T430-1B彩屏帶觸摸屏說明書[DB/OL].URL:http://www.gptlcm.cn/CN/list.asp?proname=OCM480272-T430-1B,,2011-10-17.
[3] RA8870文字/圖形 TFT LCD控制器規(guī)格書[DB/OL]. URL:http://www.raio.com.tw/S%20version/s_product.8870. htm,2011-10-17.