基于51单片机的正负5V数字电压表( proteus仿真+程序+设计报告+讲解视频)

基于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单片机芯片。

img

以下为本设计资料展示图:

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后数码管显示测量的电压值。

调整滑动变阻器改变测量值。下图是5V,0V和-5V测量

img

img

img

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;
}

img

5. 设计报告

5276字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

随着现代电子技术的持续进步与革新,数字电压表在电子测量领域的应用范围愈发广泛,其重要性也日益凸显。传统的指针式电压表,尽管在早期的电子测量中发挥了重要作用,但其固有的缺陷,如读数误差较大、精度相对较低以及读数不够直观等问题,已经难以满足当前高精度、高效率的测量需求。相比之下,数字电压表以其读数准确无误、测量精度高、显示结果直观明了等显著优势,成为了电子测量领域的主流工具。

鉴于数字电压表的诸多优点,我们计划设计一款基于51单片机和ADC0808模数转换器的数字电压表。这款设计不仅具备重要的实际应用价值,能够广泛应用于各种需要精确测量电压的场合,如电子实验室、工业生产线等,而且对于学生而言,更是一次深入理解单片机应用技术和模数转换原理的绝佳机会。通过亲手设计并制作这款数字电压表,学生将能够亲身体验从理论到实践的转化过程,从而更加深入地掌握单片机的硬件电路设计、软件编程以及模数转换技术的核心要点。同时,这一过程也将极大地锻炼学生的实践能力、创新能力和解决问题的能力,为他们未来的学习和职业生涯奠定坚实的基础。

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、程序代码注释

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、原理图

8、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接(可点击):

通过网盘分享的文件:KEY_S0101

链接: https://pan.baidu.com/s/1Ifsm-4HxnM3Y_E0HbJDZGg?pwd=983s

提取码: 983s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive数仓要点总结

1.OLTP和OLAP区别 OLTP&#xff08;On-Line Transaction Processing&#xff09;即联机事务处理&#xff0c;也称为面向交易的处理过程&#xff0c;其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理&#xff0c;并在很短的时间内给出处理结果&#xff0c;是对用…

【实战手册】8000w数据迁移实践:MySQL到MongoDB的完整解决方案

🔥 本文将带你深入解析大规模数据迁移的实践方案,从架构设计到代码实现,手把手教你解决数据迁移过程中的各种挑战。 📚博主其他匠心之作,强推专栏: 小游戏开发【博主强推 匠心之作 拿来即用无门槛】文章目录 一、场景引入1. 问题背景2. 场景分析为什么需要消息队列?为…

运行小程序需要选择什么配置的服务器

主要是看有多少人浏览&#xff0c;如果是每天有几十个人浏览&#xff0c;通常2核或者4核就可以满足需求&#xff0c;内存的话建议4g或者8g&#xff0c;足够的内存可以使服务器同时处理多个请求&#xff0c;避免因内存不足导致的卡顿或程序崩溃。 硬盘存储方面&#xff0c;50GB…

基于SpringBoo的地方美食分享网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Solidity私有函数和私有变量区别,私有变量可以被访问吗

web3面试题 私有函数和私有变量区别&#xff0c;私有变量可以被访问吗 ChatGPT said: 在 Web3 开发&#xff0c;尤其是使用 Solidity 编写智能合约时&#xff0c;关于私有函数和私有变量的区别是常见的面试题。下面是详细解析&#xff1a; ✅ 私有函数&#xff08;Private Fu…

mongodb 安装配置

1.下载 官网下载地址&#xff1a;MongoDB Community Download | MongoDB 2.使用解压包 解压包安装&#xff1a;https://pan.baidu.com/s/1Er56twK9UfxoExuCPlJjhg 提取码: 26aj 3.配置环境&#xff1a; &#xff08;1&#xff09;mongodb安装包位置&#xff1a; &#xf…

多模态大语言模型arxiv论文略读(十九)

MLLMs-Augmented Visual-Language Representation Learning ➡️ 论文标题&#xff1a;MLLMs-Augmented Visual-Language Representation Learning ➡️ 论文作者&#xff1a;Yanqing Liu, Kai Wang, Wenqi Shao, Ping Luo, Yu Qiao, Mike Zheng Shou, Kaipeng Zhang, Yang Yo…

[LeetCode 45] 跳跃游戏2 (Ⅱ)

题面&#xff1a; LeetCode 45 跳跃游戏2 数据范围&#xff1a; 1 ≤ n u m s . l e n g t h ≤ 1 0 4 1 \le nums.length \le 10^4 1≤nums.length≤104 0 ≤ n u m s [ i ] ≤ 1000 0 \le nums[i] \le 1000 0≤nums[i]≤1000 题目保证可以到达 n u m s [ n − 1 ] nums[…

