段式液晶驅動_第1頁
段式液晶驅動_第2頁
段式液晶驅動_第3頁
段式液晶驅動_第4頁
段式液晶驅動_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

【1021-2】用SH79F32驅動靜態(tài)段式液晶顯示器/viewthread.php?tid=5261.引言如今,液晶顯示器在各種產品中得到了極其廣泛的應用,其身影已遍及各行各業(yè)以及社會生活的各個角落。其中,段式液晶更是工控產品和部分小家電或消費類產品開發(fā)中經常用到的器件。隨著技術的進步,各種驅動芯片的出現和發(fā)展也使液晶的使用變得輕松、快捷,而且越來越多的"廠商順應市場的需求和趨勢,將驅動集成到各種單片機中,更加簡化了開發(fā)人員的設計工作。本文將試著探討如何應用SH79F32集成的LCD驅動器,驅動各種段式液晶顯示器,使其適應盡可能多的應用場合,并以靜態(tài)驅動型的段式液晶EDS815為例,演示如何使用其液晶驅動功能。作此拙文,不當之處,還望各位批評指正。2.SH79F32的液晶驅動特性SH79F32的LCD驅動器包含一個控制器,一個電壓發(fā)生器,一個占空比發(fā)生器,及4/5/6個COM驅動管腳和32/31/30個SEG驅動管腳。驅動器可編程為三種驅動模式:1/4占空比和1/3偏置電壓(4X32),1/5占空比和1/3偏置電壓(5X31),1/6占空比和1/3偏置電壓(6X30)。另外,它還提供兩種工作模式:電容型和SLP型(即低功耗模式)。SH79F32內建一個穩(wěn)壓源可以給LCD供電,如果單片機的電源超過3.2V,內部穩(wěn)壓源會產生穩(wěn)定電壓2.9V給驅動器提供電源;如果電源電壓低于3.2V,內部穩(wěn)壓源輸出低于2.9V,一般的3V液晶將不能顯示在最佳狀態(tài)(一些低壓型的液晶除外)。根據技術規(guī)格書的描述,當電源VDD=3.6V?5.5V時,應該在代碼選項中打開LCD穩(wěn)壓源,同時VP3引腳要接一個電容(47pF)到電源地;當3.0V<VDD<3.6V時(3.0V是單片機的額定最低工作電壓),則可以在代碼選項中關閉LCD穩(wěn)壓源,VP3則要改為與VDD短接,且不需要上面提到的47pF電容。(注:芯片手冊第8.14部分的表格第4行第2列指出,代碼選項的OP_LVREN/OP_LVRLE為1/0時,當VDD>3.6V時為開,此時LCD驅動電壓是2.9V,VDD<3.6V時為關,此時LCD驅動電壓是VDD,似乎是說當如此設置時,LCD電源會根據實際電壓自動進行切換,如果是這樣,那么這個選項配置還分出那四種情況就沒有意義了,因為能自動切換了還需要燒寫配置嗎,但如果不是這樣,那么明明最后一列注著應用場合“VDD<3.6V”了,這里第二列這么寫是什么意思呢?這其中的含義,我始終沒想通。另外,8.1.3的上面那副示意圖的右側注釋似乎有誤,個人以為應該是“VDD=3.6V-5.0Vapplication”。)在應用中,一般地,電源系統(tǒng)要么是5V左右,要么就是3.3V左右,而且上下變動范圍均在1V以內,變化范圍跨越3.0V?5.5V的不多見,即使有(比如串聯(lián)電池),也往往會對單片機的電源進行固定值穩(wěn)壓以降低功耗及提高準確度、穩(wěn)定性°5V的情況可以選擇打開穩(wěn)壓源,3.3V(即3.2V?3.6V之間)似乎有些難以選擇,如果打開,當電壓小于3.2V時,顯示效果可能不理想,如果不打開,當電壓大于3.2V時又可能對液晶物理本身不利。具體問題還得具體分析,假設最高電壓可能達到甚至超過3.6V(比如充滿電的鋰電池)且不對單片機電源進行穩(wěn)壓,另外,液晶廠家認為這個電壓對液晶性能及壽命有影響(有時候雖不會損壞,但可能會出現鬼影),那么為了保護LCD就必須降壓,也就需要打開穩(wěn)壓源;如果液晶完全可以承受3.6V且不出現鬼影(根據個人以往使用經驗,普通3V字段液晶基本會出現重影),那么可以關閉穩(wěn)壓源,這樣基本就能保證液晶在整個工作范圍內正常顯示;如果單片機電源電壓被穩(wěn)在3.3V左右,也就是說最高3.3V左右,那么要是打開穩(wěn)壓后LCD在整個工作電壓范圍內顯示效果不佳,可以考慮關閉穩(wěn)壓源而直接用VDD作為LCD的電壓源(目標板其實就是這么使用的),或者不關閉并嘗試向液晶制造廠商定制工作點低一些的液晶片。順便提一下,Keil的下載程序選項中選擇JET51的電壓與LCD穩(wěn)壓器的打開選擇沒有必然的關系,它只是LCD穩(wěn)壓器配置的一個應用實例,莫將3.3V/5V作為用戶自己的應用系統(tǒng)打開LCD穩(wěn)壓源與否的判定條件。LCDDriver提供了兩種工作模式,除了普通電容型工作模式,還有一種低功耗工作模式SLP。實際上,所謂SLP模式,也是電容型的,只是它比電容型普通工作模式省電,但這樣的描述多少讓人乍一看以為是有別于電容型的另一種模式。(只支持電容型,也是一個美中不足。)由于是電容型,使用LCD功能時VP1引腳和VP2引腳必須連接0.川F的電容,CUP1引腳和CUP2引腳也必須用0.川F相連。此外,不論是否打開LCD的電壓泵,這兩只電容是否都必須接,或者這兩只電容的具體作用,技術規(guī)格書中未作闡述,穩(wěn)妥起見,對于低壓工作的系統(tǒng),還是打開為宜。其他參數及用法可參閱技術規(guī)格書以及其他應用文檔的描述,詳見參考資料。3.EDS815數碼液晶顯示器EDS815是四位8數碼段式液晶顯示器,靜態(tài)驅動,驅動電壓3.0V?5.0V,視角6:00。其外形圖及真值表如下:

