基于51单片机的数字电压表的设计与实现

2016-12-29 04:00
关键词:管脚数码管电压表

严 敏

(江苏联合职业技术学院扬州商务分院信息电子系,江苏 扬州 225127)

基于51单片机的数字电压表的设计与实现

严 敏

(江苏联合职业技术学院扬州商务分院信息电子系,江苏 扬州 225127)

以AT89C51单片机为控制核心,利用ADC0809模数转换芯片设计数字电压表,用LED数码管实时显示测量电压。并进行仿真与实验,结果表明,与传统模拟电压表相比,基于ADC0809的数字电压表具有测量精度高、显示直观等优点。

ADC0809;单片机;LED数码管;Proteus

在智能仪表和测量控制等领域,数字电压表得到了广泛的应用,用其来测量电压,并以数字方式显示测量值[1-3]。本文以AT89C51为主控制器,利用ADC0809设计数字电压表,且电压值用LED数码管进行显示。

1 硬件电路

本设计使用ADC0809采集模拟数据,完成对其中一路0~5V直流电压的模数转换,ADC0809输出的是数字信号,范围为00000000~11111111,单片机的任务是读取转换结果,并进行数值量程变换,再使用4位LED数码管动态扫描、实时显示测量的电压,精确到小数点后2位,单位为V,如图1所示。

图1 数字电压表硬件电路

表1 地址选择与被选通道之间的关系表

图1中,ADC0809是8位8路A/D转换芯片,也就是说,输出的数字信号是8位二进制数据,输入的模拟通道有8路,但究竟选择哪一路模拟信号进行模数转换,则由ADDA、ADDB、ADDC这3个管脚决定,如表1所示。本设计采用通道IN0,因此将这3个管脚都接地。本设计中,将ALE与START这两个管脚相连,目的是在信号的上升沿锁存通道地址,紧跟着在下降沿就启动转换。EOC管脚是转换结束信号,OE管脚是输出允许信号,CLK管脚是时钟信号。由于ADC0809自身没有晶振电路,所以由单片机的ALE端或者外界提供。本设计中使用500kHz的外部时钟信号,OUT1~OUT8管脚直接与单片机的I/O口相连。

2 程序设计

根据A/D转换芯片的工作时序要求和显示要求编写KEILC51控制程序,实现电压表的测量功能。其软件程序流程分别如图2~4所示。

图2 主程序流程

图3 A/D转换子程序流程

图4 LED显示子程序流程

2.1 A/D转换子程序设计

ADC0809与单片机的接口所涉及的关键问题是完成A/D转换后的数据应该送给单片机及时处理[4-5]。那么,在送单片机处理之前怎样确认ADC0809模数转换的完成,通常采用以下3种方法。

2.1.1 延时方法

当时钟频率一定时,ADC0809的转换时间是固定的,比如,本设计采用500kHz的时钟频率,ADC0809的转换时间是128μs,因此在A/D转换启动后调用一个延时函数(当然远大于128μs),这样,确保A/D转换已经结束。

2.1.2 查询方法

在程序中一直查询EOC管脚电平的状态,一旦检测到高电平表示转换完成。

2.1.3 中断方法

当转换完成EOC管脚向单片机发出中断请求,在中断服务子程序中进行数据传送。

本次设计中采用查询方法确认A/D转换的完成,此外,按照ADC0809的时序操作是保证A/D转换正确的前提,测量电压分辨率为VREF/2N=5V/28≈0.0196V。其部分代码如下:

2.2 LED显示子程序设计

3 Proteus仿真

在Proteus软件中,调节滑动变阻器RV1改变ADC0809输入通道IN0的模拟电压值,LED数码管显示数值随之改变。例如,当输入模拟电压为2.15V,虚拟电压表如图5所示,LED显示如图6所示。

由图5、6可知,两者的值基本上是一致的,误差较小,测量精度高,符合设计要求。

图5 虚拟电压表

图6 数字电压表的仿真结果

4 YL-236实验

使用亚龙YL-236的相关模块及元件构建数字电压表,其中,ADC0809的D0~D7接单片机的P1口,IN0接电压源的OUT端,CLK接时钟源的500kHz时钟信号,A、B、C、EOC、WR、RD作为采样的控制联络信号线。LED数码管的D0~D7、CS1、CS2、WR分别接单片机的P0口、P2.7、P2.6、P3.6,这里LED数码管的动态显示采用数据总线方式,结果如图7所示。当手动调节0~5V电压源的模拟电压输入值时,LED数码管的显示值随之改变。

图7 数字电压表的实验结果

5 小结

通过仿真与实验得出:基于ADC0809的数字电压表可以实现0~5V电压值的测量,分辨率约为20mV,具有测量精度高、显示直观等优点,因而在很多领域得到广泛的应用。

[1]陈飞,顾启民,王伟.基于Proteus和Keil的项目教学法在单片机教学中的应用[J].实验科学与技术,2013(10):27-29.

[2]高立新.基于Proteus软件的单片机仿真实验[J].常州信息职业技术学院学报,2011(3):59-60.

[3]朱晓玲.直流数字电压表设计与Proteus应用[J].通信电源技术,2012(2):59-60.

[4]张玲丽.基于Proteus的LCD数字电压表的设计与仿真[J].中国新通信,2014(22):65-66.

[5]金韦利,姜礼华.基于单片机的数字电压表设计[J].自动化与仪器仪表,2015(11):246-247.

【责任编辑:任小平renxp90@163.com】

Design and implementation of digital voltmeter based on 51SCM

YAN Min
(The Information Electronic Department,Yangzhou Business Branch of Jiangsu Union Technical Institute, Yangzhou 225127,China)

In this paper,we take the AT89C51microcontroller as the control core,use ADC0809analog digital converter chip design digital voltage meter,with LED digital tube to display real-time measuring voltage. Through simulation and experiments,it is concluded that the digital voltmeter based on ADC0809has the advantages of high measurement accuracy and direct display,compared with the traditional analog voltage meter.

ADC0809;single-chip microcomputer;LED digital tube;Proteus

TM933.22

A

1008-0171(2016)06-0018-04

2016-03-10

严敏(1982-),女,江苏扬州人,江苏联合职业技术学院扬州商务分院讲师,硕士。

猜你喜欢
管脚数码管电压表
如何判断电压表的测量对象
判断电压表测量对象有妙招
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
基于图像处理的异型电子元器件管脚偏移误差检测方法研究
电压表的妙用
再探电压表内阻的测量方法
CMOS数字IC管脚电容的估算与测量