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