S9.86枷】ITI12345S9.86枷】ITI123456799■1011121314smOCM1\IE1D1C1DP2E2D2G2CF3E30i5礙r7但俸力21整公2425株由點SWL3C3CP4£4D攵464A4F4GSBA3F3GeatFEW:Z930313233343536373S3&sm2D2A2F2/3\1日1A1F1G\QQT.n該液晶只有一個COM端,引腳1和40實際是短接在一起的,其他所有的字段都單獨連出引腳。在儀表中,這是一款比較常用的液晶屏。它的驅動可以用單片機的I/O口輔以若干門電路形成的脈沖信號來實現,比如CD4055,具體方法非本文重點,此處略。4.SH79F32驅動EDS815的可行性一般地,段型液晶的驅動有兩種方式:動態(tài)驅動和靜態(tài)驅動。所謂動態(tài)驅動顯示,就是像素電極排布呈矩陣或變形矩陣方式,需用時間分割掃描方式驅動;所謂靜態(tài)驅動顯示,就是每個像素均有單獨的引出電極,驅動期間要持續(xù)施加電壓。我們都知道,不論哪種驅動方式,都必須遵守的原則是:施加給液晶的應該是交流電場,并要求在這個交流電場中的直流分量越小越好,因為直流電場將導致液晶材料的化學反應和電極老化,從而迅速降低液晶材料的壽命。SH79F32支持4X32.5X31.6X30三種形式液晶驅動,且為1/3偏壓,這三種其實就是動態(tài)驅動方式。如果我們定制的液晶是4、5或6個COM端,而且SEG數目在32、31、30以內,可以方便地直接用SH79F32進行驅動。(如果能支持1/2偏壓,產品適用范圍會更廣。)但如果COM端只有3個,或者2個,抑或像上面提到的EDS815那樣只有一個呢?不煩從EDS815入手看看能否解決。前面已經說明,原則上,只要施加在像素上的電場是交流的且直流分量盡可能小,就能正常點亮液晶。從每個單獨的背電極(即某個COM端)來說,動態(tài)掃描時,與各個段腳形成的驅動信號也必須嚴格服從這個原則。那么,如果不考慮與其他背電極的分時掃描,該背電極也可以看作是間歇的脈沖靜態(tài)驅動,因此,該COM端的平均電壓也應該接近零,所以也應當能用于驅動靜態(tài)液晶,可能需要適當調整掃描的頻率。[本帖最后由banian于2009-12-1714:27編輯]收藏分享§2#banian口發(fā)表于2009-12-1714:20|只看該作者【續(xù)】banian我們可以用驅動波形圖來論證此設想,由于中穎的資料中沒有正常模式下的LCD驅動輸出波形示意圖,只好從合泰的資料中截取一副插圖來說明。(從示波器獲取圖形比較麻煩,實際波形與圖示基本吻合,而且圖示比實際波形好看。)注冊會員C-0M0閱讀權限20LCDsegmentsONCOM2sidelightedUID579帖子12技術27金錢42閱讀權限20LCDsegmentsONCOM2sidelightedNote:1/4duty,t/3bias,Ctype:'VAn3/2VLCD:"VB"MLCD."VC"VlCD如上圖示,以紅線所示的一個周期區(qū)間為例,假設VSS為電壓0,VC為電壓1,VB為電壓2,VA為電壓3,計算段腳與公共端之間的平均電壓,顯然,最終平均電壓為0。所以,符合交流驅動的要求。那么,只要根據實際顯示情況,調整驅動脈沖頻率(LCD時鐘參數),就能得到滿意的效果。對于SLP模式,照此推理,也應當可行,同時還能調整PLCON參數來實現對比度調節(jié)。在SH79F32目標板上實驗EDS815的軟、硬件設計為了驗證上面的設想,利用JET51、SH79F32目標板、EDS815液晶片來搭建試驗平臺。液晶引腳與單片機之間的具體接線如下圖,其他部分直接利用目標板,電路圖中略去。系統(tǒng)時鐘使用32.768kHz晶振,JET51電源選項為5V。為調試方便,隨便取了P2.4驅動一只綠光LED作為狀態(tài)指示??撮T狗及OVL暫不考慮。

