从LCD电极读数的单片机接口技术分析

网友投稿 246 2022-11-05

从LCD电极读数的单片机接口技术分析

关键词 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.2  LCD的工作波形

由此可见,只要依次检查在t1~t4四个时间内f、a、g、b、e、c、d各段上的电压COMx-Sx-y(x=0,1,…,6;y=0,1)是V0还是V0/3即可获得LCD各位数码的字形码,然后再将字形码转换为测量结果。

2  单片机读数接口电路

2.1  显示状态读取电路

比如,要读取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。

3  程序设计

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所示。

其中,PC口数据格式:PC5~PC3为要读取的那位LCD数码编号,PC2为段电极编号,PC1PC0为COM电极编号。

3.2  字形码转换

主程序以查询方式分别读取由中断服务程序采集的各位数码的字形码,查表将字形码转换为BCD码,再将几位数码的BCD码转变为数值。

3.3  读数校验

读取一位数码的字形码需要1个周期T(实际只用前半个周期),经测量,T=16.318 ms。读取全部612位数码至少需要用7个周期,约114 ms。考虑到在单片机读数的过程中,LCD的读数有可能发生变化而导致读数错误,程序中采用连续两次读数的方法来校验读数的正确性。如果连续两次读数相同,则说明读数是正确的;如果连续两次读数不同,则说明读数可能是错误的,应重新读数。

3.4  读数识别

4  结论

使用此接口电路采集数据,不必考虑与拾取信号的测量相关的细节问题和技术规范。这样,当拾取信号的测量比较复杂时,可以有效地缩短开发周期。同时,它也不存在二次A/D转换或V/F转换方法所存在的单片机采集数据与仪表读数不完全一致的问题。

程序设计用1个驱动信号周期读取1位数码,这样的读取速度对于读数变化不是很快的血压计来说已经足够了。如果测量仪表LCD读数变化很快,可以修改编程,在1个周期内同时读取几位数码,甚至修改电路设计,将后半周期也用于进行读数,实现在1个信号周期内读取所有数码。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入了解Java数据结构和算法之堆
下一篇:零基础怎么转行学云计算?可以自学掌握技术吗
相关文章

 发表评论

暂时没有评论,来抢沙发吧~