8051单片机制作的数字电压表
该项目可以测量0到25V的输入电压。这其中的输入电压应为直流电压,这样才能在LCD上显示准确的输出。如果输入交流电压的话,那么LCD上的电压值会不断变化。
该项目的主心骨是8051单片机,加上一个电压传感器模块和ADC ADC0804。这个项目中,我们用的是模数转换来显示电压。
模数转换
真实世界中我们获得的是模拟数据。为了让这些数据用数字系统显示,我们需要将模拟数据转换为数字数据,这样单片机才能识别并处理数据。
1.传感器:传感器又叫换能器,可以将某个物理量转换为电能。光敏电阻,温度传感器,湿度传感器,气体传感器等,都是典型的换能器。2.ADC(模数转换器):ADC将输入电压转换为数字值。3.数字系统:该系统读取输入数据然后将物理量显示在LCD上。
ADC会负责将输入电压值转换为数字值。8051单片机读取该数字值并将其显示在LCD上。
8051单片机的数字电压表电路图
电路元件AT89C51单片机ADC080425V电压传感器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.参考温度系数,芯片内部热量逸散以及包装热阻都会提高骚扰电平。