CD■anLJECD楞~TUJE£53ST4DSEGS卯CD■anLJECD楞~TUJE£53ST4DSEGS卯SECTrnMBoSECI35DSEGIQSiSEG2QS2SEG23S3SEG2254SEO2355SEG24SCSEC2557SEC2.558SEG2759SEC23fiDSEG2Q6ISEG3062SEC-33£3£EG32ri4SEE4P5ECH7ZF].O3EO-L57F].!SEG19/P1.2SEC20^P].3SEGJ]^].-1SEEl/Pl.SSEG-23/P1.6SEG24/Pj.7£ECr25^PLI.Q甑tHmu.1SEO27/P0.23ECH.5-70.33ECH9-70.4FLT^SEJG30/PU.5PWP/P/SEG31iT0.6PV.M-VSE<;32^0.7ogoCl■:■□OO楞s一0寫孫XLCJCIC?SH79F32CI■WOW一<1#ICCM3/F46CCM3/PM5COMI/PM4CUPUP4.3CUP2iP4.2VP僑宵LVP2^0TW3.7MTWa6IMBUT+T】舊35CAL[WT0^F34]NT]^F3.3JMT0P32323130u?1CON!COMMCNCJFCMCHCLGIELFID1AIDPNCIE2GW口IFJC:2A2DPJECOL3D3G3C3F3DP3A口E3B目口40g4F迎4A40n—17SE.G21~f:~1SEC05355BCI3]2SSEI347J4SE-OJOSEg眉_32SE-O292?SEOSP5EGT1Q3LSE-G2i網§EG母J13OSE-G275EG91229SBG2rt23SEGLD132SSE-C2SETGL1H2TSEC2422EEGL21526SE-G235EGL3:lri25SEG2121SEGH1724SEG21SEGL1823SEGJ020SEGltilS32SEGIQSEGL7202LSEGIS]QisEDS815―]?程序很簡單,目的就是將LCD全屏點亮,流程圖略去。首先初始化I/O口,將相應引腳配置成SEG、COM功能,接著初始化LCD相關寄存器,最后打開點亮LCD,延時一定時間后再熄滅LCD(顯示空白,而非關閉LCD),再延時一定時間后再讓LCD全屏顯示,依此循環(huán)往復。因為JTAG口占用了SEG3?SEG6,所以用JET51調試時,有3個筆段和1個小數點沒有顯示出來。低功耗模式、對比度調節(jié)、LCD時鐘頻率調節(jié)等對顯示的影響非本文重點,此處就不做實驗比較了。另外,用下載程序的方式運行程序(可以參考我的第一篇體會的說明:【1021-1】JET51及SH79F32目標板用后感)的效果跟用調試模式運行程序的效果有差異,前者顯示有些模糊,不知道是否跟電源有關系,因手邊沒有合適的外接電源,此現象還有待查證,但個人認為應該沒問題。實物照片(調試模式運行程序)如下:程序分兩個版本,我首先用匯編的,因為匯編不容易錯,之后又寫了個C語言的,均編譯、調試及下載運行通過。因為程序量小,未考慮程序的優(yōu)化,只為實現目的而已,僅供需要的朋友參考。C版本程序如下:^include<CPU32.h>^include<intrins.h>voiddelay(unsignedint);voidInit_LCD(void):voidInit_I0(void);voidInitialCpu(void);voidLCD_0ffon(unsignedchari);unsignedcharxdataSEG[32]_at_OxlEO:voidmain(void){delay(817);RSTSTAT=0x00;//Bin(00000000):CLKC0N=0x80;delay(100);InitialCpu();delay(1640);while(1)RSTSTAT=0x00;//Bin(00000000)P2_4=1;LCD_0ffon(0);delay(1640);P2_4=0;LCD_Offon(l);delay(2640);voiddelay(unsignedintn)功能說明:延時子程序其他說明:delay20*(n)*Tsys輸入:n-0~65535輸出:無voiddelay(unsignedintn)unsignedinttemp;for(temp=n;temp>0;temp—){RSTSTAT=0x00;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}/*voidInit_IO(void)功能說明:初始化IO子程序其他說明:輸入:無輸出:無*/voidInit_IO(void){//P0P1P2P3P4//bit7(SEG32)(SEG24)UNUN(COM4)//bit6(SEG31)(SEG23)UNUN(COM3)//bit5(SEG30)(SEG22)UNUN(COM2)//bit4(SEG29)(SEG21)LEDUN(COM1)//bit3(SEG28)(SEG20)UNUN(CUP1)//bit2(SEG27)(SEG19)UNUN(CUP2)//bitl(SEG26)(SEG18)UNUN(VP1)//bit0(SEG25)(SEG17)UNUN(VP2)P0SS=0xff;//Bin(11111111),P0sharedasseg25~29P1SS=0xff;//Bin(11111111),P1sharedasseg17~24:曲顧聃直氟割去got(pjoa)ptoa(00000000)UT9//!00x0=W(00000000)UT9//!00x0=H3dW用嘮'(llllllll)uiq//!JJXO=H3W(00000000)UT9//!00x0=£d(00000000)UT9//!00x0=H3dCd田堊{(llllllll)uTg//!JJxo=H3Cd(00000000)UT9//!00x0=2d(00000000)UT9//!OOxo制。dZd'用嘮v7d{(iiiiiiu)uT9//耳尹0制。zd(00000000)UT9//!00x0=ldHIW4(00000000)UT9//:00X0制。didOHS(KH土田'用嘮'(llllllll)uw//耳尹0制。Id(00000000)UT9//!00x0=0d圉中毋T'(00000000)UT9//!00x0=H3d0dOHS(KH土田'用嘮'(llllllll)uw//耳尹0制。Od輸入:無輸出:無voidInit_LCD(void){unsignedchari;TOC\o"1-5"\h\z/*使能LCD模塊*/LCDC0N=0x20://Bin(00100000),P4共享為VP2~1、PLC0N=0x00;//Bin(00000000);LCDCLK=0x00;//Bin(00000000);PLC0N=0x0f;//Bin(00001111),設置PLDLCDC0N|=0xl0;//Bin(00010000),開啟LCDPUMPdelay(1000);//延時LCDCON|=0x80;//Bin(10000000),使能LCD模塊/*顯示內容初始化*/for(i=0;i<32;i++)//LCD全部顯示SEG=OxOf;//Bin(00001111);.CUP2~1和COM廣4,占空比為1/4,PUMP=LCDCLK/4voidLCD_0ffon(unsignedchari)功能說明:點亮或熄滅LCD子程序其他說明:輸入:1-點亮,0-熄滅輸出:無voidLCD_0ffon(unsignedchari){unsignedchart;t=i;if(t==0)for(i=0;i<32;i++)//LCD全部不顯示{SEG=0x00;//Bin(00000000)}if(t==1)for(i=0;i<32;i++)//LCD全部顯示SEG=0x01;//Bin(00001111)/個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個voidInitialCpu(void)功能說明:系統(tǒng)初始化程序其他說明:輸入:無輸出:無"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""/個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個個/voidInitialCpu(void){EA=0;//關閉全中斷PSW=0;//clearPSWInit_IO();Init_LCD();//EA=1;//開啟全中斷}匯編程序如下,小程序還是建議初學的朋友用匯編,有益無害:ORG000HAJMPMAINORG0003HRETIORG0090HMAIN:MOV0B2H,#80HMOV0E3H,ttlOHMOV0F8H,ttOOHjspstaMOV95H,ttOOHjadchmovOadh,ttOffh;pissmovOaeh,ttOffh;pOssmovOelh,ttOffh;pOcrmov0e2h,ttOffh;piermov0e3h,ttOffh;p2crmov0e9h,ttOOh;pOpcrmovOeah,ttOOh;pipermovOebh,ttOOh;p2pcrmov0f7h,ttOlh;xpagemovrO,ttOdfh;OxleOmovr6,#20h;D32inlop:incrOmova,#Ofhmovx@r0,adjnzr6,inlopmov0f7h,#0hmovOabh,tt20h;IcdconmovOach,ttOOh;IcdclkmovOafh,ttOfh;plconorlOabh,ttlOhjpumponMOVR2,#03H;130DLP1:MOVR4,#64H;255DLP2:DJNZR4,LP2DJNZR2,LP1orlOabh,#80hMAINLOP:MOVR2,#43H;130DLEDLP1:MOVR4,#64H;255DLEDLP2:DJNZR4,LEDLP2DJNZR2,LEDLP1CLRP2"4acallledonMOVR2,#43HLEDLP3:MOVR4,#64HLEDLP4:DJNZR4,LEDLP4DJNZR2,LEDLP3SETBP2"4acallledoffAJMPMAINLOPlcdon:mov0f7h,ttOlh;xpagemovrO,ttOdfh;OxleOmovr6,#20h;D32inlopl:incrOmova,#Ofhmovx@r0,adjnzr6,inloplmov0f7h,#0hretledoff:mov0f7h,ttOlh;xpagemovrO,ttOdfh;OxleOmovr6,#20h;D32inlop2:incrOmova,#01hmovx@r0,adjnzr6,inlop2mov0f7h,#0hretEND[本帖最后由banian于2009-12-1715:13編輯]TOP3#回banian【再續(xù)】口發(fā)表于2009-12-1714:23|只看該作者總結從上述的分析和實驗來看,SH79F32驅動靜態(tài)液晶還是可以的。當然,由于手邊暫時沒有儀器,沒能對電氣參數進行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論