基于微控制器的数字电压表设计方案,使用8051微控制器的数字电压表的实现方法

数字电压表是一种测量电信号电压的电子仪器。它用于各种应用,包括电子、电力系统和自动化领域。在本文中,我们将讨论使用8051微控制器的数字电压表的实现。
8051微控制器是一种广泛使用的微控制器,适用于各种应用。它具有 4kb 片上 rom、128 字节片上 ram、32 个 i/o 引脚和一个 16位定时器。微控制器可以用汇编语言或高级语言(如c)进行编程。
该微控制器具有多种特性,非常适合用作数字电压表,例如内置adc(模数转换器)和8位定时器。
所需组件
要使用 8051 微控制器构建数字电压表,我们需要以下组件:
8051微控制器(at89c51)。
lcd 显示屏 –(7 段 4 位)。
模数转换器(adc0804 ic)。
电压传感器(25v)。
电池或直流适配器。
微控制器编程板。
晶体振荡器 = 12mhz。
3 个电阻数 = 10kω。
4 个电容器 = 2 个 33pf,1 个 150pf,第四个为 10μf/16v。
电路图
电路概述:
使用8051微控制器的数字电压表电路由多个组件组成,例如8051微控制器、lcd显示器、分压器网络和一些其他无源组件。分压器网络用于将电压降低到微控制器可以读取的水平。
分压器电路(adc0804 ic)
分压器电路用于将输入信号的adc范围增加到25v或将输入电压降压到安全水平,这可以通过微控制器进行测量。电位器用于调节电压表的电压范围。adc用于将模拟电压信号转换为数字信号,并可显示在lcd显示屏上。
分压器电路由两个电阻r1和r2组成,串联连接。输入电压施加在r1和r2的串联组合上,输出电压施加在r2上。r2与(r1+r2)之比决定了输出电压。我们可以通过改变r1和r2的值来调整输出电压范围。
adc通过将输入电压与基准电压进行比较,将模拟电压信号转换为数字信号。adc的分辨率取决于转换器中使用的位数。例如,8位adc可以测量0-5v的电压范围,每步分辨率为19.53
mv。
数字电压表的软件是用汇编语言或c语言编写的。该软件从adc读取电压信号,将其转换为数字值,并将其显示在lcd显示屏上。该软件还可以编程以实现其他功能,例如峰值电压测量、电压平均和电压记录。
总而言之,使用8051微控制器的数字电压表是一种简单且经济高效的解决方案,用于测量各种应用中的电压信号。它需要一个分压器电路、一个adc、一个电位计和一个lcd显示器。微控制器可以用汇编语言或c语言进行编程,以实现其他功能。
电路工作:
分压器网络由两个串联电阻组成。其中一个电阻器是电位计,可以调节以校准电压表。分压器网络的输出连接到微控制器的模拟输入引脚。微控制器使用其内置adc将模拟电压转换为数字值。
然后,数字值显示在lcd显示屏上。lcd显示屏通过数字接口连接到微控制器。微控制器将数字值发送到lcd显示屏,然后lcd显示屏以可读格式显示。
微控制器的编程包括初始化adc,读取模拟电压,将其转换为数字值,然后将其发送到lcd显示器。微控制器持续读取电压并更新显示。
如何为数字电压表编程微控制器at89c51?
上述过程概述了测试已编程和构建的电路的步骤(电路图和项目代码如下所述)。以下是比较和更详细解释的步骤:
将程序刻录到 at89c51 微控制器:此步骤涉及使用程序员将编译的程序代码传输到微控制器。程序代码通常用编程语言(如 c
或汇编语言)编写。程序代码包含微控制器为执行所需功能而执行的指令。
连接电路:将程序刻录到微控制器上后,可以使用电路图作为指导组装电路。该电路包括at89c51微控制器、电压传感器和显示元件。应小心连接,以确保电路接线正确且所有组件均正确供电。
连接电压源:电压源连接到电压传感器的输入端。确保最大模拟输入电压小于25v dc以防止损坏电路非常重要。
连接数字万用表:数字万用表连接到电压传感器的输入端子。万用表用于验证lcd和万用表上显示的电压读数是否相同或非常相似。
打开电路板电源:电路的电源已打开。这为微控制器和电路的其他组件提供电源。
观察显示:lcd和数字万用表显示器应显示相同或非常相似的电压读数。这表明电压表工作正常。
改变输入电压:如果可能,可以缓慢改变输入电压,以验证电压表是否继续显示准确的读数。
关闭电路板电源:关闭电路的电源以关闭组件的电源。
编程代码:
#include#define lcd p3#define dat p2sbit rs=p1^6;sbit e=p1^7;void delay (int);void display (unsigned char);void cmd (unsigned char);void init (void);void string (char *);void intro (void);char i=0;void delay (int d){unsigned char i=0;for(;d >0;d--){for(i=250;i >0;i--);for(i=248;i >0;i--);}}void cmd (unsigned char c){lcd=c;rs=0;e=1;delay(10);e=0;}void display (unsigned char c){lcd=c;rs=1;e=1;delay(10);e=0;}void string (char *c){while(*c){display(*c++);}}void init (void){cmd(0x38);cmd(0x01);cmd(0x0c);cmd(0x80);}void intro (void){string( electronics );cmd(0xc0);string( hub );delay(2000);cmd(0x01);string( digital );cmd(0xc0);string( voltmeter );delay(2000);cmd(0x01);cmd(0x80);}void main(){unsigned int temp=0;unsigned int temp1=0;float val=0.0;init();intro();dat=0xff;while(1){if(i==0){string( volts - );i++;}val=dat*0.02; // 0.02 is resolution of adcval=val/0.2; // 0.2 is nothing but (r2/(r1+r2)) resistor values in the voltage sensorcmd(0x89);if((val >=1.0) && (val=10.0) && (val< 100.0)){temp=val*100;temp1=((temp/1000)+48);display(temp1);temp1=(((temp/100)%10)+48);display(temp1);display('.');temp1=(((temp/10)%10)+48);display(temp1);}else{display(' ');string(0.0);}delay(1000);}while(1);}使用8051微控制器的数字电压表的优点:
1.数字电压表比模拟电压表更准确,更精密。
微控制器可以编程为执行除测量电压之外的其他任务。3.数字显示易于阅读和解释。
4.电路简单,建造成本低廉。
5.电压表可以使用电池供电,便于携带,易于现场使用。
局限性
该电路只能用于测量低压应用(高达25v)。
模拟电压的输入信号应在0v至5v之间。
该系统在任何给定时间只能测量单个模拟输入值。

工业互联网是制造行业的转型升级的之路
DshanMCU-R128s2 R128 模组
Digi 900HP模块API帧实践操作过程
Magic Leap最新访谈: 将重塑我们周围的世界
DS70000系列数字示波器的产品特点
基于微控制器的数字电压表设计方案,使用8051微控制器的数字电压表的实现方法
物联网如何避免计划外停机
基于CW32F030C8T6的舵机控制应用
叉车电池怎么选:选锂电还是铅酸?带你一起分析
我国首个出口伊斯坦布尔无人驾驶地铁下线
华为荣耀V9将发布,最痛苦的不是友商而是华为Mate9用户
可编程逻辑控制器使用哪些软件语言?
紫外线消毒在家用净水器中的应用分析
CNN误差反传时旋转卷积核的简明分析
CPU的计算能力是怎么来的?开关如何变成的CPU?
跌宕起伏的40年,世界杯直播与通信技术的不解情缘
智能制造是制造业转型升级主攻方向
SAFE Identity为医疗保健行业引入IoMT认证
耐压24V单节双节三节四节2A内置MOS管开关型锂电池充电IC FS5175AE介绍
关于FPGA的几点问题,你了解吗?