0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ADC0809和AT89S52单片机的数字电压表的设计

电子设计 来源:郭婷 作者:电子设计 2018-11-29 09:12 次阅读

1.引言

本设计待测的输入电压为8路,电压范围为0~5V,使用目前广泛使用的AT89S52来做控制系统,用ADC0809来进行模拟电压的采集及模数转换,实现采集8路数据,并将结果在四位一体数码管上进行滚动显示或单独显示的功能,测量的最小分辨率为0.019V.

2 硬件设计

2 . 1 系统构成

该系统主要包括几大模块:数据采集模块、A/D转换模块、控制模块、显示模块、按键模块等。采用AT89S52作为控制模块,A/DC0 8 0 9作为A/D转换模块的核心,ADC0809本身具有8路模拟量输入端口,通过C、B、A,3位地址输入端,能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。LED数码管的显示采用软件译码动态显示,通过按键模块的操作可以选择8路循环显示,也可以选择某条单路显示。

2 . 2 数据采集电路

数据采集电路是系统的主要组成部分,ADC0 8 09具有8路模拟量输入通道IN0~IN7,通过3位地址输入端C、B、A(引脚23~25)进行选择。引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部锁存器中,经内部译码电路译码选中相应的模拟通道。引脚6为启动转换控制端START,当输入一个2 μ s宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。引脚7为A/D转换器,当开始转换时,EOC信号为低电平,经过一段时间,转换结束,转换结束信号EOC输出高电平,转换结果存放于ADC0809内部的输出数据寄存器中。引脚9脚为A/D转换数据输出允许控制端OE,当OE为高电平时,存放于输出数据锁存器中的数据通过ADC0809的数据线D0~D7输出。引脚10为ADC0809的时钟信号输入端CLOCK.在连接时,ADC0809的数据线D0~ D7与AT89S52的P1口相连接,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89S51的P3口相连接,转换结束信号EOC与AT89S52的P3.2相连接。时钟信号输入端CLOCK信号,由单片机的地址锁存信号ALE得到,采集电路如图1所示。

基于ADC0809和AT89S52单片机的数字电压表的设计

图1 数据采集电路

3 软件设计

3 . 1 主程序

主程序包含初始化部分,调用A/D转换子程序和调用显示子程序,如图2所示。

基于ADC0809和AT89S52单片机的数字电压表的设计

图2 主程序流程图

初始化部分包含存通道数据缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个初始标志位。

初始化时标志位设置为0,默认为循环显示,当它为1时,则单路显示,标志位通过外部按键控制。

3 . 2 数据处理子程序

ADC0809转换之后输出的结果是8位二进制数。由公式(1)可知,当ADC0809输出为(111111111)时,输入电压值VI=5.00V;当ADC0809输出为(00000000)时,输入电压值为VI=0.00V;当ADC0809输出为(10000000)时,输入电压值VI=2.50V.由于单片机进行数学运算时结果只取整数部分,因此当输出为(10000000)时计算出的电压值VI=2.00V,很不准确。为了提高精确度,必须把小数部分保留,具体方法是:如果小数点后保留两位,在运算的时候分子乘以100,保留三位就乘以1000.本设计是在小数点后保留两位,运算方式如公式(2)。

VI=Dout /255×5 (1)

VI=Dout/255×5×100=Dout×100/51 (2)

由式(2)可知当ADC0809输出为(10000000)时,单片机运算结果为250.然后由单片机将250除以10得到商为25,余数为0,再将25除以10得到商为2,余数为5.由此得到较为精确的数值。

4 结语

本设计是基于ADC0809设计的电压检测装置。采用AT89S52单片机进行数据控制、处理,结构简单,元件较少,成本较低,软件采用C语言实现,程序简单可读写性强,效率高。能够实现八路待测电压测量,还能够自由选择要测量的通道,与传统的电路相比,具有方便操作、处理速度快、稳定性高、性价比高的优点,具有一定的使用价值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22354

    浏览量

    645551
  • 单片机
    +关注

    关注

    5992

    文章

    43911

    浏览量

    619664
  • 控制系统
    +关注

    关注

    41

    文章

    5902

    浏览量

    108329
