首页 论坛 芯片产品和产业 北京交通大学 简易数字电压表的两种实现方式(单片机与模数转换器)

发帖 回复

[分享] 简易数字电压表的两种实现方式(单片机与模数转换器)
908 查看
5 回复
 楼主 | 发布于 2019-09-08 | 只看楼主
分享到:
本项目我们将展示如何用用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的烧录工具
可调电阻(展示用)

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.参考温度系数,芯片内部热量逸散以及包装热阻都会提高骚扰电平。
(0 ) (1 )
回复 举报

回复于 2019-09-08 沙发

感谢分享
(0 )
评论 (0) 举报

回复于 2019-09-12 2#

谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-09-19 3#

谢谢分享!!!!
(0 )
评论 (0) 举报

回复于 2019-09-25 4#

支持下,谢谢分享!
(0 )
评论 (0) 举报

回复于 2020-01-19 5#

谢谢分享!!!
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部