您现在的位置:机电论文网>> 机床加工>> 正文内容

32段cmoslcd驱动器ay0438及其与单片机的接口设计

作者: 来源: 发布时间:2018/2/11 16:12:47  点击数:366
1. 概述
ay0438是microchip公司生产的一种完整的mcos显示驱动器,可在单片机或微处理器的控制下直接驱动 lcd显示模块。它结构简单,使用方便。特别是在驱动32段lcd显示器方面,更能显示出它的精巧和方便。ay0438只用三条控制线即可连续不断地向与它相连的lcd显示器输送驱动信号。该器件内含32位锁存器,它既可对被显示的数据进行锁存,也可以锁存微处理器的状态或波形。
ay0438能够驱动任何标准的lcd显示器,也可以驱动与标准lcd显示器相类似的显示器相类似的显示模块。可显示用于7段、9段、14段或16段字符、十进制数的“+”“- ”号以及其它特殊字符。如果需要显示更多段位的数据或字符,则可将几个ay0438驱动器连起来使用。 ay0438内含时钟振荡器。可为系统提供精确的时钟输入信号,如果设计人员希望使用外部时钟,可在 lcdφ和地之间串接一只电容器,根据电容值的大小来确定时钟频率的高低。
ay0438有两种封装方式,一种采用40脚pdip封装,另一种采用44脚plcc形式。另外,为了方便在某些特殊情况下的使用,microchip公司还可以提供未经包装的ay0438器件。
ay0438的主要特点如下:
●可为任何结构的32段lcd提供驱动信号;
●采用cmos工艺技术;
●电源电压适用范围宽;
●工作电压低;
●具有很高噪声拟制能力;
●温度范围宽;
●cmos信号与ttl输入信号完全兼容;
●所有引脚均经过防静电的保护处理;
●具有片内时钟振荡器;
●控制简单,用三条控制线即可控制芯片的全部功能。
2. 引脚功能及电气参数
2.1 引脚排列及功能
ay0438采用40脚pdip封装,其引脚排列如图1所示,表1所列为各引脚的说明。


2.2 电气参数
尽管ay0438有较宽的电气参数范围,但在设计时亦应考虑合理的电气参数,表2所列是ay0438在正常工作时的电气参数。
3. 操作过程
ay0438lcd显示驱动器是由32bit状态移位寄存器、锁存器、32段驱动器和内部时钟发生器等电路组成的。图2是它的内部结构框图,现将几个主要引脚的工作原理加以说明。

3.1 data in和clock
ay0438的内部移位寄存器是在时钟信号的下降沿进行移位和输出的。工作时,移位寄存器中的数据在每个时钟信号的下降沿逻辑向左移一位。假如时钟为 32位脉冲且load信号已被激活,那么,第一个时钟脉冲时的数据输入信号将在seg32脚输出,而最后一个时钟脉冲时的数据信号将在seg1脚输出。这样,在每一个32位移位完成时,系统都会推出一个新的输出。当data in为逻辑“1”时,如果对应的位置正在被激活或者显示,那么seg-ment output的输出采用背景输出方式进行。图3给出了ay0438的操作时序。

3.2 load
当load端的输入为逻辑“1”时,ay0438将通过锁存器把移位寄存器中的数据锁存到与其控制所对应的器件段位上。一旦 load信号结束高电平,那么锁存器将结束锁存。这时的移位寄存器和段位驱动器将一致保持畅通地连接。
3.3 lcdφ
在外部lcdφ与地之间接一个电容器可以产生用驱动lcdφ的外部扩展时钟信号 ,这样做的好处是能够通过改变电容器的值来得到不同的时钟频率。当然,也可以通过片内固有的时钟振荡器。无论是采用扩展时钟还是采用片内时钟, 都能得到用于驱动背景电极的输出电压。利用片内时钟时,lcdφ端可以悬空不接。而采用扩展时钟时,其背景输出的状态与输入时钟有关。
在将多个ay0438连接在一起使用时,可在第一个ay0438的lcdφ与地之间接上电容器,然后将其产生的背影输出接到下一个芯片的 lcdφ输入端,依次连接下去最后一个芯片的背景输出用于驱动lcd显示模声的背景电极。图4是两片ay0438的连接图。

