首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于YL-236单片机实训装置的数字电压表的设计方案

基于YL-236单片机实训装置的数字电压表的设计方案

一、引言
  数字电压表采用数字化测量技术,可以将模拟量转换成数字量并加以显示。由于其具有测量精度高、抗干扰能力强等优点,被广泛应用于工业自动化仪表领域。下面本文就以亚龙YL-236单片机实训装置为平台,介绍数字电压表的实现方法。
  二、方案总体设计
  本设计选择AT89C51单片机作为核心控制器件,采用ADC0809实现A/D转换,用3位LED数码管数字来显示采集电压(范围0~5V)。设计框图如图1所示。

  


  三、硬件部分设计
  1.转换芯片ADC0809
  ADC0809具有8路模拟输入端口,8路模拟开关分时选通8个模拟通道,转换后的8位数字量锁存到三态输出锁存器中,在输出允许的情况下,可以从8条数据线D7~D0上读出,并可直接与单片机接口相连。ADC0809其引脚排列和具体功能可参考ADC0809说明文件,这里不再详述。
  2.ADC0809与单片机的硬件连接
  单片机与ADC0809接口电路如图2所示。

  


  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输入电压。

  



  地址锁存允许信号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转换的程序流程图。

  


  A/D转换后的数据应传给单片机进行处理。数据传送之前必须确认A/D转换已经完成。常用的有以下几种方法:
  (1)定时传送方式;
  (2)查询法;
  (3)中断控制法。
  不管采用哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
  启动信号START启动后开始模数转换。对于ADC0809来说,当时钟频率一定时,其A/D转换时间是固定的(微秒级)。因此,我们可以设计一个延时函数delay(),等待一段时间(远大于A/D转换的时间),延时时间到时转换肯定已经完成了,之后就可以进行数据传送了。
  参考流程图,我们可以编写对模拟通道0输入的模拟电压进行A/D转换的C语言程序,关键语句如下:

  


  2.主函数流程图
  主函数流程图如图5所示。

  


  编程时应注意,变量vol单位为毫伏。
  因为ADC0809为8位模数转换器,输入模拟电压最大值为5V,即5000mV,所以分辨率为5000mV/28,因此程序中测量的电压值为采样AD值乘以5000mV/255,再将所得的数依次通过数码管显示。完成后可改变输入直流电压值,观察输入电压的变化情况。
  五、总结
  本方案详细介绍了数字电压表系统的设计,重点介绍了以YL-236亚龙单片机实训装置为平台的硬件连接和软件设计的方案,系统具有转换速度快、精度高、性能稳定等优点,且电路简单,工作可靠,具有很好的实用价值。
返回列表