前端面试宝典---闭包

闭包介绍 使用闭包&#xff1a; 在函数内声明一个变量&#xff0c;避免外部访问在该函数内再声明一个函数访问上述变量&#xff08;闭包&#xff09;返回函数内部的函数使用完毕建议闭包函数null;译放内存 function createCounter() {let count 0;return function () {coun…

GPT4O画图玩法案例,不降智,非dalle

网址如下&#xff1a; 玩法1&#xff1a;吉卜力&#xff08;最火爆&#xff09; 提示词&#xff1a;请将附件图片转化为「吉卜力」风格&#xff0c;尺寸不变 玩法2&#xff1a;真人绘制 提示词&#xff1a;创作一张图片&#xff0c;比例4:3&#xff0c;一个20岁的中国女孩…

4.12~4.14【Q】cv homework6

我正在写GAMES101作业6&#xff0c;在这段代码中&#xff0c;我十分想知道inline Intersection Triangle::getIntersection(Ray ray) 是由哪个函数&#xff0c;哪段代码调用的&#xff1f;什么是Inline&#xff1f;详细解释&#xff0c;越细节越好 我正在写GAMES101作业6&…

MATLAB双目标定

前言&#xff1a; 现在有许多双目摄像头在出厂时以及标定好&#xff0c;用户拿到手后可以直接使用&#xff0c;但也有些双目摄像头在出厂时并没有标定。因而这个时候就需要自己进行标定。本文主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。 1、MATLAB工具箱标…

visual studio 常用的快捷键(已经熟悉的就不记录了)

以下是 Visual Studio 中最常用的快捷键分类整理&#xff0c;涵盖代码编辑、调试、导航等核心场景&#xff1a; 一、生成与编译 ​生成解决方案 Ctrl Shift B 一键编译整个解决方案&#xff0c;检查编译错误&#xff08;最核心的生成操作&#xff09;​编译当前文件 Ctrl F…

Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0.

今天写项目的时候碰到一个报错&#xff0c;在网上查找到了解决方法&#xff0c;这里备份一下。防止下次再次遇到 原文章链接&#xff1a;Sass import rules are deprecated and will be removed in Dart Sass 3.0.0. 报错内容如下&#xff1a; Deprecation Warning: Sass i…

【QT】QWidget 概述与核心属性(API)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Qt 目录 一&#xff1a;&#x1f525; 控件概述 &#x1f98b; 控件体系的发展阶段 二&#xff1a;&#x1f525; QWidget 核心属性 &#x1f98b; 核心属性概览&#x1f98b; 用件可用&#xff08…

Redis 在处理并发请求时,如何保证高效性和数据一致性

1. 单线程模型&#xff08;核心命令处理&#xff09; 单线程优势&#xff1a;Redis 的核心命令处理是单线程的&#xff08;基于内存操作&#xff0c;避免多线程竞争&#xff09;&#xff0c;所有命令按顺序执行&#xff0c;天然避免了多线程的锁竞争和上下文切换开销。非阻塞 …

flutter-Text等组件出现双层黄色下划线的问题

文章目录 1. 现象2. 原因3. 解决方法 1. 现象 这天我正在写Flutter项目的页面功能&#xff0c;突然发现我的 Text 文字出现了奇怪的样式&#xff0c;具体如下&#xff1a; 文字下面出现了双层黄色下划线文字的空格变得很大&#xff0c;文字的间距也变得很大 我百思不得其解&a…

cursor+高德MCP:制作一份旅游攻略

高德开放平台 | 高德地图API (amap.com) 1.注册成为开发者 2.进入控制台选择应用管理----->我的应用 3.新建应用 4.点击添加Key 5.在高德开发平台找到MCP的文档 6.按照快速接入的步骤&#xff0c;进行操作 一定要按照最新版的cursor, 如果之前已经安装旧的版本卸载掉重新安…

使用 IP 代理改 IP 后注意事项如何防封号

在使用一键换IP软件辅助网络营销账号切换时&#xff0c;需注意以下关键事项以确保账号安全并降低封号风险。 一、IP有效性及质量验证 确保更换的IP地址有效且质量高&#xff0c;低质量或失效的IP可能导致账号存活时间缩短。优先选择动态住宅IP&#xff08;如“兔子IP代理”提…

qt designer 创建窗体选择哪种屏幕大小

1. 新建窗体时选择QVGA还是VGA 下面这个图展示了区别 这里我还是选择默认&#xff0c;因为没有特殊需求&#xff0c;只是在PC端使用