将LCD显示器读数读入单片机的接口电路
本文以一个全自动血压计为例,介绍将LCD显示器读数读入单片机的接口电路。该血压计显示器为6 1/2位段式LCD显示器,3位显示收缩压,3位显示舒张压。1/2位在两组数码中间,显示4个指示符号。
1 LCD的电极连接结构和工作波形
1.1 LCD的电极连接结构
图1为血压计LCD的电极连接结构及等效电路。其中,图1(a)为公共电极连接排列,图1(b)为段电极连接排列。它共有4个公共电极COM0~COM3,每位数码各有2个段电极Sx-0、Sx-1,其等效电路为一个4行×2列的矩阵,如图1(c)所示。
图1 LCD电极连接结构及等效电路
1.2 LCD的工作波形
用双踪示波器观察血压计LCD的工作波形,如图2所示。它采用时分割驱动法驱动,偏比1/3,占空比1/4,B型[3]。公共电极 COM0~COM3的信号波形始终保持不变,段电极Sx-0、Sx-1信号波形随显示数字的变化而变化。图2中的Sx-0、Sx-1波形为显示数字 “0”时的工作波形。由图2可知,不考虑信号的直流分量,所有波形的前半周期t1~t4与后半周期t5~t8大小相等,极性相 反。COM0~COM3信号电压依次在t1~t4四个时间内达到峰值。时间t1为第1行上f、a两段的扫描时间,公共电极COM0,Sx-0为f段的段电 极,Sx-1为a段的段电极。在t1时间内, f段上的电压COM0-Sx-0=V0,a段上的电压COM0-Sx-1=V0,f、a两段均处于选择状态,显示。其余各段在其扫描时间内的电压和显示状 态如表1所列。7段中只有g段上的电压为V0/3,处于非选择状态,不显示。其余6段均处于选择状态,显示。因此,显示数字“ 0”。
图2 LCD工作波形
表1 显示“0”时各段的显示状态
由此可见,只要依次检查在t1~t4四个时间内f、a、g、b、e、c、d各段上的电压COMx-Sx-y(x=0,1,…,6;y=0,1)是V0还是V0/3即可获得LCD各位数码的字形码,然后再将字形码转换为测量结果。
2 单片机读数接口电路
图3为根据上述工作原理设计的8051单片机读数接口电路。图中,LCD为血压计的液晶显示器,6位数码从右到左依次编号0~5,中间半位的编号为6。它有13个段电极、4个COM电极,GND为血压计的接地端。8051的 PC口为8051的扩展并行口。
图3 读数接口电路
2.1 显示状态读取电路
由CD4067、CD4051、LM324(UA、UB)组成显示状态读取电路,读取LCD数码各段的显示状态。CD4067多路模拟开关从 LCD的13个段电极信号中选择一路Sx-x输出到LM324(UA)的反相输入端2脚。CD4051多路模拟开关从LCD的4个COM信号中选择一路 COMx输出到LM324(UA)的同相输入端3脚。LM324(UA)接成模拟减法器,由1脚输出信号COMx-Sx-x。UB作电压比较器,参考电压 VR大小由电位器W1调节于V0/3~V0之间,将段电压COMx-Sx-x与VR比较。比较结果为该段的显示状态,高电平说明该段显示,低电平不显示。 显示状态送入8051的P1.6脚。R1、C1组成RC滤波器,滤除高频干扰。
比如,要读取0号数码的a段显示状态,由图1知,0号数码a段的段电极是S0-1,公共电极是COM0。由程序控制在t1时间内令PC1PC0 =00,使CD4051选择COM0,令PC5~PC2=0001,使CD4067选择S01,COM0和S01两信号电压经UA减法器相减,然后再经 UB电压比较后得到a段的显示状态,8051从P1.6脚读取此显示状态。
2.2 INT0中断信号产生电路
UC和UD组成INT0中断信号产生电路。UC 接成电压跟随器,减小电路对COM0信号的影响。R2、C2组成RC滤波器,滤除高频干扰。UD作电压比较器,参考电压VR加在同相输入端,VR大小由电 位器W2调节于2V0/3~V0。电压比较器将COM0信号转换为INT0负脉冲信号,工作波形如图4所示。负脉冲的下降沿为LCD驱动信号周期T的起始 时刻。此负脉冲接至8051的INT0脚,在负脉冲的下降沿产生外部中断0。
图4 比较器UD工作波形
3 程序设计
启用外部中断0和定时器T0,以中断方式读取LCD各位数码的字形码。主程序以查询方式读取该字形码,然后经过读数校验、字形码到BCD码的译码、读数识别等,将字形码转换为读数。
3.1 读取字形码
通过外部中断0和定时器T0以中断方式读取LCD某一编号数码的字形码。如图5所示,INT0负脉冲在周期T的起始时刻引起外部中断0,由 INT0中断服务程序启动T0定时器,依次在t1~t4半个周期内的f、a、g、b、e、c、d各时刻产生T0中断,读取各段的显示状态,获得字形码。 T0定时器设为工作方式2,自动再装入定时时间为T/16,初始定时时间为T/32。INT0和T0中断服务程序流程如图6所示。
图5 T0中断的各个时刻
图6 INT0和T0中断服务程序流程
其中,PC口数据格式:PC5~PC3为要读取的那位LCD数码编号,PC2为段电极编号,PC1PC0为COM电极编号。
3.2 字形码转换
主程序以查询方式分别读取由中
- μC/OS-II下通用驱动框架的设计与实现(07-23)
- 基于S3C44B0X+μcLinux的嵌入式以太网设计(07-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)
- DSP和Flash接口技术的实现(08-15)
- dsPIC33F系列DSC的 SD存储卡接口设计(01-05)