基于YL-236单片机实训装置的数字电压表的设计方案
一、引言
本文引用地址://m.amcfsurvey.com/article/201612/328509.htm数字电压表采用数字化测量技术,可以将模拟量转换成数字量并加以显示。由于其具有测量精度高、抗干扰能力强等优点,被广泛应用于工业自动化仪表领域。下面本文就以亚龙YL-236单片机实训装置为平台,介绍数字电压表的实现方法。
二、方案总体设计
本设计选择AT89C51单片机作为核心控制器件,采用ADC0809实现A/D转换,用3位LED数码管数字来显示采集电压(范围0~5V)。设计框图如图1所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/328509_1_0.jpg)
三、硬件部分设计
1.转换芯片ADC0809
ADC0809具有8路模拟输入端口,8路模拟开关分时选通8个模拟通道,转换后的8位数字量锁存到三态输出锁存器中,在输出允许的情况下,可以从8条数据线D7~D0上读出,并可直接与单片机接口相连。ADC0809其引脚排列和具体功能可参考ADC0809说明文件,这里不再详述。
2.ADC0809与单片机的硬件连接
单片机与ADC0809接口电路如图2所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/328509_1_1.jpg)
74HC02可实现4路2输入或非门功能。连接时,将主机模块中单片机的P0.0~P0.7接到ADC0809的数据输出端D0~D7,用来接收ADC0809转换输出的数据;将单片机的P2.5、P3.6、P3.7接到ADC0809的CS、WR、RD端,作为A/D采样的控制联络线;将ADC0809的A、B、C接到ADC0809的D0、D1、D2口,通过P0的控制来选择ADC的采样通道。
3.数字电压表硬件模块接线
用YL-236实训装置实现本任务要求的硬件模块接线如图3所示。该电路由主机模块(MCU01)、显示模块(MCU04)和ADC/DAC模块(MCU07)组成。将时钟源1MHZ接到ADC电路的CLK口,由模拟电压源提供0~5V输入电压。
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/328509_1_2.jpg)
地址锁存允许信号ALE由P3.6控制通道地址选择,以WR作写选通信号。我们将ALE信号与START信号接在一起,这样使得AD0809在锁存通道地址的同时,也启动了A/D转换。
将主机模块中单片机的P0口作为数码管显示的段码使用,接到数码管的a~dp段端,将单片机的P3.6、P2.6、P2.7分别接到数码管的WR、CS2、CS1端,对数码管进行动态扫描显示。
四、软件部分设计
1.AD转换
图4为利用ADC0809进行A/D转换的程序流程图。
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/328509_1_3.jpg)
(1)定时传送方式;
(2)查询法;
(3)中断控制法。
不管采用哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
启动信号START启动后开始模数转换。对于ADC0809来说,当时钟频率一定时,其A/D转换时间是固定的(微秒级)。因此,我们可以设计一个延时函数delay(),等待一段时间(远大于A/D转换的时间),延时时间到时转换肯定已经完成了,之后就可以进行数据传送了。
参考流程图,我们可以编写对模拟通道0输入的模拟电压进行A/D转换的C语言程序,关键语句如下:
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/328509_1_4.jpg)
2.主函数流程图
主函数流程图如图5所示。
![](http://m.amcfsurvey.com/editerupload/fetch/20161101/328509_1_5.jpg)
编程时应注意,变量vol单位为毫伏。
因为ADC0809为8位模数转换器,输入模拟电压最大值为5V,即5000mV,所以分辨率为5000mV/28,因此程序中测量的电压值为采样AD值乘以5000mV/255,再将所得的数依次通过数码管显示。完成后可改变输入直流电压值,观察输入电压的变化情况。
五、总结
本方案详细介绍了数字电压表系统的设计,重点介绍了以YL-236亚龙单片机实训装置为平台的硬件连接和软件设计的方案,系统具有转换速度快、精度高、性能稳定等优点,且电路简单,工作可靠,具有很好的实用价值。
评论