使用8051微控制器的数字电压表

时间:2023-04-04来源:电子产品世界

在这个项目中,我将展示如何使用8051单片机设计一个数字电压表,并解释其工作原理。电压表是一种测量仪器,用于测量电网中两点之间的电压差。一般来说,有两种类型的电压表 - 一个是模拟电压表,另一个是数字电压表。

在模拟电压表中,指针在刻度上移动以表示电压。数字电压表在模数转换器的帮助下,直接以数字显示电压。这篇文章解释了如何用两种方法设计数字电压表:1)使用8051单片机;2)使用IC L7017。

Digital Voltmeter using 8051 Microcontroller and Voltage Sensor Image 1

使用8051单片机和电压传感器的数字电压表 图片1

使用8051单片机的数字电压表 

这个项目测量0V到25V的输入电压。在这里,输入电压应该是直流电压,以便在LCD上获得准确的输出。如果你应用交流电压作为输入,那么在LCD上会看到连续运行的数字,因为交流电压不断变化。

这个项目的主要部件是8051微控制器,一个电压传感器模块和一个ADC IC ADC0804。在这个项目中,我们使用模拟到数字的转换过程来显示电压。

模拟到数字的转换

在现实世界中,我们大多发现模拟数据。为了使用数字系统处理这些数据,我们需要将模拟数据转换为数字,这样微处理器或微控制器就能理解和处理这些数据。

Interfacing of Physical Quantity to Digital System

物理量与数字系统的衔接

换能器: 换能器或传感器用于将物理量转换为电能。光敏电阻、温度传感器、湿度传感器、气体传感器等都是传感器的例子。

ADC(模拟到数字转换器): ADC将输入的电气电压转换为数字值。

数字系统:该系统读取输入的数字数据,并在LCD上显示物理量,以便理解。

这里的ADC IC根据输入的电电压生成输出的数字值。8051微控制器读取这个数字值并显示在LCD上。

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

Digital Voltmeter using 8051 Microcontroller and Voltage Sensor Circuit Diagram


AT89C51微控制器

ADC0804集成电路

25V电压传感器

AT89C51编程板

可变电阻(用于演示程序)

直流适配器或电池

使用8051单片机的数字电压表电路设计

在上述电路中,模数转换器IC的数据位被连接到PORT2。LCD数据引脚连接到控制器的POTR3,控制引脚RS和EN分别连接到P1.6和P1.7。

ADC0804  

这是一个8位的模数转换器。该芯片使用逐次逼近法将模拟值转换为数字值。它只能接受一个模拟数据作为输入。这个IC的步长是通过改变引脚9的参考电压来改变的。如果这个引脚没有连接,VCC将是参考电压。

当步长为5V时,输入电压每上升19.53mV,输出就增加1个值。该芯片的转换时间取决于时钟源。

ADC特点

0到5V的模拟输入电压。

内置的时钟发生器。

差分式模拟输入。

可调节的参考电压。

下表显示了不同参考电压的不同步长。

在上面的电路图中,第9针(Vref/2)是开放的,所以输入电压跨度可以是0到5V。

步长 = Vref/(2 pow(n))

其中n是分辨率。对于ADC0804,分辨率n=8。数字输出可以用以下公式来计算

Dout = Vin/stepsize。

Vin - 模拟输入电压

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

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

从PORT2读取ADC值。

#define dat P2

val=dat*0.02;

乘以100后,得到一个三位数的正整数值。

val1=val*100;

分开各个数字并在LCD上打印,包括小数点。

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

display(temp);

display('.');

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

display(temp);

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

display(temp);

电压传感器

电压传感器模块是一个简单的分压器网络,将ADC的模拟输入范围增加到25V左右。

Interfacing Voltage Sensor with Arduino Voltage Sensor Pins

将电压传感器与Arduino的电压传感器引脚连接起来

代码

数字电压表电路如何使用8051单片机工作?

首先将程序刻录到at89c51单片机上。

现在按照电路图给出连接。

在电压传感器的输入端连接一个电池或任何电压源。

确保最大的模拟输入电压应小于25V DC。

在电压传感器的输入端连接一个数字多用表。

现在打开电路板的电源。

现在观察LCD和数字多用表,两者都显示相同的电压(或非常相似的电压)。

