查看: 1752|回复: 0

简易数字电压表的两种实现方式(单片机与模数转换器)

[复制链接]
  • TA的每日心情
    无聊
    2018-10-12 09:46
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-9-4 09:50:21 | 显示全部楼层 |阅读模式
    分享到:
    本项目我们将展示如何用用8051单片机来设计一个数字电压表,并解释它的工作原理。电压表是一个测试仪器,工程师用它来检测电路网络中两间之间的电平差。电压表一般有两种,一种是模拟电压表,一种是数字电压表。


    模拟电压表中指针的移动来代表电压的变化。数字电压表可以直接以数字的方式来显示,这都要归功于模数转换器。本文将为你解释两种设计数字电压表的方法1)8051单片机 2)ICL7017(Intersil的模数转换器)。


    8051单片机制作的数字电压表


    该项目可以测量0到25V的输入电压。这其中的输入电压应为直流电压,这样才能在LCD上显示准确的输出。如果输入交流电压的话,那么LCD上的电压值会不断变化。

    该项目的主心骨是8051单片机,加上一个电压传感器模块和ADC ADC0804。这个项目中,我们用的是模数转换来显示电压。


    模数转换

    真实世界中我们获得的是模拟数据。为了让这些数据用数字系统显示,我们需要将模拟数据转换为数字数据,这样单片机才能识别并处理数据。

    1.传感器:传感器又叫换能器,可以将某个物理量转换为电能。光敏电阻,温度传感器湿度传感器气体传感器等,都是典型的换能器。
    2.ADC(模数转换器):ADC将输入电压转换为数字值。
    3.数字系统:该系统读取输入数据然后将物理量显示在LCD上。

    ADC会负责将输入电压值转换为数字值。8051单片机读取该数字值并将其显示在LCD上。


    8051单片机的数字电压表电路图


    电路元件
    AT89C51单片机
    ADC0804
    25V电压传感器
    AT89C51的烧录工具
    可调电阻(展示用)
    DC适配器电池


    8051单片机制作的数字电压表设计原理

    以上电路中,模数转换器的数据引脚连接P2。LCD的数据引脚则连接P3,控制引脚RS和EN分别连接到P1.6和P1.7。


    ADC0804


    这是一个8位模数转换器。该IC使用了逐次逼近法(SAR)来将模拟量转换为数字量。但它一次只能输入一个模拟量。该IC的步长则会根据引脚9的参考电压值而改变。如果该引脚留空的话,则VCC为参考电压。

    当步长为5V时,输入电压每增加19.53mV,输出则增加1。转换时间则取决于IC的时钟源。


    ADC的特点

    0到5V的模拟电压输出
    内置时钟生成器
    异步模拟输入
    可调参考电压


    以上电路图中,引脚9(Vref/2)留空,所以输入电压的范围在0到5V间。

    步长=Vref/(2的n次幂)

    其中的n为分辨率,ADC0804的分辨率n=8。所以其数字输出值可以用以下公式计算。

    Dout=Vin/步长

    Vin为模拟输入电压

    假设模拟输入电压为4V的话,那么数字输出为Dout=4/19.53mV=204


    将模拟输入转换为数字量的步骤

    1.从P2读取ADC值
    #define dat P2

    val=dat*0.02;

    2.将该值乘以100后,可以获得一个3位正整数。

    val1=val*100;

    3.将数字包含小数点显示到LCD上。

    temp=(((val1/100)%10)+48);

    display(temp);

    display(‘.’);

    temp=(((val1/10)%10)+48);

    display(temp);

    temp=((val1%10)+48);

    display(temp);


    电压传感器


    电压传感器模块是一个分压器网络,可以将ADC模拟输入的范围提高到25V左右。


    代码

    代码见底部附件


    如何操作8051单片机的数字电压表

    1.将程序烧写进AT89C51单片机里。
    2.按电路图来对硬件进行连接。
    3.将电池或任意电压源作为电压传感器的输入。
    4.确保最大的模拟输入电压小于25V。
    5.将一个万用表连到电压传感器的输入引脚。
    6.为板子上电。
    7.同时观察LCD和万用表,现在应该是显示同样的电压(或者是接近的电压),
    8.如果可以的话,极可能缓慢改变模拟电压的输入。这样如果看到万用表和LCD都显示同样电压时,我们就可以认为该电压表已经正常工作了。
    9.关闭电源



    8051数字电压表电路的应用
    用于测量低压应用的电压
    用于测量玩具电池
    加以一些改进后可以测量某些物理量,比如温度、湿度和气体浓度等。


    8051数字电压表电路的局限
    模拟输入电压应处于0到5V之间
    该系统一次只能测量一个模拟量


    ICL7107制作的数字电压表

    在无单片机的情况下也可以制作出电压表。以下是用ICL7017制作的电压表电路。

    这里我们用模数转换器来设计一个低功率的3.5位A/D转换器,ICL7107内部有7段数码管解码器,显示驱动,一个参考电平和一个时钟。

    使用该IC的优点在于可以直接驱动7段数码管而不需要其他外部解码电路。该电路可以测量200mV到2V之间的电压,且刻度为0.001V。


    电路背后的原理

    该电路的主要原理就是利用ICL7107的模数转换器特性。整个过程分为两个部分,模数转换和解码。

    模数转换的过程是靠积分和参考积分完成的。换句话说,首先对输入信号进行积分以使积分器的输出达到斜坡信号,然后积分相反极性的参考电压以使积分器的输出归零。

    由此获得的数字代码再由显示解码器解码,从而驱动并显示在数码管上。


    ICL7107制作的数字电压表电路图



    数字电压表电路是如何设计出来的

    设计数字电压表需要合理地运用一下几个部分
    1.振荡电路元件的选择:对典型的48kHz振荡频率来说,电阻应该选取100kΩ左右,电容在100pF左右。
    2.参考电容:参考电容的值应该位于0.1uF到1uF之间。这里我们选取了0.5uF的电解电容。
    3.自动调零电容:自动调零用的电容应处于0.01uF到1uF间,这里我们选取0.1uF的电容。
    4.积分电容:积分电容是积分电路中至关重要的一部分。它的参数由积分周期t,合适的积分电流I和积分电压Vint决定。比如若周期为83ms,电流为4uA,电压为2V时,该电容的值应取0.16uF。此处我们选用一个0.22uF的电容。
    5.积分电阻:电阻的值应由满量程的模拟电压以及合适的积分电流决定。在最大的输入电压2V下,我们选取一个500kΩ的电阻。


    该数字电压表电路是如何运作的?

    IC是由+/- 5V的双电源供电的。一旦电路上电后,参考信号则由参考电阻来调整。参考电压需要是输入电压的一般。振荡元件-电阻和电阻决定了设备的振荡或时钟频率。

    参考电阻两端电压会变为参考电压。然后闭合反馈回路以对自动零电容器充电,从而补偿电压的任何波动。转换器将输入端的差分电压积分固定时间,使得积分器的输出为斜坡信号。

    然后将已知的参考电压施加到积分器的输入端,并爬升至积分器的输出变为零。输出返回零所需的时间与输入信号成正比,数字读数如下:

    数字读数 = (Vin/Vref)*1000

    下一步包括解码数字度数并产生一个7段数码管可以识别的信号,这样才能驱动其显示。数字输出会出现在多路复用的数码管上。


    IC数字电压表电路的应用
    1.数字万用表中电压的测量。
    2.测量交流和直流电压。
    3.运用传感器电路与信号调理电路来测量物理量比如气压,温度,应力等。
    4.可以用于需要高精确度和高分辨率的应用中。


    IC数字电压表电路的局限
    1.测量电压的量程有限。
    2.所用IC是一个CMOS设备,所以静电干扰极大。
    3.正负输入电压与参考电压的电压差会导致超量程翻转误差,比如共型误差。
    4.输入使用满量程的负电压(-2V)有时会导致积分器输出饱和。
    5.LED驱动的内部热量会导致性能衰减。
    6.参考温度系数,芯片内部热量逸散以及包装热阻都会提高骚扰电平。






    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 15:39 , Processed in 0.118615 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.