引言 目前,智能儀表常用的顯示設備有發光二極管顯示器LED、液晶顯示器LCD等,但是由于LED不能顯示復雜字符、LCD不宜在暗室中使用的缺點,無法滿足智能儀表對顯示的更高求;而真空熒光顯示屏VFD具有亮度高、可調節、顯示圖案靈活的優點,在智能儀表中得到了廣泛的應用。本文以 Samsung公司的128S64AA1VFD顯示模塊為例,介紹在基于51系列單片機的智能儀表中的應用。 1 顯示模塊的結構以及與單片機的接口 1.1 128S64AA1的基本結構 該模塊提供有128×64點陣,包括VFD顯示屏、VFD驅動電路、DC/DC轉換器以及顯示控制器;供電電壓是12V,邏輯電壓是5V;亮度可以由軟件來控制。 其接線端子有供電端和接口端兩個。其中接口端的引腳說明如表1所列。 表1 接口端引腳說明
外部接口簡單易用,表1中所列的30根接口線的功能分別為:8根數據線D0~D7和于傳輸數據及亮度控制信號;11根地址線用于指定數據寫入地址,其中A0~A7指定列數,A8~A10指定行數;9根控制線中,BRAD為選擇寫數據模式與亮度控制模式,WRITE為寫控制信號,READY為模塊寫數據允許,CLEAR為清屏信號,DSPE為顯示允許信號,WP為選擇寫數據頁數,DP為顯示頁數;2根地線為從電池和邏輯地。 1.2 128S64AA1與單片機的接口 圖1是128S64AA1模塊與51系列單片機的接口示意圖。其中P1口作為VFD所需的控制線,P0和P2作為地址線和數據線。 2 顯示模塊的控制和操作 該模塊有清空方式(Clear Mode)、寫數據方式(Write Mode)和亮度控制方式(Dimming Mode)三種工作方式,對應的操作時序如圖2所示。 圖 2所示的操作時序清晰示意了三種工作方式下對VFD模塊的控制和操作過程。 (1)清空方式 將CLEAR端置低電平,此時由WP0和WP1所選擇的RAM清空。當清空完畢時,READY輸出低電平。此方式的優先級最高,即使READY 的輸出為1,RAM仍波清空。 用C51實現的RAM清空的函數為: void VFD_clear(void) {P1^2=0; //置清空RAM模式 P1^2=1; P1^1=0; do {} while(P1^1==1); //等待清空響應 } (2)寫數據方式 當DSPE為高電平,BRAD為高電平時,通過寫操作可將待顯示的數據寫入由WP0和WP1所選擇的RAM;當數據寫入完畢,READY輸出低電平,此時可以繼續寫入下一個數據。在此工作方式中,為了使VFD內部的RAM按照行排列地址連續,以便于軟件編程,在實際設計時可將地址A8~A10接 VFD的A0~A2,以用于選擇點陣的行數;而將地址線A0~A7接VFD的A3~A10,用于選擇點陣的列數。 在寫工作方式中,應包括以下幾個操作步驟: ①置寫數據模式; ②置顯示允許; ③選擇寫數據頁數; ④寫待顯示數據; ⑤選擇顯示頁數。 因此,可將實現此功能的C51程序設計如下: void WrChar(uchar xdata *addr,uchar code *codename,uchar count) //addr為字的起始地址,count為字符個數 {uint i=0; uchar col; for(col=0;col do {} while(P1^1==1); } } //寫數據函數 P1^0=1; //置寫數據模式 P1^3=1; //置顯示允許 P1^4=0; //選擇寫第0頁 P1^6=0; //選擇寫第0頁 WrChar(0x1000,page0[],64); //寫數據,從1000開始按行寫64個字符編碼,存放于page0[]數組中 P1^5=0; P1^7=0; //選擇顯示第0頁 (3)亮度控制方式 當WRITE輸入有效信號,BRAD為低電平時,D0和D1兩位的值決定顯示的亮度。初始化時的亮度為100%,所需亮度與D1、D0兩位數據的關系如表2所列。 表2 亮度控制表
因此,若要控制顯示亮度,可用下列C51程序實現: uchar xdata *p; p=0x00; (*p)=0x02; //控制亮度為75% 3 應用實例 某測控裝置需顯示包括概貌、溫度控制、pH值控制以及實時同線在內的一系列圖文信息,且顯示要求較高,要求在光線不足的條件下保證其亮度。為此,選用128S64AA1這一VFD模塊作為顯示器件。該系統人機交互部分包括顯示模塊以及四個按鍵:確認鍵、參數修改鍵、光標移動鍵及返回鍵。 開機時要求顯示公司名稱,待按下確認鍵后,再進入主菜單顯示。此時,用戶可通過按光標移動鍵來選擇不同的菜單頁面,待確認鍵按下后進入相應的畫面。在次級頁面,按光標移動鍵和確認鍵,可以完成實時值和實時曲線的顯示以及相應參數的修改和保存;修改完成后,按返回鍵返回到主菜單。 下面以主菜單畫面中光標移動的子程序為例,簡要介紹在鍵盤按下后,VFD上顯示信息變化的過程。菜單包括7個菜單項;概貌、溫度控制、pH值控制、轉速消泡補料、pH DO的電極標定、pH Temp實時曲線和DO Agit實時曲線。為了簡化程序設計,光標采用反寫字符的方式,簡單直觀。該子程序的框圖如圖3所示(SemiPg為菜單號),VFD顯示的2幅主菜單內容如圖4所示。 當光標移動鍵按下后,先判斷光標的位置(SemiPg=?),然后正寫光標所在的位置,恢復原貌;SemiPg加1(保持SemiPg在1~7 內),然后反寫SemiPg菜單項,使光標移動到下一項。此時按下確認鍵,就可根據SemigPg的值進入光標所在的下一級菜單。 以上僅是128S64AA1模塊在實際測控裝置中的一個信息顯示實例。在實際裝置中,該模塊還實現了實時數據顯示、設定參數修改顯示、實時數據曲線顯示功能。 結語 VFD顯示模塊是一種集顯示、控制與驅動于一體的顯示器件,其最大特點是自身發光,特別適合在光線不足的條件下實現圖文信息顯示。由于該模塊亮度高,可滿足在暗室中顯示的要求,而且性能可靠,顯示美觀。另外,VFD模塊還有接口方便,編程簡單等優點,可被廣泛應用在家用電器、辦公自動化設備、工業儀器表及汽車等各種領域中。 參考文獻 1. 馬忠梅 單片機的C語言應用程序設計 1997 2. 譚浩強 C 程序設計 1999 3. SAMSUNG SPECIFICATION for GRAPHIC TYPE VFDMODULE 作 者:華東理工大學 曲金鵬 龔建輝 凌志浩 來 源:單片機與嵌入式系統應用2003(10) |