基于单片机的高精度数字电压表的设计
2021-11-10吴顺柳
吴顺柳
(玉林师范学院,广西玉林,537000)
1 总体设计
本设计主要设计一个准确、简洁的测量直流电压的数字电压表。利用MSU-51系列的控制系统,采用数字化技术,将连在一起的数量如直流电压转换成不是连在一起的分开的数字形式并用液晶来显示出来的数。
■1.1 功能及实现
本次设计要具体实现的功能如下:
(1)分为四档量程:0~4V,4~8V,8~20V,20~40V;(2)按键换挡选择量程;(3)采用字符液晶LCD1602显示;(4)具有自动过压保护功能,有一定的抗干扰功能;(5)当检测的电压超出一定的量程范围时,蜂鸣器和二极管指示灯发出声光报警提示。
■1.2 系统的整体设计
在设计中的各个模块主要是使用下面的几种方案:控制信号系统主要以单片机STC89C52为核心;A/D转换模块:主要使用AD0832,主要是因为AD0832具有引脚少,方便焊接,体积小,不占地方,使得电路不会那么的复杂,而且操作方法简单、方便等优点,还可以直接由单片机提供的数据转换所需的数字信号,时钟信号,转换速度快,满足设计需要。因此,首选用AD0832;显示模块:液晶1602显示模块具有功耗低、价格便宜、电路连接方便等优点,所以本设计采用LCD1602液晶显示。报警模块使用蜂鸣器,实现过压报警功能,当电压被测电压超过档位电压进行报警。量程换档模块:换档功能主要是独立按键换档,简单、方便、易操作,具有当电压超过或小于档位电压过大或过小时,不能进行换档,具有一定过压保护作用。数字电压表的总体框图如图1所示。
图1 系统总体框架
主要模块的划分:
(1)AD0832模块:系统硬件设计的核心部分,主要作用是把模拟量转换成数字量。
(2)量程转换模块:主要电阻分压和继电器衰减电压倍数。
(3)按键电路模块:设计采用了S2、S3、S4、S5等四个独立按键,分别作为0~4V,4~8V,8~20V,20~40V电压换挡,方便操作。
(4)液晶显示模块:本设计采用LCD1602液晶显示屏,通过显示屏可以实时显示电压变化,可以精确测量电压。
(5)报警电路模块:当检测的电压超出量程的范围时,蜂鸣器和二极管指示灯发出声光报警提示。
2 系统硬件电路的设计
本设计的核心是通过数模转换实现需要被测数的采集,基于单片机和C语言编程。通过STC89C52的控制,实现A/D转换采集得到的数字量转换为模拟后的数据经过MSU-51控制系统在LCD上显示出来。硬件电路主要有AD0832模块、STC89C52主控模块、LCD1602液晶显示模块、按键模块、过压报警模块和量程转换模块等六个模块电路的设计。整体电路如图2所示。
图2
■2.1 AD转换模块
根据A/D电路的原理划分A/D转化器可以划分为:逐次逼近、双积分式、并行式等等A/D转换器,AD0832转换器是串行式的A/D转换器,是属于逐次逼近型的一种转换器。
逐次逼近比较A/D型转换器的工作原理是:它将采样输入信号直接进入A/D转换器的DI端,然后进行通道选择,因为是串行的,它具有串行的特点,串行的特点是数据依次逐个输入。
■2.2 单片机最小系统
STC89C52是STC公司生产的一种低功耗、高性能CMOS 8位微控制器,片内含8KB可编程Flash存储器和512字节随机存取存储器。该器件虽然使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统的51单片机不具备的功能。STC89C52单片机最小系统的电路有复位电路、时钟电路以及电源电路三部分组成。在单片机芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,STC89C52使用灵活方便易学,而且还为嵌入式存在的缺点,提供了许多有效的解决办法,为嵌入式的发展有巨大的贡献。
本设计就是使用51系列单片机最小系统,系统采用STC89C52芯片作为系统的控制中心,用数模转换芯片ADC0832模数转换模块,这样不仅可以达到设计的硬性指标,而且准确度高、操作特别的简捷,单片机具有开发时间短、控制功能强大、稳定性好、价格便宜、程序比较容易学习等众多优点。
2.2.1 时钟电路
时钟电路用于产生MCS-51单片机工作时所必需的时钟控制信号,时钟电路的稳定性会直接影响单片机系统的稳定性。时钟电路有两种电路工作方式,分别为内部和外部,本设计的时钟电路为内部时钟电路。内部时钟电路的自激振荡器由晶体振荡器和两个电容并联构成的,电容约为30pF,振荡频率范围为1~11.0592MHz。
2.2.2 复位电路
复位是单片机初始化的操作。当MCU开始工作时,必须先重置,即按复位按键,使CPU和部分系统处于初始状态。这是很有必要的操作,因为单片机自身没有自动复位的功能。STC89C52有两种外部复位模式,一种是上电自动复位,另一种是按键手动复位。在本设计中采用的是手动按键复位的方式,该复位方式是在普通的RC电路的基础上在加一个的10k电阻,10μF的电容。
2.2.3 电源电路
主要是为整个系统提供电源,因本系统各个模块需要的电压源均为+5V的直流电压源供电,系统采用按键的电源开关,P0为电源接口,S0为按键开关。
■2.3 LCD1602液晶显示模块
显示器是单片机应用系统中常用的输出显示设备,本设计选用LCD1602液晶显示器,第一行显示的是档位量程,第二行显示的被测电压的测量电压值。它是以字符为基础的液晶,能显示数字和字母,控制简单,低功耗。设计的主要作用是能够实时的显示电压。
■2.4 按键模块
在系统设计中,通过运用独立按键实现换挡的功能。这种独立的按钮当电压超过某个档位的量程,可以直接通过按键实现换挡,反应灵活,硬件结构简单,可以快速地实现所需的选择,而且因为是独立的按键,按键之间互不干扰,具有自动过压保护的功能。过压保护功能主要表现在在超出某个档位电压值比较大的情况下,再按这个小的量程是换不了档位的,这说明在具有一定的过压能,从而不会烧坏芯片。
四个按键的分别表示:S2:0~4V档;S3:4~8V档;S4:8~20V档;S5:20~40V档。
■2.5 报警模块
通过单片机的判断,LCD显示频上显示的档位电压,用P2^0脚控制三极管的截止与开通,从而开启与关闭蜂鸣器的作用,当被测电压超过显示屏上的电压量程时,蜂鸣器和LED会出现声光报警。但是由于数模转换器AD00832的测量电压的范围只能在0~5V,所以在没有测量任何电压的情况下,当换挡到4~8V,8~20V,20~40V警报器也会有警报,这是因为AD0832的对电压的判断的是超过5V,超过AD0832的量程范围,再传输到单片机,由单片机传输到蜂鸣器,此时,蜂鸣器报警。
■2.6 量程换挡模块
设计中的量程转换电路模拟电压输入端为P4。但AD0832可承受的电压量程是0~5V,因此在设计中的电路中需要有分压电阻和能控制电压衰减电压倍数的器件,使得模拟电压控制在AD0832的能承受的量程范围之内。因此,本设计用七个电阻R3、R4、R5、R6、R7、R8、R9作为分压电阻和继电器K1、K2、K3、K4作为控制电压衰减倍数的器件。
3 系统软件流程图
本设计中,单片机C语言程序用Keil软件编写,进行编译,得到的HEX文件是单片机需要的,把HEX文件烧入STC89C52RC单片机中然后进行硬件调试。主要使用ADC0832模拟/数字转换器芯片设计数字电压表的转换电路。本设计方案以单片机STC89C52RC为主控芯片,以ADC0832模拟/数字转换器芯片为核心转换模拟/数字量的芯片,组成数字电压表电路。该电路能够准确地测出需要测量的有效电压值,并且误差相对来说比较小,而LCD1602能实时而清晰显示被测电压值。主程序流程图如图3所示。
图3 主程序流程图
4 总体测试
成品制作完成后,首先用万用表检测电路板是否存在漏焊、虚焊,焊接不良等现象。检查电路的线路有没有存在短路或断路。检测电源电路及电路中的电源和地连接正常了没有,测试每个芯片的引脚是否出现短路的情况,检查无误后,然后把单片机的程序烧录到硬件中去,不断的调试硬件,烧录程序完毕后,进行实验,分析实验数据及误差。
5 总结
本课题设计已经完成了指导老师要求的任务内容。本设计基于AD0832集成芯片结合STC89C52RC单片机实现电压换挡的测量,LCD1602液晶为显示器,通过软件与硬件相结合的方法。所设计的数字电压表测量范围是0~40 V的电压,过压报警功能。设计方案简洁,操作便捷,设计成本不高,在总体上取得一定的效果,但尚存在不足之处,并且调试还存在一些问题,在5V以下的误差较小,但是超过5V的电压误差较大,不适合测量过大的电压。