4. 基于pic16c71单片机的应用电路及编程
为了防止和避免数据输入到负载之间因阻塞或空闲等意外情况而引起系统工作的不正常,在时钟信号的下降沿,ay0438的data in和load信号的状态都不改变。

图5是ay0438在pic16c71单片机的控制下驱动4 位7段lcd显示器的典型应用电路。连接时,将clk、data in和load分别接到pic16c71单片机的pb0、pb1和pb2上,把seg1~7、seg9~15 、seg17~23和seg25~31分别依次连接到4位7段lcd显示模块的第一、第三、第二和第四位上。另外,在 pic16c71的pb7端连接一个微动开关,用于检查系统是否阻塞。如果发生阻塞,通过pb7可以重新设定lcd 模块上从第一位到最后一位的值。下面是对pic16c71单片机的编程:
list p=16c71, f=inhx8m
;
;
msd equ 0x20
thrdsd equ 0x21
scndsd equ 0x22
lsd equ 0x23
count equ 0x24
temp equ 0x25
portb equ 0x06
#define clk portb,0
#define datain portb,1
#define load portb,2
#define updatelcd portb,7
w equ 0
status equ 0x03
c equ 0
rp0 equ 5
option equ 0x81
rbpu equ 7
pcl equ 0x02
pclath equ 0x0a
;
;
org 0
goto start
org 0x10
;
;工作时,下面的真值表应该始终位于程序page 0的位置
;
decodevalue
addwf pcl
retlw b'00111111' ;decode for 0
retlw b'00000110' ;decode for 1
retlw b'01011011' ;decode for 2
retlw b'01001111' ;decode for 3
retlw b'01100110' ;decode for 4
retlw b'01101101' ;decode for 5
retlw b'01111101' ;decode for 6
retlw b'00000111' ;decode for 7
retlw b'01111111' ;decode for 8
retlw b'01101111' ;decode for 9
;
;
start
clrf portb
bsf status,rp0 ;设定pb0、1 和2
movlw b'11111000' ;
movwf portb ;
bcf option,rbpu ;使能
bcf status,rp0
wait
btfsc updatelcd ;重置开关为低时查看
goto wait ;为等待
bcf load ;load异常处理
movf lsd,w ;设置显示器最后一位
clrf pclath ;pch=0
call decodevalue;解码
call send8 ;连续输出段值
movf scndsd,w ;设定第二位
call decodevalue;解码
call send8 ;连续输出
movf thrdsd,w ;设定第三位
call decodevalue;解码
call send8 ;连续输出
movf msd,w ;设定第一位
call decodevalue;解码
call send8 ;连续输出
bsf load ;捕获load线
bcf load ;使能锁存
keyreleased
btfss updatelcd ;等待微动开关释放
goto keyreleased;
goto wait ;重复循环
;
;send8表示将w寄存器中的8位输出
send8
movwf temp ;存入temp
movlw .8 ;计数
movwf count ;到8位
sendloop
bcf datain ;设定data in为低
rrf temp ;旋转换位
btfsc status,c ;清理位值后跳转
bsf datain ;设定其它数据位
bsf clk ;锁存时钟
bcf clk ; /
decfsz count ;查看8位是否完成
goto sendloop ;未完成则重新进行
return ;下一循环
end

更多
字体:【】-【】-【】【关闭此页

上一篇:基于pic单片机开发的高精度数据采集'   下一篇:基于单片机的高性能直流稳压电源'


特别声明:机电之家(http://www.jdzj.com )所共享的机电类资料,机电论文、机电类文章、机电企业类管理制度、机电类软件都来自网上收集,其版权归作者本人所有,如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。购买的论文都出自原创,保证作者的原创的版权的转让,任何纠纷由法律解决。