导航菜单

基于89S52单片机的数字电压表设计

袁伟明 于娟

(攀枝花学院电气信息工程学院,四川 攀枝花 617000)

【摘要】本文设计的数字电压表具有高精度、低成本和便携的特性。使用ADC0809作为A/D转换芯片,能将模拟电压信号通过逐次比较的方式输出8位二进制;通过AT89S52对其进行处理,转换为十进制数,由LCD1602液晶显示出数字电压;利用+9V蓄电池与LM7805组成稳压电路,保证系统电源为+5V稳定输入;设计的数字电压表能测量一路0~+5V的电压,精度为0.020V。

教育期刊网 http://www.jyqkw.com
关键词 ADC0809;数字电压表;AT89S52;LCD1602

Based on 89S52 Singlechip Digital Voltage Meter Design

YUAN Wei-ming YU Juan

(School of Electric and Information Engineering, Panzhihua University, Panzhihua Sichuan 617000, China)

【Abstract】In this paper, design of digital voltmeter has characteristic of high precision, low cost and portable. Using ADC0809 as A/D conversion chip, analog voltage signal can be output by means of successive compared 8-bit binary; By AT89S52 devices for handling, converted to a decimal number, by LCD1602 LCD digital voltage; Using + 9 v battery and LM7805 regulating circuit, guarantee the stability of system power for + 5 v input; Design of the digital voltmeter to measure all the 0 ~ + 5 V voltage, accuracy of 0.020 V.

【Key words】ADC0809; Voltmeter; AT89S52; LCD1602

0 引言

随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。数字电压表(DVM)是采用数字化测量技术设计的电压表。数字电压表与模拟电压表相比,具有读数直观、准确、显示范围宽、分辨力高、输入阻抗大、集成度高、功耗小、抗干扰能力强,可扩展能力强等特点,因此在电压测量、电压校准中有着广泛的应用。

1 系统总体方案设计

设计采用AT89S52作为控制芯片,A/D转换利用8位ADC0809芯片,电源输入分别为+5V电源适配器和9V电池,可通过开关选择;系统利用两个LED指示灯分别判断当前电压是否超出量程、是否稳定,并通过LCD1602液晶显示当前电压。

系统电路主要由以下几部分构成:AT89S52单片机最小系统,电源电路,A/D转换电路,电压采集电路,LCD显示电路。硬件结构设计如图1所示:

图1 硬件结构设计图

2 硬件设计部分

2.1 电压的采集与转换电路

本设计电压信号的采集考虑到干扰较大,使用并联电容的方式滤波,有效地避免了杂波信号。模数转换采用ADC0809芯片,利用通道IN0输入采集电压,根据地址表将三位地址控制位接地,通过电源适配器或电池与稳压电路的电压为其提供稳定的+5V基准电压,保证转换电压的精度;芯片采用的是逐次比较的方式将模拟信号转换为8位二进制数,理论精度能达到+0.019V。

2.2 电源电路

本设计系统需要稳定的+5V直流电压,电源电路分为两个部分,由电压适配器或+9V电池为系统供电,可由开关进行切换,从而体现可移动的便捷性。其中ADC0809转换芯片为电源直接供电,保证电源供电的稳定。在用电池供电涉及到稳压电路,本次设计使用LM7805芯片作为稳压电路的稳压芯片,并通过多次滤波保证电压转换的稳定。

2.3 系统电路设计

由Altium软件设计系统电路原理图,如图2所示。

3 软件设计部分

本设计的的软件部分主要分为电压采集、转换、显示;涉及到LCD1602与ADC0809的驱动程序,其中加入了LED指示灯的判断程序,以提高对采集电压的情况较为容易的判断,电压的采集通过定时器控制采集频率,使其能够及时的返回采集的电压。软件设计流程如下图:

图3 软件设计流程图

系统软件程序主要分为数据采集、电压数值转换与LCD显示部分,其数据采集用定时器控制其定时采集数据,采集数据的接收端口为P1,返回8位二进制数,数据采集程序代码如下:

uint adc0809_init()

{

START=0;

OE=0;

START=1;

START=0;

while(EOC==0);//等待转换结束

OE=1;//为高电平时,转换的数据输送到单片机

dat_0809=P1;//从P1引脚读转换后的信息

OE=0;

return dat_0809;

}

4 系统仿真与调试

本设计编程语言为C语言,利用Keil软件实现程序的编译,系统的仿真调试采用Proteus软件;通过仿真对六项不同输入电压进行测试,得出实测电压,如表1所示:

表1 仿真测试结果

通过分析表1的数据,系统的测量误差都保持在理论误差之内。

5 结论

通过对制作的数字电压表进行测试,系统通过电池或电源适配器供电,能稳定的输入+5v电压;用其检测电压,能够将0~5V的模拟电压信号转化为数字信号,通过单片机的处理,能够在液晶显示器显示,对测试数据分析,精度保持在0.02V内。

教育期刊网 http://www.jyqkw.com
参考文献

[1]胡学海.单片机原理及应用系统设计[M].电子工业出版社,2005:2-7.

[2]吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2002.

[3]房建东,高胜利.电子技术[M].内蒙古大学出版社,2004.

[4]房小翠,王金凤.单片机实用系统设计技术[M].国防工业出版社,1999.

[5]王东峰,王会良,董冠良.单片机C语言应用100例[M].北京:电子工业出版社,2009.

[责任编辑:汤静]

下载文本