《从LCD电极读数的单片机接口技术》由会员分享,可在线阅读,更多相关《从LCD电极读数的单片机接口技术(8页珍藏版)》请在金锄头文库上搜索。
1、MCS-51 单片机原理及接口技术单片机原理及接口技术电子信息工程通信技术(电子信息工程通信技术(2)班)班学号:学号:2630840224学生:张文逸学生:张文逸从从 LCD 电极读数的单片机接口技术电极读数的单片机接口技术摘要摘要 以测量仪表中常见的时分割驱动法驱动的段式 LCD 显示器为例,分析 LCD 显示器的电极连接结构和驱动信号波形;介绍单片机读取仪表 LCD 读数的接口电路。此接口电路应用于笔者开发的自动血压监控仪的研制及临床应用项目中,由 8031 单片机读取血压计的收缩压、舒张压、心率以及充气和放气时瞬时压强。实验证明,此接口电路工作稳定、可靠。关键词关键词 LCD 电极 读
2、数 时分割驱动法接口设计 通过测量仪表拾取被测信号是单片机前向通道设计中常用的数据采集方式。通常,接口电路从仪表电路中取得相关的模拟信号,经过 AD 转换或 VF 转换送入单片机;或者取得一个频率信号,经整形后送入单片机。然而,有些测量仪表电路中可能找不到这样的信号。以电容式压力传感器血压计为例,尽管从其振荡电路中可以取得一个与压强成线性关系的频率信号,送入单片机测得压强,但这个压强并不是所要拾取的收缩压、舒张压和心率;面普通的血压计又没有智能仪表那样的通信接口与单片机通信。显然,要想通过这样的仪表拾取被测信号只有直接读取其显示屏的读数了。本文以一个全自动血压计为例,介绍将 LCD 显示器读数
3、读入单片机的接口电路。该血压计显示器为 612 位段式 LCD 显示器,3 位显示收缩压,3 位显示舒张压。l2 位在两组数码中间,显示 4 个指示符号。1 1 LCDLCD 的电极连接结构和工作波形的电极连接结构和工作波形1 11 1 LCDLCD 的电极连接结构的电极连接结构图 1 为血压计 LCD 的电极连接结构及等效电路。其中,图 l(a)为公共电极连接排列,图 l(b)为段电极连接排列。它共有 4 个公共电极 COM0COM3,每位数码各有 2 个段电极 Sx-0、Sx-1,其等效电路为一个 4 行2 列的矩阵,如图 l(c)所示。1.21.2 LCDLCD 的工作波形的工作波形用双
4、踪示波器观察血压计 LCD 的工作波形,如图 2 所示。它采用时分割驱动法驱动,偏比 13,占空比 l4,B 型。公共电极 COM0COM3 的信号波形始终保持不变,段电极 Sx-0、Sx-1 信号波形随显示数字的变化而变化。图 2 中的 Sx-1、Sx-1 波形为显示数字“O”时的工作波形。由图 2 可知,不考虑信号的直流分量,所有波形的前半周期 t1t4 与后半周期 t5t8 大小相等,极性相反。COM0COM3 信号电压依次在 t1t4 四个时间内达到峰值。时间 t1 为第 1 行上 f、a 两段的扫描时间,公共电极 COM0,Sx-0 为 f 段的段电极,Sx-1 为 a 段的段电极。
5、在 t1 时间内,f 段上的电压 COM0-Sx-0=V0,a 段上的电压 COM0-Sx-1=V0,f、a 两段均处于选择状态,显示。其余各段在其扫描时间内的电压和显示状态如表 1 所列。7 段中只有 g 段上的电压为 V03,处于非选择状态,不显示。其余 6 段均处于选择状态,显示。因此,显示数字“O”。由此可见,只要依次检查在 t1t4 四个时间内 f、a、g、b、e、c、d 各段上的电压 COMx-Sx-y(x=0,1,6;y=O,1)是 V0 还是 V03 即可获得 LCD 各位数码的字形码,然后再将字形码转换为测量结果。2 2 单片机读数接口电路单片机读数接口电路图 3 为根据上述
6、工作原理设计的 805l 单片机读数接口电路,图中,LCD 为血压计的液晶显示器,6 位数码从右到左依次编号 O5,中间半位的编号为 6。它有 13 个段电极、4 个 COM 电极,GND 为血压计的接地端。805l 的 PC 口为 805l 的扩展并行口。2.12.1 显示状态读取电路显示状态读取电路由 CD4067、CD3405l、LM324(UA、UB)组成显示状态读取电路,读取 LCD 数码各段的显示状态。CD41367 多路模拟开关从 LCD 的 13 个段电极信号中选择一路 Sx-x 输出到 LM324(UA)的反相输入端 2 脚。CD405l多路模拟开关从 LCD 的 4 个 C
7、OM 信号中选择一路 COMx 输出到 LM321(UA)的同相输入端 3 脚。LM324(UA)接成模拟减法器,由 1 脚输出信号 COMx-Sx-x。UB 作电压比较器,参考电压 VR 大小由电位器 W1 调节于 V03V0 之间,将段电压 COMx-Sx-x 与 VR 比较。比较结果为该段的显示状态,高电平说明该段显示,低电平不显示。显示状态送入 8051 的 P1.6 脚。R1、C1 组成 RC 滤波器,滤除高频干扰。比如,要读取 0 号数码的 a 段显示状态,由图 1 知,0 号数码 a 段的段电极是 S0-1,公共电极是 COM0。由程序控制在 t1 时间内令 PC1PC0=00,
8、使 CD405l 选择 COM0,令 PC5PC2=0001,使 CD4067 选择 S0-1,COM0 和 S0-1 两信号电压经 UA 减法器相减,然后再经 UB 电压比较后得到 a 段的显示状态,8051 从 P1.6 脚读取此最示状态。2 22 2 INT0INT0 中断信号产生电路中断信号产生电路UC 和 UD 组成 INT0 中断信号产生电路。UC 接成电压跟随器,减小电路对 COM0 信号的影响。R2、C2组成 RC 滤波器,滤除高频干扰。UD 作电压比较器,参考电压 VR 加在同相输入端,VR 大小由电位器 W2 调节于 2V03V0。电压比较器将 COM0 信号转换为 INT
9、0 负脉冲信号,工作波形如图 4 所示。负脉冲的下降沿为 LCD 驱动信号周期 T 的起始时刻。此负脉冲接至 8051 的 INT0 脚,在负脉冲的下降沿产生外部中断0。3 3 程序设计程序设计启用外部中断 0 和定时器 T0,以中断方式读取 LCD 各位数码的字形码。主程序以查询方式读取该字形码,然后经过读数校验、字形码到 BCD 码的译码、读数识别等,将字形码转换为读数。3.13.1 读取字形码读取字形码通过外部中断 O 和定时器 T0 以中断方式读取 LCD 某一编号数码的字形码。如图 5 所示,INT0 负脉冲在周期 T 的起始时刻引起外部中断 O,由 INT0 中断服务程序启动 T0
10、 定时器,依次在 t1t4 半个周期内的 f、a、g、b、e、c、d 各时刻产生 T0 中断,读取各段的显示状态,获得字形码。T0 定时器设为工作方式 2,自动再装入定时时间为 T/16,初始定时时间为 T/32。INT0 和 T0 中断服务程序流程如图 6 所示。其中,PC 口数据格式:PC5PC3 为要读取的那位 LCD 数码编号,PC2 为段电极编号,PC1PC0 为 COM电极编号。3.23.2 字形码转换字形码转换主程序以查询方式分别读取由中断服务程序采集的各位数码的字形码,查表将字形码转换为 BCD 码,再将几位数码的 BCD 码转变为数值。3 33 3 读数校验读数校验读取一位数
11、码的字形码需要 1 个周期 T(实际只用前半个周期),经测量,T=16318ms。读取全部位数码至少需要用 7 个周期,约 114ms。考虑到在单片机读数的过程中,LCD 的读数有可能发生变化而导致读数错误,程序中采用连续两次读数的方法来校验读数的正确性。如果连续两次读数相同,则说明读数是正确的;如果连续两次读数不同,则说明读数可能是错误的,应重新读数。3 34 4 读数识别读数识别血压计显示的内容除了收缩压、舒张压和心率以外还有充气、放气时的瞬时压强以及一些状态信息。LCD 中间的半位(6 号)用于显示待机(Reay to measure)、充气(CUFF Inf1ating)、放气(CUF
12、F Deflating)以及更换电池(Replace Battcries)四个符号。另外,4 号数码显示“E”时表示测量出错,显示“P”时,右边 3 位(02 号)数码显示的数字为心率。左右两边显示内容均是数字时,左边 3 位(35 号)是收缩压,右边 3 位是舒张压血压与心率交替显示。主程序通过这些信息来识别 LCD 所显示的内容。4 4 结论结论使用此接口电路采集数据,不必考虑与拾取信号的测量相关的细节问题和技术规范。这样,当拾取信号的测量比较复杂时,可以有效地缩短开发周期。同时,它也不存在二次 AD 转换或 VF 转换方法所存在的单片机采集数据与仪表读数不完全一致的问题。程序设计用 1 个驱动信号周期读取 1 位数码,这样的读取速度对于读数变化不是很快的血压计来说已经足够了。如果测量仪表 LCD 读数变化很快,可以修改编程,在 1 个周期内同时读取几位数码,甚至修改电路设计,将后半周期也用于进行读数,实现在 1 个信号周期内读取所有数码