LCD驅(qū)動器SD0432與嵌入式系統(tǒng)的接口設(shè)計
關(guān)鍵詞:LCD顯示驅(qū)動器 SD0432 嵌入式系統(tǒng)芯片8051 看門狗(WDT)
1 SD0432的主要特性
現(xiàn)今,隨著LCD價格的下降,LCD的使用已經(jīng)越來越普遍了,如在電腦顯示器方面,大有LCD顯示器取代CRT顯示器的趨勢。同時由于LCD顯示器具有直觀、小巧輕薄、耐用等特性,因而得到了廣泛的使用。
SD0432是具有128段(32×4位)和映射存儲器的多功能LCD驅(qū)動器。通過配置可使之適合于多種LCD的應(yīng)用場合。主控制器(如單片機)與SD0432之間的接口只需四根線。此外,SD0432還可以通過掉電指令來降低器件的功耗。SD0432的主要特性如下:
·工作電壓范圍為2.4V~5.2V;
·內(nèi)含256kHz RC振蕩器;
·外部32kHz晶振或256kHz時鐘頻率輸入;
·1/2或1/3偏置選擇及1/2、1/3或1/4占空比LCD顯示;
·內(nèi)含時基頻率源;
·兩個可選擇的蜂鳴器頻率;
·可用掉電命令降低功耗;
·內(nèi)含時基發(fā)生器及看門狗定時器;
·時基或看門狗定時器溢出輸出;
·具有八種時基/看門狗定時器時鐘源;
·32×4 LCD驅(qū)動器;
·內(nèi)含32×4位顯示RAM;
·帶有四線串行接口;
·內(nèi)含LCD驅(qū)動信號源;
·具有軟件配置特性;
·具有三種數(shù)據(jù)尋址模式;
·通過改變VLCD腳至VDD腳的串接電阻器調(diào)整LCD的工作電壓;
·數(shù)據(jù)模式指令及命令模式指令R(Read)/W(Write)地址可以自動累加。
2 SD0432的引腳功能
3 結(jié)構(gòu)原理
圖1是SD0432的內(nèi)部結(jié)構(gòu)原理圖,它主要由顯示存儲器RAM、系統(tǒng)振蕩器、時基及看門狗定時器(WDT)、音頻發(fā)生器、LCD驅(qū)動器及偏壓發(fā)生器、控制和定時電路等部分組成。
3.1 顯示存儲器RAM
靜態(tài)顯示存儲器(RAM)用以存儲要顯示的數(shù)據(jù),其容量為32×4位。RAM的內(nèi)容直接反映LCD驅(qū)動器的內(nèi)容,RAM中的數(shù)據(jù)由READ、WRITE以及READ-MODIFY-WRITE指令進行存取。
3.2 看門狗定時器(WDT)
圖2是SD0432中系統(tǒng)時基及看門狗(WDT)的結(jié)構(gòu)圖,時基發(fā)生器經(jīng)過256分頻可產(chǎn)生精確時基。看門狗定時器在此基礎(chǔ)上,經(jīng)過4分頻產(chǎn)生中斷,從未知或不希望的跳轉(zhuǎn)及誤操作中斷主控制器或其他子系統(tǒng),看門狗定時器結(jié)束將導(dǎo)致內(nèi)部看門狗定時結(jié)束標(biāo)志位置1。時基發(fā)生器及WDT定時結(jié)束標(biāo)志的輸出可通過命令選擇與IRQ輸出相連接。SD0432共有八個頻率源適用于時基發(fā)生器及看門狗定時器時鐘,該頻率可由下式計算:
fout=32kHz/2 n
其中:n=0~7,32kHz為系統(tǒng)頻率,可由32.768kHz晶振,256kHz內(nèi)部振蕩器或256kHz外部頻率產(chǎn)生。
若采用片內(nèi)振蕩器或外部256kHz頻率作為系統(tǒng)頻率源,可通過一個三級預(yù)分頻器將其分頻為32kHz。使用時基發(fā)生器及WDT相關(guān)命令時應(yīng)注意其相互的區(qū)別,因為兩者共和一個八級計數(shù)器。例如:調(diào)用WDT DIS命令可禁止時基發(fā)生器,而WDT EN命令不僅使能時基發(fā)生器而且可輸出WDT定時結(jié)束標(biāo)志(將WDT定時結(jié)束標(biāo)志接至IRQ引腳)。在TIMER EN命令發(fā)生后,WDT從IRQ引腳斷開而時基發(fā)生器的輸出端接至該引腳。CLR WDT命令可清零WDT,而時基發(fā)生器的內(nèi)容則可由CLR WDT或CL TIMER命令清零,應(yīng)在WD EN或TIMER EN命令前執(zhí)行操作。
在IRQ EN命令執(zhí)行前應(yīng)執(zhí)行CLR WDT命令,一旦出現(xiàn)WDT定時結(jié)束,IRQ引腳將保持低電平狀態(tài)直至發(fā)出CLR WDT或者IRQ DIS命令,當(dāng)IRQ引腳禁止后,其輸出處于漏極開路狀態(tài),IRQ輸出可由IRQ EN或IRQ DIS命令來使能或禁止,IRQ EN命令可以將時基發(fā)生器或WDT定時結(jié)束標(biāo)志的輸出送至IRQ引腳,時基發(fā)生器及WDT配置如圖2所示。若采用片內(nèi)RC振蕩器或晶振,那么,在掉電模式時會降低功耗,因為可根據(jù)系統(tǒng)命令啟動或關(guān)閉振蕩器。但是,在掉電模式下,時基WDT將失去基所有功能。
圖3
另一方面,若系統(tǒng)頻率源為一外部時鐘,則SYS IDS無效且不能進入掉電模式,即在選用外部時鐘源后,SD0432將持續(xù)工作直至系統(tǒng)斷電或去掉外部時鐘源。系統(tǒng)上電后,IRQ被禁止。
3.3 語音輸出
SD0432中還集成了一個簡單的音頻發(fā)生器,此發(fā)聲器可輸出一對不同的驅(qū)動信號至BZ和BZ以產(chǎn)生單查,執(zhí)行TONE 4k與TONE 2k命令可選擇4khz和2khz這兩個頻率不同的音頻輸出,通過TONE ON及TONE OFF命令可打開或關(guān)閉語音輸出。語音輸出BZ和BZ是一對不同的帶驅(qū)動蜂鳴器,當(dāng)系統(tǒng)關(guān)閉或語音輸出被禁止時,BZ及BZ處于低電平狀態(tài)。
3.4 LCD驅(qū)動器
SD0432是128(32×4)段LCD驅(qū)動器,它可設(shè)置為1/2或1/3偏置,并可通過S/W配置設(shè)置為2、3或4個公共端的LCD驅(qū)動器,這使得SD0432適合多種LCD應(yīng)用。LCD驅(qū)動時鐘可從系統(tǒng)時鐘內(nèi)產(chǎn)生,一般為256kHz。
4 SD0432的命令格式及工作時序
4.1 SD0432的命令格式
SD0432可由S/W設(shè)置來配置。有兩種命令模式,分別用來配置SD0432和傳送LCD顯示數(shù)據(jù)。配置SD0432的命令模式(普通模式)識別碼為100,此命令模式由系統(tǒng)配置命令、LCD和配置命令、音頻選擇命令、定時器/看門狗定時器設(shè)置命令及操作命令組成。另一方面,數(shù)據(jù)模式包括READ、WRITE及READ-MODIFY-WITE操作。
模式識別碼必須在數(shù)據(jù)/命令傳送前發(fā)出。當(dāng)連續(xù)發(fā)出命令時,可省略命令模式識別碼即100。當(dāng)系統(tǒng)操作處于不連續(xù)命令或不連續(xù)的地址數(shù)據(jù)模式時,CS引腳須置1且以前的操作模式將被復(fù)位。一旦CS清零,系統(tǒng)將首先發(fā)出一個新的操作模式識別碼。
4.2 SD0432的工作時序
圖3是SD0432的WRITE模式、READ模式和READ-MODIFY-WRITE模式的工作時序。
5 SD0432與8051的接口設(shè)計
5.1 硬件接口
圖4所示是SD0432與單片機的硬件接口電路,可以看出,與SD0432接口只需四條線。其中CS線用以初始化串行接口電路且終止主控制器8051與SD0432的通信。若CS=1,主控制器8051及SD0432間發(fā)送的數(shù)據(jù)及命令首先被禁止進而進行初始化,在模式命令或模式轉(zhuǎn)換命令發(fā)出前,需要一高電平脈沖以初始化SD0432的串行接口;數(shù)據(jù)的讀/寫命令及命令的寫入必須通過DATA數(shù)據(jù)線。第二條RD為讀輸入,RAM內(nèi)的數(shù)據(jù)在RD信號的下降沿同步被送至數(shù)據(jù)線上,以便主控制器可以在RD信號的上升沿及下一個下降沿到來期間讀入正確的數(shù)據(jù)。第三條WR為寫輸入,數(shù)據(jù)線上的數(shù)據(jù)、地址及命令可在WR信號上升沿被寫入SD0432。第四條是可選擇的IRQ線,可用作主控制器件(8051CPU)及SD0432間的接口,IRQ引腳可通過S/W設(shè)置為定時器輸出或WDT溢出標(biāo)志輸出。主控制器(8051CPU)可在與IRQ相連時執(zhí)行時基或WDT功能。
圖4電路在設(shè)計時,要注意以下幾點:
一是VLCD應(yīng)小于VDD。二是調(diào)節(jié)可變電阻器VR以改變LCD偏置電壓。當(dāng)VDD為5V,VLCD為4V時,R應(yīng)為15kΩ±20%。第三是可通過調(diào)節(jié)R(外接上拉電阻器)來適應(yīng)用戶的基準(zhǔn)時鐘。
5.2 軟件接口程序
(1)初始化程序
ORG 0000H
LJMP START
ORG 0100H
START: ;程序初始化
MOV COM_REG,#COM_MODE;啟動SD0432
MOV COM_DATA,#01H
LCALL SD0432
MOV COM_REG,#COM_MODE ;LCD ON
MOV COM_DATA,#03H
LCALL SD0432
MOV COM_REG,#COM_MODE ;LCD 1/3偏置方式,4公共端
MOV COM_DATA,#29H
LCALL SD0432
(2)SD0432與主控制器的通信子程序
該通信子程序主要用來實現(xiàn)MCU與SD0432之間的通信及傳輸指令與數(shù)據(jù),指令模式存放在COM_REG中,指令數(shù)據(jù)存放在COM_DATA中,數(shù)據(jù)地址存放在ADD_REG中,數(shù)據(jù)存放在DATA-REG中。程序中的CLK是時鐘子程序,其功能是發(fā)送時鐘信號,以便使數(shù)據(jù)傳送到SD0432中。具體的通訊子程序如下:
SD0432:CLR CS ;啟動SD0432
MOV R2,#03H ;發(fā)送顯示模式(3位)
MOV A,COM_REG
SENDMODE:NOP
MOV C,ACC.2
MOV SDATA,C
LCALL CLK
RLC A
DJNZ R2,SENDMODE
JNB ACC.3,SENDCOM
MOV R2,#06H ;發(fā)送數(shù)據(jù)地址(6位)
MOV A,ADD_REG
SENDADD:NOP
MOV C,ACC.5
MOV SDATA,C
LCALL CLK
RLC A
DJNZ R2,SENDADD
MOV R2,#04H ;發(fā)送數(shù)據(jù)(4位)
MOV A,DATA_REG
SENDDATA:NOP
MOV C,ACC.0
MOV SDATA,C
LCALL CLK
RRC A
DJNZ R2,SENDDATA
JMP SENDEND
]SENDCOM:MOV R2,#08H
MOV A,COM_DATA
SENDCOM1:NOP
MOV C,ACC.7
MOV SDATA,C
LCALL CLK
RLC A
DJNZ R2,SENDCOM1
CLR SDATA ;發(fā)送第九位
LCALL CLK
SENDEND:SETB CS ;關(guān)閉SD0432
RET
6 結(jié)束語
SD0432芯片具有接口簡單、無需外圍接口芯片、編程靈活等特點,同時內(nèi)部具有其它LCD驅(qū)動器所不具有的看門狗(WDT)及語音輸出電路。因而可廣泛應(yīng)用于儀器儀表、工業(yè)控制、條形顯示器以及控制面板等場合。