|
摘要 集成LCD显示驱动器SD0432,具有工作电压低、串行接口等特点;内部具有看门狗(WDT)及音频输出电路。这是其他LCD驱动器所没有的功能。文中介绍该电路的工作特性及工作原理,给出SD0432与8051微处理器的接口电路及部分程序代码。 关键词 LCD显示驱动器 SD0432 8051 单片机 看门狗(WDT) 音频输出 1SD0432简介LCD显示驱动芯片SD0432是具有128段(32×4位)和映射存储器的多功能LCD驱动器,通过配置,可使之适合于多种LCD的应用。主控制器(如单片机)与SD0432之间的接口只需4根线。此外,SD0432还可以通过掉电指令来降低器件的功耗。 2SD0432结构及工作原理 图1是SD0432的内部结构原理,主要由显示存储器RAM 、系统振荡器、时基及看门狗定时器(WDT)、音频发生器、LCD驱动器及偏压发生器、控制和定时电路等几个部分组成。表1是SD0432的引脚及功能定义。 图1SD0432内部结构原理2.1显示存储器RAM 静态显示存储器(RAM)用以存储要显示的数据,其容量为32×4位。RAM的内容直接反映LCD驱动器的内容,RAM中的数据由READ、WRITE以及READMODIFYWRITE指令进行存取。 2.2看门狗定时器(WDT) 图2是系统时基及看门狗(WDT)的结构。时基发生器经过256分频,以产生精确时基。看门狗定时器在此基础上,经过4分频产生中断,即从未知或不希望的跳转及误操作中中断主控制器或其他子系统,看门狗定时器定时结束将导致内部看门狗定时结束标志置1。时基发生器及WDT定时结束标志的输出可通过命令选择与IRQ输出相连接。共有八个频率源适用于时基发生器及看门狗定时器时钟,该频率可由fout=32 kHz/2n表1 引脚号码〖〗引脚名称〖〗功能1~8〖〗SEG0~SEG7〖〗LCD段输出端9〖〗CS〖〗片选输入(内部上拉电阻):CS=1时,禁止向SD0432读/写数据,同时串行接口电路复位;CS=0时,允许主控制器与SD0432之间传送数据及命令10〖〗RD〖〗读同步输入(内部上拉电阻):SD0432中的数据在RD信号的下降沿输出且放置在数据线上,主控制器可在下一个上跳沿锁存这些数据11〖〗WR〖〗写同步输入(内部上拉电阻):DATA线上的数据可在WR信号的上升沿写入SD043212〖〗DATA〖〗串行数据输入/输出(内部上拉电阻)13〖〗VSS〖〗接地14、15〖〗OSCO、OSCI〖〗与32.768 kHz晶振相连以产生系统时钟。若系统时钟由外部时钟源提供,该时钟源应接至OSCI;若系统时钟由内部RC振荡器提供,则此两脚悬空16〖〗VLCD〖〗LCD偏置电压输入脚17〖〗VDD〖〗正电源18〖〗IRQ〖〗时基/看门狗定时器溢出标志,NMOS漏极开路输出19、20〖〗BZ、BZ〖〗音频输出21~24〖〗COM0~COM3〖〗LCD公共输出端25~48〖〗SEG31~SEG8〖〗LCD段输出端计算。其中,n=0~7,32 kHz为系统频率,可由32.768 kHz晶振,256 kHz内部振荡器或256 kHz外部频率产生。若采用片内振荡器或外部256 kHz频率作为系统频率源,可通过一个三级预分频器分频为32 kHz。使用时基发生器及WDT相关命令时应注意,因为两者共用一个八级计数器。例如:调用WDT DIS 命令可禁止时基发生器,而WDT EN 命令不仅允许时基发生器且可将WDT 定时结束标志输出(将将WDT定时结束标志接至IRQ引脚),在TIMER EN 命令发生后,WDT从IRQ引脚断开而时基发生器的输出连至该引脚。CLR WDT 命令可清零WDT,时基发生器的内容则可由CLR WDT或CL TIMER命令应在WD EN或TIMER EN命令前执行。 在IRQ EN 命令执行前应产生执行CLR WDT,一旦出现WDT定时结束,IRQ引脚将保持低电平状态直至发出CLR WDT 或者IRQ DIS 命令。在IRQ引脚禁止后,其输出处于漏极开路状态。IRQ输出可由IRQ EN或IRQ DIS命令来使能或禁止,IRQ EN命令可将时基发生器或WDT 定时结束标志的输出送至IRQ引脚。时基发生器及WDT 配置如图2所示,若采用片内RC振荡器或晶振,掉电模式会降低功耗,这是因为可根据系统命令启动或关闭振荡器。在掉电模式下时基/WDT 将失去其所有功能。 图2系统时基及看门狗结构2.3音频输出 SD0432中集成了一个简单的声音发生器。此发声器可输出一对不同的驱动信号至BZ和BZ以产生单音。执行TONE 4K与TONE 2K命令,可选择两个不同的音频输出,即4 kHz与2 kHz这两个频率,TONE ON 及TONE OFF命令可打开或关闭语音输出。语音输出BZ和BZ,是一对不同的带驱动蜂鸣器。当系统关闭或语音输出被禁止时,BZ及BZ将处于低电平状态。 2.4LCD驱动器 SD0432是128(32×4)段LCD驱动器。它可设置为1/2或1/3偏置且通过S/W配置设置为2、3或4个公共端的LCD驱动器,适于多种LCD应用。LCD驱动时钟从系统时钟内产生,一般为256 kHz。表2是LCD的命令及功能。 表2 指令名称〖〗指令码〖〗功能LCD OFF〖〗10000000010x〖〗关闭LCDLCD ON〖〗10000000011x〖〗打开LCDBIAS & COM〖〗1000010abxcx〖〗c=0:1/2偏置方式; c=1:1/3偏置方式; ab=00:2个公共端; ab=01:3个公共端; ab=10:4个公共端3SD0432的命令及工作时序 3.1SD0432的命令及格式 SD0432可由S/W设置来配置。有两种命令模式分别用来配置SD0432和传送LCD显示数据。配置SD0432的命令模式(普通模式)识别码为100,此命令模式由系统配置命令、LCD配置命令、音频选择命令、定时器/看门狗定时器设置命令及操作命令组成。另外,数据模式包括READ、WRITE及READMODIFYWRITE操作。表3为数据模式及命令模式的识别码。 表3 操作 〖〗模式 〖〗识别码 READ 〖〗数据D 〖〗110 WRITE 〖〗数据D 〖〗101 READ-MODIFY-WRITE 〖〗数据D〖〗101 COMMAND 〖〗命令C 〖〗100 模式识别码必须在数据/命令传送前发出。当连续发出命令时,可省略命令模式识别码,即100。当系统操作处于不连续命令或不连续的地址数据模式时,CS引脚须置1,且以前的操作模式将被复位。一旦CS清零,将首先发出一个新的操作模式识别码。表4是SD0432的部分常用命令格式及功能。 3.2SD0432的工作时序 图3、图4和图5分别是READ模式、WRITE模式和READMODIFYWRITE模式的工作时序。 4SD0432与单片机的接口设计 4.1SD0432与单片机的硬件接口 图6是LCD显示驱动芯片SD0432与单片机的硬件接口电路。可以看出,与SD0432接口只需4条线。CS线用以初始化串行接口电路且终止主控制器8051与SD0432的通信。若CS=1,主控制器8051及SD0432间发送的数据及命令首先被禁止即而进行初始化,在模式命令或模式转换发出前,需要一高电平脉冲以初始化SD0432的串行接口;数据的读/写命令及命令的写入必须通过DATA数据线。RD为读输入,RAM内的数据在RD表4 命令名称〖〗命令 识别码〖〗命令代码〖〗数据D/ 命令C〖〗功能READ〖〗110〖〗A5A4A3A2A1A0D0D1D2D3〖〗D〖〗读RAM中的数据WRITE〖〗101〖〗A5A4A3A2A1A0D0D1D2D3〖〗D〖〗写数据到RAM中READMODIFYWRITE〖〗101〖〗A5A4A3A2A1A0D0D1D2D3〖〗D〖〗读写RAMSYS DIS〖〗100〖〗00000000X〖〗C〖〗同时关闭系统振荡器及LCD偏置发生器SYS EN〖〗100〖〗00000001X〖〗C〖〗开启系统振荡器LCD OFF〖〗100〖〗00000010X〖〗C〖〗关闭LCD偏置发生器LCD ON〖〗100〖〗00000011X〖〗C〖〗开启LCD偏置发生器TIME DIS〖〗100〖〗00000010X〖〗C〖〗禁止时间基准输出WDT DIS〖〗100〖〗00000011X〖〗C〖〗禁止WDT暂定标志位输出TIME EN〖〗100〖〗00000100X〖〗C〖〗允许时间基准输出WDT EN〖〗100〖〗00000101X〖〗C〖〗允许WDT暂定标志位输出TONE OFF〖〗100〖〗00000110X〖〗C〖〗关闭蜂鸣输出TONE ON〖〗100〖〗00001000X〖〗C〖〗开启蜂鸣输出CLR TIME〖〗100〖〗000011XXX〖〗C〖〗清除时基发生器的内容CLR WDT〖〗100〖〗0000111XX〖〗C〖〗清除WDT的内容 图3READ模式(识别码110)时序图4WRITE模式(识别码101)时序图5READMODIFYWRITE模式(识别码101)时序信号的下降沿同步送出至数据线上,使主控制器可以在RD信号的上升沿及下一个下降沿到来期间读入正确的数据。WR为写输入,数据线上的数据、地址及命令将在WR信号的上升沿写入SD0432。一条可选择的IRQ线也可用作主控制器件及SD0432间的接口,IRQ引脚可通过S/W,设置选择作为定时输出或是WDT溢出标志输出。主控制器可在与IRQ相连时执行时基或WDT功能。 在图6中,要注意以下几点: ① VLCD <VDD ② 调节可调电阻VR以改变LCD偏置电压。当VVDD=5 V,VVLCD=4 V时,VR的阻值为R=15(1±0.02)kΩ。 ③ 可通过调节R(外接上拉电阻)来适应用户的基准时钟。 图6SD0432与8051单片机的硬件接口原理 4.2SD0432与单片机的软件接口 (1) 初始化程序 COM_REGEQU 20H;指令寄存器 ADD_REG EQU 21H;数据地址寄存器 DATA_REG EQU 22H ;数据寄存器 COM_DATA EQU 23H ;指令数据寄存器 SDATA EQU P3.4 SWR EQU P3.3 CS EQU P3.2 KEY EQU P3.1 WR_MODE EQU 05H ;写数据模式 COM_MODE EQU 04H ;发送指令模式 ORG0000H LJMP START ORG 0100H ;程序初始化 START: MOVSP,#60H;堆栈栈顶设置 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通信子程序 通信子程序实现MCU与SD0432之间的通信和传输指令与数据。指令模式存放在COM_REG中,指令数据存放在COM_DATA中,数据地址存放在ADD_REG中,数据存放在DATA_REG中。程序中CLK是时钟子程序,其功能是发送时钟信号,使数据传送到SD0432中。这里省略该段子程序。SD0432: CLR CS;启动SD0432 MOV R2,#03H ;发送显示模式(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 ;发送数据地址(6位) MOV A, ADD_REG SENDADD:NOP MOV C, ACC.5 MOV SDATA, C LCALL CLK RLC A DJNZ R2, SENDADD MOV R2,#04H;发送数据(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 ;发送第9位 LCALL CLK SENDEND: SETB CS ;关闭SD0432 RET 结语 SD0432芯片具有接口简单、无需外围接口芯片、编程灵活等特点。它内部具有看门狗(WDT)及音频输出电路(这是其他LCD驱动所没有的功能);可广泛应用于仪器仪表、工业控制器、条形显示器、控制面板等场合。 参考文献 1深圳市兴威帆电子技术有限公司. SD0432用户指南. 2高登芳,潘承武,朱英杰. 微型计算机实用测控接口技术[M]. 北京:北京科学技术出版社,1990 3余永权,汪明慧,黄英. 单片机在控制系统中的应用[M]. 北京:电子工业出版社,2003
|