您的位置:控制工程论坛网论坛 » 仪器仪表 » 基于ADC0809 的数字电压表

liye123

liye123   |   当前状态:在线

总积分:102  2024年可用积分:0

注册时间: 2012-08-24

最后登录时间: 2012-08-31

空间 发短消息加为好友

基于ADC0809 的数字电压表

liye123  发表于 2012/8/24 14:25:03      1496 查看 3 回复  [上一主题]  [下一主题]

手机阅读

  摘要:本设计用ADC0809来进行电压的采集及模数转换,用AT89S52单片机来做控制单元,进行电压的测量和显示。该数字电压表具有电路简单,成本低等优点,可以方便地进8路A/D转换量的测量,并可选择在数码管上滚动显示或单路显示的不同工作模式。

  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所示。

图1 数据采集电路

  3 软件设计

  3 . 1 主程序

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

图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语言实现,程序简单可读写性强,效率高。能够实现八路待测电压测量,还能够自由选择要测量的通道,与传统的电路相比,具有方便操作、处理速度快、稳定性高、性价比高的优点,具有一定的使用价值。

1楼 0 0 回复
  • hhgd

    hhgd   |   当前状态:在线

    总积分:124  2024年可用积分:0

    注册时间: 2012-08-15

    最后登录时间: 2012-10-31

    空间 发短消息加为好友

    hhgd   发表于 2012/8/25 15:25:50

    吼吼,好文章,楼主辛苦了。

    2楼 回复本楼

    引用 hhgd 2012/8/25 15:25:50 发表于2楼的内容

  • kristen

    kristen   |   当前状态:在线

    总积分:152  2024年可用积分:0

    注册时间: 2012-07-13

    最后登录时间: 2013-05-27

    空间 发短消息加为好友

    kristen   发表于 2012/9/4 17:45:34

    现在好像专门的电压表用的少呢,都直接用万用表了,现在万用表价格又不贵,功能比较齐全,电压表在学校时用过,后来工作了后直接换成了福禄克的万用表。
    3楼 回复本楼

    引用 kristen 2012/9/4 17:45:34 发表于3楼的内容

  • whtlhgdq

    whtlhgdq   |   当前状态:在线

    总积分:699  2024年可用积分:0

    注册时间: 2012-07-30

    最后登录时间: 2012-11-15

    空间 发短消息加为好友

    whtlhgdq   发表于 2012/9/25 10:37:20

    武汉天立华高电气设备有限公司欢迎您的到来…………

    http://www.whtlhgdq.com

    4楼 回复本楼

    引用 whtlhgdq 2012/9/25 10:37:20 发表于4楼的内容

总共 , 当前 /