基于51单片机数控直流电压源proteus仿真LCD显示+程序+设计报告+讲解视频

基于51单片机数控直流电压源proteus仿真LCD显示( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0072

讲解视频

基于51单片机数控直流电压源proteus仿真+程序+设计报告+讲解视频

1. 主要功能:

基于51单片机的数控电压源设计

1.单片机控制DA转换器使得输出电压为0-5V;

2.按键控制输出电压大小,一个按键控制电压值加,一个按键控制电压值减;

3.通过LCD1602显示输出的电压值;

4.使用DAC0832做DA转换;

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

img

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

2. 讲解视频:

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

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD显示设置输出电压2.5V,实际输出2.19V。

img

可以通过按键设置输出的电压值。

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

LCD1602显示部分代码

/*********************************************************
LCD1602部分
**********************************************************/
void delay_uint(uint i)
{while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{e=0;rs=0;rw=0;P1=com;delay_uint(20);e=1;delay_uint(20);e=0;
}/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{e=0;rs=1;rw=0;P1=dat;delay_uint(20);e=1;delay_uint(20);e=0;	
}/********************************************************************
* 名称 : write_sfm(uchar hang,uchar add,uchar date)
* 功能 : 设置当前行和列
* 输入 : 行,列
* 输出 : 无
***********************************************************************/
//void write_sfm(uchar hang,uchar add)
//{
//	if(hang==1)   			   //设置当前行
//		write_com(0x80+add);
//	else
//		write_com(0x80+0x40+add);	
//}/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{if(hang==1)   write_com(0x80+add);elsewrite_com(0x80+0x40+add);while(1){if(*p == '\0')  break;write_data(*p);p++;}	
}/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶 
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{write_com(0x38);						//数据总线为8位,显示2行,5x7点阵write_com(0x0c);						//开显示,有光标,光标闪烁write_com(0x06);						//光标自动右移delay_uint(1000);						//等待设置完成
}

主函数

/********************************************************************
* 名称 : main()
* 功能 : mian函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{完整代码见文件下载链接uchar i=255;init_1602();write_string(1,1,'h');key_init();   //外部中断初始化temp=0x7D;sei();       //开总中断while(1){ADIN = temp;	  //等待中断,实时保持输出DAC_cs=0;     // 选中芯片,低电平有效DAC_wr=0;    // 数据锁存器写选通输入线, 向 DAC0832芯片写入转换的数字量DAC_cs=1;    // 关闭等待DAC0832输出DAC_wr=1;    //锁存起来	  dis[8] = (temp*2%1000)/100+0x30; //百dis[10] = (temp*2%100)/10+0x30;  //十dis[11] = temp*2%10+0x30; write_string(1,0,dis); while(--i);while(--i);while(--i);}
}

5. 设计报告

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

img

随着电子技术日新月异的进步,数控电压源在众多应用领域中的价值与作用日益显著,无论是工业自动化控制、教学实验演示、科研项目研究,还是电子产品测试和校准等方面,都展现出其无可替代的优势。鉴于此,本设计项目的核心目标是基于51系列单片机,在Proteus仿真平台上构建一个简易且功能完善的数控电压源系统。

该设计将充分利用Proteus强大的电路仿真功能和51单片机的灵活编程特性,实现对输出电压的精确数字化控制。具体功能包括:通过编程设定并实时调整输出电压值,确保电压输出范围0-5V且精度高;采用图形化界面进行人机交互,方便用户直观地设置和监控电压参数;此外,借助Proteus仿真平台,设计师可以在设计阶段就进行全面的功能验证和性能测试,减少实际硬件制作过程中的错误和成本,提高开发效率。总体而言,本设计旨在打造一款基于51单片机的简易数控电压源仿真模型,为相关领域的教学、学习及初步研发提供便捷高效的工具,进一步推动电子技术在各行业的深入应用和发展。

通过Proteus软件进行模拟测试,可以验证设计的可行性和正确性,从而缩短开发周期、降低开发成本。我们希望能够掌握相关的硬件和软件设计方法,为今后的学习和工作打下坚实的基础。同时,我们也希望能够通过这次设计,培养我们的团队协作能力和创新精神。

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

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

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

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、讲解视频

Altium Designer 安装破解

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

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

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

img

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

https://docs.qq.com/doc/DS1l0T3NKSGlubkpL

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

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

相关文章

博途建立S7-1200PLC与HMS AB7013Profinet通讯

1、新建一个博图项目1200PLC .CPU 1214C ACDC/RIY 6ES7 214-1BG31-0x80 2、安装GSD文件 Install general station description fle (GsD) GSDMLV2.3-HMS-ABC PROFINET GSD 3、连接PLC 4、在线访问 5、增加访问子网络 6、设定IP地址 7、增加AnyBus模块 8、设定模块的IP地址及…

大语言模型(Large Language Model,LLM)简介

1. 什么是大语言模型 它是一种基于深度学习的人工智能模型,它从大量来自书籍、文章、网页和图像等来源的数据中学习,以发现语言模式和规则,如处理和生成自然语言文本。通常,大语言模型含数百亿(或更多)参数…

Spring Cloud Gateway Server MVC

之前你如果要用spring cloud gateway ,就必须是webflux 的,也就是必须是异步响应式编程。不能和spring mvc 一起使用。现在spring cloud 新出了一个可以不用webflux的gateway。 具体使用mvc的gateway步骤如下 普通的Eureka Client的项目 如果你只是想测…

Qt程序可执行文件打包

目录 一、新建一个目录二、命令行2.1 添加临时变量2.2 打包命令 三、添加动态库四、普通 Qt 项目打包 Qml 项目打包 笔者写的python程序打包地址(https://blog.csdn.net/qq_43700779/article/details/136994813) 一、新建一个目录 新目录(例如test)用以…

超高并发下Redis热点数据风险破解

1 介绍 作者是互联网一线研发负责人,所在业务也是业内核心流量来源,经常参与 业务预定、积分竞拍、商品秒杀等工作。 近期参与多场新员工的面试工作,经常就 『超高并发场景下热点数据』 可用性保障与候选人进行讨论。 本文聚焦一些关键点技术进行讨论,并总结一些热点场景…

vscode的一些技巧

技巧1:调试时传参数 在launch.json的configuration中"pwd"或者"program"选项之后添加如下选项: “--args”:["参数1", "参数2", ..., "参数3] 参数之间使用逗号隔开 技巧2:断点 普通断点使…

网络协议栈--传输层--UDP/TCP协议

目录 本节重点一、再谈端口号1.1 再谈端口号1.2 端口号范围划分1.3 认识知名端口号(Well-Know Port Number)1.4 回答两个问题1.5 netstat1.6 pidof 二、UDP协议2.1 UDP协议段格式2.2 UDP的特点2.3 面向数据报2.4 UDP的缓冲区2.5 UDP使用注意事项2.6 基于UDP的应用层协议2.7 UDP…

生产力工具|安装更新R软件(R、studio)

内容介绍: 安装R软件: 下载 R X64 3.5.1: 访问官方R网站 https://cran.r-project.org/。选择适合Windows版本的安装包。将安装包下载到您的计算机。 本地安装: 运行下载的“R-3.5.1-win.exe”文件。按照安装向导,选择安装路径,取消…

Day08 Java复习8 Spring MVC概念

Day09 Java复习9 Spring MVC spring mvc 的核心组件是什么? DispatcherServlet 1.JAVA 和Spring 、Spring Boot 、Spring MVC的关系 你要举办一个生日派对,而且你希望它既特别又好玩。Java就像是举办派对的地方,Spring、Spring Boot和Spri…

20240319-图论

图论练习题目 拓扑排序深度优先搜索方法广度优先搜索方法 无向无权图无向有权图有向无权图 利用广度优先搜索算法有向有权图 带排序的广度优先算法/dijkstra最小生成树prims算法Kruskals Algorithm 最小割 min-cut二分图 Bipartite Graph 队列例题1 所有可能的路径例题2 岛屿数…

stm32知识总结--简单复习各部件

目录 内部结构 部件介绍 配置步骤 之前学了很多部件,配置了很多参数,但是没有很系统地把他们连接在一起,今天这个图里简洁描述了资源与资源之间的关系。 内部结构 部件介绍 黑框部分为CPU、内部有一个内核专门处理事件,所有的…

Ubuntu Desktop 更改默认应用程序 (Videos -> SMPlayer)

Ubuntu Desktop 更改默认应用程序 [Videos -> SMPlayer] References System Settings -> Details -> Default Applications 概况、默认应用程序、可移动介质、法律声明 默认应用程序,窗口右侧列出了网络、邮件、日历、音乐、视频、照片操作的默认应用程序…

【stable diffusion扩散模型】一篇文章讲透

目录 一、引言 二、Stable Diffusion的基本原理 1 扩散模型 2 Stable Diffusion模型架构 3 训练过程与算法细节 三、Stable Diffusion的应用领域 1 图像生成与艺术创作 2 图像补全与修复 3 其他领域 四、Stable Diffusion的优势与挑战 👉优势 &#x1f…

秒懂快速熟悉: PostgreSQL中的Copy(快速加载)

这里简要介绍一下PG中的Copy以及\Copy快速加载数据的基本用法及注意事项。同时也比较了Batch Insert与Copy之间的性能差异。它们在PG日常维护与使用的场景中经常要用到。 1.Copy语法 PG 9.0以后的新语法如下: COPY table_name [ ( column_name [, ...] ) ] FROM { filenam…

回调函数;qsort库函数介绍及实现;

目录 回调函数; 代码: qsort库函数介绍及实现; 冒泡排序; 代码: qsort函数实现排序; qsort介绍及使用; 比较两个数; 代码: ​编辑比较字符; 代码&a…

浙大版《C语言程序设计(第4版)》题目集-习题3-5 三角形判断

给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。 输入格式: 输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。 输出格式: 若这3个点不能构成三角形,则在一行中输…

数据在内存里面的存储

学习流程 ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————…

中间件设置静态资源目录

文章目录 为什么要设置静态资源目录设置静态资源代码示例 为什么要设置静态资源目录 服务器中的代码,对于外部来说都是不可见的, 所以我们写的html页面,浏览器无法直接访问 如果希望浏览器可以访问,则需要将页面所在的目录设置静…

数据结构面试常见问题之串的模式匹配(KMP算法)系列-大师改进

😀前言 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法) KMP算法的优势: 提高了匹配效率,时间复杂度为O(m…

IDEA, Pycharm, Goland控制台乱码

IDEA, Pycharm, Goland控制台乱码 问题描述: 控制台出现����等乱码 复现频率: 总是 解决方案: 以IDEA为例 添加 -Dfile.encodingUTF-8位置 idea64.exe.vmoptions 在安装idea的bin目录idea.vmoptions idea客户端 示意图