PT6312原理与应用分析
硬件结构:
VFD即真空荧光显示屏,其结构和原理可参考 单片机 音响技术网 -VFD应用指南资料,里面详细介绍了VFD的原理结构,应用等等。
VFD显示高贵华丽,常应用在DVD,高档的功率放大器,电磁炉,电冰箱等电器产品中用于用户操作显示。而与各种VFD显示配套的驱动常用PT6312,PT6311芯片,驱动芯片的硬件结构主要由扫描信号发生器、串行通信接口、控制模块、显示存储器、按键扫描值寄存器、通用输入寄存器、LED驱动器、VFD段/位驱动器等构成。本文着重讲述PT6312即VFD驱动的 单片机 编程应用。首先认识下PT6312连接VFD的电路原理框图如图1所示。
图(1) PT6311电路图
由图1及电路原理可知,SW输入端可做为开关输入口也可以作为四个键盘的输入,即在按键数目不多于4个或者可以利用组合按键的情况下,这部分资源也可作为按键接口来利用。因此,PT6312实际提供两个键盘扫描的接口,一个是通常的矩阵式键盘接口,另一个就是开关信号输入端SW1~SW4。另外,PT6312还集成了外挂四个LED驱动功能。见内部功能图2所示。
图(2) PT6312功能框图
键盘接口
普通的键盘接法主要有两种:独立式和矩阵式。
四个SW口可直接连接4个独立键盘。键盘矩阵则可组成6×4接法,键的输入状态KEY1-KEY4由读取信号SEG1/KS1-SEG6/KS6采样并锁存到PT6312的内部寄存器中, 单片机 控制读键只需读取其键盘寄存器内的锁存值并判断按键状态即可,使用简单方便。由图1所示矩阵式按键多达24个,PT6311的用法相同,但矩阵式按键更多,它有比PT6312更多的内部寄存器。 PT6312的显存空间配置情况如图3所示。实际应用中,显存空间往往只是使用一部分,因为所使用的显存空间大小与设置的显示模式有关,图中的每一行对应一字,每一列对应八段即一个字节,相当于一段对应于一个字节的一位。另外,PT6312还有键扫描值寄存器、开关量输入寄存器和LED输出寄存器,这些寄存器的数据格式如图4图5所示。
图(3) PT6312显存空间配置
图(4) PT6312开关SW和LED
图(5) PT6312键盘矩阵输入与读键格式
片内的控制字
PT6312具有显示模式设置、数据设置、地址设置(针对显存)和显示控制等四种控制字。其中最高两位为指令特征位,由指令解码器来识别。
外部通信接口及信号时序
根据该芯片的电路结构,PT6312提供四线制串行接口与外部控制器通信,接口信号线分别为时钟CLK、输入数据DIN、输出数据DOUT和选通STB,通信的控制时序见后。接口电路连接如图6图7图8所示。
图(6) PT6312时序图
图(7) PT6312扫描和显示时间
图(8) PT6312写入数据
根据PT6311与外部微控制器的接口协议,外部控制操作分为写入控制字、写入数据(包括显存及LED口)、读取数据(包括键值及通用输入SW口)。写入控制字/数据的时序如图9所示,以地址自动增一方式连续写入显存数据的时序,读取数据的时序如图10所示。
当然,键盘可根据需要选择挂接部分按键,但是,由前述内部键扫描存储器的对应关系,最好选择可以连续读取键值的区间,便于程序处理和减少读取时间和处理时间。
图(9) PT6312读取数据
图(10) PT6312应用时序
单片机 编程实现
PS:主程序调用显示更新程序即可更新显示,顺序为先根据显示屏电路连接的段位,对应设置PT6312段位,写入PT6312内部RAM,再设置PT6312写完一个字节后其内部RAM地址是否自动跳转+1,然后再设置VFD亮度,最后把 单片机 处理的显示数据对应写入PT6312的显存中。
同样键盘程序也需要循环调用,键盘程序就是给PT6312发一个读键命令(先写入一个读键命令字给PT6312),再读出其内部按键缓存的值判断按键,按键按下就执行对应的功能或者更新 单片机 内的显示存储数据。
PT6312的键值内部缓存有3个,读三次缓存到3个寄存器。读键程序可参考 单片机 音响技术网TOPAV-2008开发板配套之相关程序。
下面给出显示与更新的子程序:
WR_VFD:
MOV A,#MODE_VFD;扫描模式,段位设置6X16
CALL WR_PT6312_COMD
MOV A,#WR_DIS_MEM_I;地址+1
CALL WR_PT6312_COMD
MOV A,S_DB_DIMMER;显示亮度设置
CALL WR_PT6312_COMD
MOV A,#0C0H ;FIRST ADDRESS=00H开始,6311:00H-2FH,6312:00H-15H
CALL WR_PT6312_COMD
MOV R1,#ADD_START;显示值缓存RAM开始地址
WR_VFD2:
MOV A,@R1
CALL WR_A_BYTE_TO_VFD0
INC R1;显示缓存RAM地址+1
MOV A,@R1
CALL WR_A_BYTE_TO_VFD0;
INC R1
CJNE R1,#ADD_END,WR_VFD2;循环写完全部缓存
SETB P_STB_VFD
END_WR_VFD:
RET
WR_PT6312_COMD:
SETB P_STB_VFD
CLR P_STB_VFD
WR_A_BYTE_TO_VFD0:;写入一个字节
MOV R0,#8
WR_A_BYTE_TO_VFD1:
RRC A
CLR P_CLK_VFD
MOV P_DATA_VFD,C
SETB P_CLK_VFD
DJNZ R0,WR_A_BYTE_TO_VFD1
RET
RD_A_BYTE_F_VFD0:;读一个字节
SETB P_DATA_VFD;读取先置位
MOV R0,#8
RD_A_BYTE_F_VFD1:
CLR P_CLK_VFD
MOV C,P_DATA_VFD;CLK上升沿读出数据
SETB P_CLK_VFD
RRC A
DJNZ R0,RD_A_BYTE_F_VFD1
RET
又:PT6311只是矩阵键扫缓存多3个,LED口多一个,其段位设置方式比PT6312多,适应更复杂的显示屏,所以其内部显示缓存要多些,编程方式几乎一样,在此不多说明,可参考PT6311的DATASHEET。
上一篇:C8051F单片机仿真器及开发板常见问题解答
下一篇:8*8点阵LED显示原理介绍