收藏 人收藏

    评论

    相关推荐

    单片机+ADC0809=数字电压表

    单片机ADC0809数字电压表
    发表于 06-02 17:56

    8155和ADC0809怎么同时接到At89S52上啊???急用!!!!!.....

    各位大虾,,小弟才疏学浅,,跪求8155和ADC0809如何同时接到At89S52上,,,时间紧急,,还有一天时间{:soso_e109:}8155接上了,,ADC0809不知道怎么接了!!
    发表于 06-11 17:13

    AT89S52ADC0809电压采集器,怎么做

    我现在又ADC0809AT89S52 还有一个共阳的4位数码管,能不能给我仿真和源程序
    发表于 11-11 14:51

    基于单片机数字电压表设计与仿真

    采用AT89C52单片机作为控制核心器件,ADC0809作为模拟信号转换为数字信号用。ADC0809是8位的模/数转换芯片,片内有8路模拟选
    发表于 01-11 09:15

    基于单片机数字电压表proteus仿真

    基于单片机数字电压表proteus仿真 ADC0809模数转换 液晶显示0~50V
    发表于 01-20 10:56

    数字电压表设计,基于AT89C52单片机ADC0804和AD736芯片

    基于AT89C52单片机ADC0804和AD736芯片的数字电压表设计!!!!!!!!
    发表于 03-05 10:34

    ADC0809单片机的连接问题

    看到好多资料上ADC080989C52单片机的连接方式是下图,v而有的情况却是这样的这是什么原因呢?请各位大侠赐教!
    发表于 05-21 10:00

    AT89S52ADC0809做一个模数转换的最小系统

    AT89S52ADC0809做一个模数转换的最小系统,可是实物做完以后对0~5v进行模数转换时,在数码管上显示的结果一直再跳,不稳定,只有0v和5v是稳定不动的。但是同样的方式用proteus仿真就能非常稳定的实现模数转换。这是为什么?
    发表于 07-27 14:47

    基于AT89C52单片机数字电压表的设计资料分享

    一、系统组成及工作原理1.1 系统组成该基于AT89C52单片机数字电压表设计由AT89C51单片机
    发表于 12-02 08:30

    ADC0809数字电压表

    jiyu基于ADC0809和51单片机实现的简单宜兴的数字电压表,程序简单。
    发表于 05-16 15:53 62次下载

    数模转换ADC0809的应用--数字电压表

    数模转换ADC0809的应用--数字电压表,快来下载学习吧
    发表于 07-04 18:26 72次下载

    使用单片机ADC0809设计数字电压表的资料和电路图及程序免费下载

    本文档的主要内容详细介绍的是使用单片机ADC0809设计数字电压表的资料和电路图及程序免费下载。
    发表于 08-12 17:33 25次下载
    使用<b class='flag-5'>单片机</b>和<b class='flag-5'>ADC0809</b>设计<b class='flag-5'>数字</b><b class='flag-5'>电压表</b>的资料和电路图及程序免费下载

    使用单片机AT89S51和ADC0809设计一个数字电压表的资料概述

    利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四
    的头像 发表于 06-21 11:39 3960次阅读

    单片机AT89S51与ADC0809设计数字电压表

    利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四
    发表于 03-18 15:20 38次下载
    <b class='flag-5'>单片机</b>AT<b class='flag-5'>89</b>S51与<b class='flag-5'>ADC0809</b>设计<b class='flag-5'>数字</b><b class='flag-5'>电压表</b>

    通过模数转换芯片ADC0809和51单片机实现简易电压表仿真

    通过ADC0809和51单片机实现简易电压表仿真
    发表于 11-23 16:20 41次下载
    通过模数转换芯片<b class='flag-5'>ADC0809</b>和51<b class='flag-5'>单片机</b>实现简易<b class='flag-5'>电压表</b>仿真