液晶顯示器件獨具的低壓、微功耗特性使它可以直接與大規模集成電路結合開發出一系列具有便攜顯示功能的產品,再加之其顯示信息量大和接口方便等優點,現在已被廣泛應用于計算機和數字式儀表等領域,成為測量結果顯示和人機對話的重要工具。本文方案選用SMC0820E液晶顯示模塊作為顯示器件。為使LCM在不同的溫度下有較好顯示效果,還引入數字電位器X9313實現其溫度補償電路,有效控制LCM偏壓輸入。本文在介紹SMC0820E和X9313的基礎上,討論了兩者的硬件接口電路及軟件編程。 液晶顯示模塊SMC0820E SMC0802E標準字符點陣型液晶顯示模塊,采用點陣型STN(Super Twisted Nematic)液晶顯示器,可顯示2×8西文字符,字符尺寸為2.96mm×5.56(W×H)mm,內置HD44780接口型液晶顯示控制器,可與MCU單片機直接連接,廣泛應用于各類儀器儀表及電子設備。 1 主要技術參數 工作電壓:4.8~5.2V; 工作電流:2.0mA(5.0V); 工作溫度:-30~+80℃; 接口方式:并行接口。 2 溫度特性 液晶既具有晶體的雙折射性又具有液體的流動性,只有在一定的溫度范圍內才呈現液晶態,且在液晶態溫度范圍內,其特性也隨溫度變化而變化,這一特性對STN型LCD尤其重要。因此,LCD的特性與環境溫度密切相關。溫度低時,LCD的透射比就會降低,引起圖像模糊;溫度高時,又會產生嚴重的交叉效應。為保證液晶顯示能在較寬的溫度范圍內正常工作,驅動電路的溫度補償是必不可少的。本方案引入數字電位器X9313進行溫度補償,可通過控制LCM的偏壓輸入使其保持穩定的對比度。通過實驗,可得本文選用的液晶顯示模塊偏壓輸入的溫度特性,該溫度范圍適合正常工作環境的要求,具體數據如表1所示。 由表1可知,對LCM偏壓輸入的控制分為兩部分:常溫和低溫。為得到低溫情況下詳細的溫度特性,對表1中數據進行三次樣條曲線擬合,可以得到該區間內任一溫度對應的偏壓輸入值,擬合曲線如圖1所示。 圖1 LCM溫度特性擬合曲線 數字電位器X9313 數字電位器屬于模擬/數字混合信號產品,是一種步進可調電阻。其輸入為數字量,輸出為模擬量,是一種特殊的數/模轉換器。但其輸出量并非電壓或電流,而是電阻值或電阻比率,故亦稱之為電阻式數/模轉換器。 1 性能特點 數字電位器與機械電位器相比,具有許多優點,具體性能優點如下: (1)采用集成電路工藝制成的,徹底解決了因滑片磨損而造成接觸不良的問題。 (2)很容易與單片機或計算機接口,為實現批量產品的自動調節創造了條件。 (3)具有存儲設置或數據的記憶功能。下次通電時能自動恢復上次操作時的存儲位置。 (4)重復性好、可靠性高、密封性好、噪聲低、不容易受污染、防潮濕、抗振動、抗沖擊、基本不受溫度、濕度、壓力等環境因素的影響,使用壽命長,能提高系統的可靠性。 2 工作原理 X9313為基于三線加/減式接口的單路32抽頭非易失性數字電位器。該接口屬于異步串行接口,通過三根線來傳送控制信號,包括片選信號(CS)、滑動方向控制信號線(U/D)和滑動端控制信號線(INC,又稱計數脈沖輸入信號線)。X9313有多種工作模式可供選擇,用戶通過不同狀態下控制信號,選擇所需的工作模式,具體內容可參見X9313數據手冊。 3 硬件接口電路 液晶顯示模塊SMC0802E與微控制器的接口有直接訪問和間接訪問兩種。直接訪問方式就是把LCM作為存儲器或I/O設備直接掛在單片機總線上;間接訪問方式就是把LCM與單片機的某個I/O口連接,單片機通過對該I/O口的操作間接實現對LCM的控制。本方案采用直接訪問方式,LCM的讀寫和片選信號也由MCU直接控制。數字電位器X9313的控制端CS、U/D、INC分別與MCU的三個I/O口連接,由MCU直接控制;輸出端通過兩個3kΩ分壓電阻與SMC0802E的VEE和V0連接,VEE為液晶顯示模塊負壓輸出,經過電位器分壓,得到所需偏壓輸入V0,調節LCM對比度。NPN型三極管的E極接入MCU的I/O口,C極接入SMC0802E的BLK引腳,通過MCU輸出高低電平,控制三極管的導通,從而控制LCM背光的打開和關閉。具體硬件接口電路如圖2所示。 圖2 硬件接口電路 4 程序設計 軟件采用嵌入式C語言開發,溫度補償程序流程圖如圖3所示。 圖3 溫度補償程序流程圖 數字電位器程序主要包括三個部分:調節阻值至零,調節阻值至所需位置和保存阻值。根據X9313的模式選擇和時序波形圖,控制MCU的I/O口輸出,選擇數字電位器不同的工作模式,輸出不同的阻值,調節LCM偏壓輸入。具體通用程序如下: void X9313_SetVol(uchar R_Num) { uchar i; _DINT(); P2OUT |= BIT0; _NOP();_NOP(); P2OUT |= BIT1; _NOP();_NOP(); P2OUT &= (~BIT0); _NOP(); //調節阻值到零 P2OUT &= (~BIT2); _NOP();_NOP(); for(i=0;i{ P2OUT |= BIT1; Delay(2); P2OUT &= ("BIT1); Delay(2); } //調節阻值到R_Num P2OUT |= BIT2; _NOP();_NOP(); for(i=0;i{ P2OUT |= BIT1; Delay(2); P2OUT &= (~BIT1); Delay(2); } //保存電阻值 P2OUT |= BIT1; Delay(2); P2OUT |= BIT0; Delay(2); P2OUT |= BIT2; Delay(2); P2OUT |= BIT1; _EINT(); } 數字電位器輸出電阻分辨率為總阻值的1/32,程序中R_Num表示模擬開關的位置,電位器輸出電阻即為總阻值的R_Num/32。void Delay(int x)為延時函數,延時時間約Xms。 結語 將設計好的系統放入溫度箱,進行溫度實驗,結果表明:在不同溫度下,數字電位器輸出不同的電阻值,液晶顯示模塊對比度穩定,顯示良好。 |