SD0432与8051的接口设计
1.1 硬件接口
图4所示是SD0432与单片机的硬件接口电路,可以看出,与SD0432接口只需四条线。其中CS线用以初始化串行接口电路且终止主控制器8051与SD0432的通信。若CS=1,主控制器8051及SD0432间发送的数据及命令首先被禁止进而进行初始化,在模式命令或模式转换命令发出前,需要一高电平脉冲以初始化SD0432的串行接口;数据的读/写命令及命令的写入必须通过DATA数据线。第二条RD为读输入,RAM内的数据在RD信号的下降沿同步被送至数据线上,以便主控制器可以在RD信号的上升沿及下一个下降沿到来期间读入正确的数据。第三条WR为写输入,数据线上的数据、地址及命令可在WR信号上升沿被写入SD0432。第四条是可选择的IRQ线,可用作主控制器件(8051CPU)及SD0432间的接口,IRQ引脚可通过S/W设置为定时器输出或WDT溢出标志输出。主控制器(8051CPU)可在与IRQ相连时执行时基或WDT功能。
图4电路在设计时,要注意以下几点:
一是VLCD应小于VDD。二是调节可变电阻器VR以改变LCD偏置电压。当VDD为5V,VLCD为4V时,R应为15kΩ±20%。第三是可通过调节R(外接上拉电阻器)来适应用户的基准时钟。
1.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与主控制器的通信子程序
该通信子程序主要用来实现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 ;发送第九位
LCALL CLK
SENDEND:SETB CS ;关闭SD0432
RET
2 结束语
SD0432芯片具有接口简单、无需外围接口芯片、编程灵活等特点,同时内部具有其它LCD驱动器所不具有的看门狗(WDT)及语音输出电路。因而可广泛应用于仪器仪表、工业控制、条形显示器以及控制面板等场合。