基于51单片机的正负5V数字电压表( proteus仿真+程序+设计报告+讲解视频)
仿真图proteus7.8及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0101
1. 主要功能:
设计一个基于51单片机数字电压表
1、能够测量 -5V到+5V间的直流电压。
2、通过数码管显示测量结果。
3、以51单片机为核心,可以通过proteus仿真验证。
51单片机、数码管、运放
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
以下为本设计资料展示图:
2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
3. 仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后数码管显示测量的电压值。
调整滑动变阻器改变测量值。下图是5V,0V和-5V测量
4. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。
#include "reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
//--定义使用的IO口--// P1数据口
sbit adc0808_clk =P3^7;
sbit adc0808_start=P3^6;
sbit adc0808_eoc =P3^5;
sbit adc0808_oe =P3^4;
//数码管编码
uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//显示0~9,有小数点
uchar time=0,mode=0;//系统变量
float volt=0;
uchar num=0,fu=0;void adc0808_init()//初始化
{adc0808_start=0;adc0808_oe=0;
}uchar adc0808_read()//读取
{uchar i;_nop_();adc0808_clk=!adc0808_clk;adc0808_start=1;//启动转换for(i=0;i<10;i++)//产生脉冲{_nop_();adc0808_clk=!adc0808_clk;}adc0808_start=0;while(!adc0808_eoc)//等待转换结束{_nop_();adc0808_clk=!adc0808_clk;}adc0808_oe=1;//读取_nop_();i=P1;adc0808_oe=0;return i;
}
void delay(uint i)//延时
{while(i--);
}void main()//主函数
{adc0808_init();TMOD|=0X01;TH0=0X3C;TL0=0XB0; ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){//显示if(fu)P0=0x40;elseP0=0;smg2=0;delay(100);smg2=1; P0=smgduan1[num/10];smg3=0;delay(100);smg3=1; P0=smgduan0[num%10];smg4=0;delay(100);smg4=1; }
}
//定时器中断
void Timer0() interrupt 1
{uint i=0;if(time<10)//0.5stime++;else{time=0;i=adc0808_read();//测量volt=i;volt=(volt-127.5)*5/128;//计算电压volt=volt*5/4.9;}TH0=0X3C;TL0=0XB0;
}
5. 设计报告
5276字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等
随着现代电子技术的持续进步与革新,数字电压表在电子测量领域的应用范围愈发广泛,其重要性也日益凸显。传统的指针式电压表,尽管在早期的电子测量中发挥了重要作用,但其固有的缺陷,如读数误差较大、精度相对较低以及读数不够直观等问题,已经难以满足当前高精度、高效率的测量需求。相比之下,数字电压表以其读数准确无误、测量精度高、显示结果直观明了等显著优势,成为了电子测量领域的主流工具。
鉴于数字电压表的诸多优点,我们计划设计一款基于51单片机和ADC0808模数转换器的数字电压表。这款设计不仅具备重要的实际应用价值,能够广泛应用于各种需要精确测量电压的场合,如电子实验室、工业生产线等,而且对于学生而言,更是一次深入理解单片机应用技术和模数转换原理的绝佳机会。通过亲手设计并制作这款数字电压表,学生将能够亲身体验从理论到实践的转化过程,从而更加深入地掌握单片机的硬件电路设计、软件编程以及模数转换技术的核心要点。同时,这一过程也将极大地锻炼学生的实践能力、创新能力和解决问题的能力,为他们未来的学习和职业生涯奠定坚实的基础。
6. 设计资料内容清单&&下载链接
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、程序代码注释
2、proteus仿真
3、功能要求
4、软硬件流程图
5、开题报告
6、设计报告
7、原理图
8、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
资料下载链接(可点击):
通过网盘分享的文件:KEY_S0101
链接: https://pan.baidu.com/s/1Ifsm-4HxnM3Y_E0HbJDZGg?pwd=983s
提取码: 983s