如果可能的话,试着慢慢改变模拟输入电压。现在你可以观察到万用表和LCD显示相同的电压,这样我们就可以说电压表工作正常了。

关闭电路板上的电源。

Digital Voltmeter using 8051 Microcontroller and Voltage Sensor Image 2

数字电压表电路应用

该系统用于测量低电压应用中的电压。

用于测量玩具电池。

我们可以用这个系统测量物理量,如温度、湿度、气体等,只需稍加修改。

数字电压表电路的局限性

输入的模拟电压范围应该是0到5V。

使用这个系统,我们一次只能测量一个模拟输入值。

使用ICL7107的数字电压表电路

电压表也可以在不使用任何微控制器的情况下设计。以下是使用L7017集成电路的电压表电路

在这里,我们设计了一个模拟数字转换器,作为数字电压表使用,该转换器为低功耗的三位半A/D转换器ICL7107,具有内部7段解码器,显示驱动器,参考和时钟。

一个优点是这个IC可以直接驱动非复用的七段显示器,而不需要任何外部解码电路。该电路可以在200mV到2V的范围内测量电压,间隔为0.001V。

电路背后的原理

这个电路是基于使用ICL7107作为模拟到数字转换器的原理。整个操作分为两个阶段--模数转换和解码。

模拟到数字的转换是通过积分和参考积分的过程完成的。换句话说,首先对输入信号进行积分,使积分器的输出成为斜率信号,然后对一个相反极性的参考电压进行积分,使积分器的输出回到零。

然后用显示解码器对得到的数字代码进行解码,以驱动显示单元。

使用ICL7107的数字电压表电路图

Circuit Diagram of Digital Voltmeter using ICL7107

如何设计数字电压表电路?

设计电路需要适当地选择以下的元件:

振荡电路元件的选择:  对于48KHz的典型振荡频率,振荡电阻被选择为100K左右,电容为100pF左右。

参考电容: 参考电容器的值被选择为0.1uF和1uF之间。这里我们选择一个0.5uF的电解质电容。

自动调零电容器: 自动调零电容器的选择要使其值在0.01uF和1uF之间。这里我们选择一个0.1uF的电容。

积分电容: 积分电容构成了积分电路的一个重要部分。其值由积分周期t、最佳积分电流I和积分电压Vint决定。对于83mSec的时间周期,4uA的电流和2V的电压,电容的价值被认为是大约0.16uF。这里选择一个0.22uF的电容。

积分电阻: 这个电阻的值是由满刻度模拟输入电压和最佳积分电流决定的。我们选择一个500K的电阻,满刻度的输入电压为2V。

如何操作数字电压表电路?

该IC由一个+/-5V的双电源供电。一旦电路通电,通过调整参考电阻来设置参考信号。参考电压需要约为输入电压的一半。振荡元件--电阻和电容决定了该设备的振荡或时钟频率。

参考电容器被充电到参考电压。然后,一个反馈回路被关闭,为自动调零电容器充电,以便补偿电压的任何波动。随后,转换器将输入端的差分电压在一个固定的时间内进行积分,这样积分器的输出就是一个斜率信号。

然后,一个已知的参考电压被施加到积分器的输入端,并允许其斜升,直到积分器的输出变为零。输出回到零的时间与输入信号成正比,数字读数为::

显示计数=(Vin/Vref)*1000。

下一个过程包括对数字计数进行解码,以产生一个七段兼容信号,从而驱动显示器。然后,数字输出被显示在复用的7段显示器上。

数字电压表电路的应用

该电路可用于数字万用表,提供测量电压的数字读数。

它可以用来测量交流和直流电压。

它可以用来测量物理量,如压力、温度、使用传感器电路和信号调节电路的压力。

它可以用于需要高精度和高分辨率的应用中。

数字电压表电路的局限性

它只能在低范围内测量电压。

使用的集成电路是CMOS器件,具有高度的静态性。

正负输入电压的参考电压不同会导致翻转误差,即共模误差。

使用2V的满刻度负输入电压有时会导致积分器的输出饱和。

LED驱动器的内部发热会导致性能下降。

参考温度系数、内部芯片耗散和封装热阻往往会增加噪声水平。

关键词: 8051 单片机 数字电压表 微控制器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版