`本项目我们将展示如何用用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都显示同样电压时,我们就可以认为该电压表已经正常工作了。
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.参考温度系数,芯片内部热量逸散以及包装热阻都会提高骚扰电平。 `
|