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

以下为本设计资料展示图:
2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
3. 仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD显示设置输出电压2.5V,实际输出2.19V。

可以通过按键设置输出的电压值。
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字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

随着电子技术日新月异的进步,数控电压源在众多应用领域中的价值与作用日益显著,无论是工业自动化控制、教学实验演示、科研项目研究,还是电子产品测试和校准等方面,都展现出其无可替代的优势。鉴于此,本设计项目的核心目标是基于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

资料下载链接(可点击):
https://docs.qq.com/doc/DS1l0T3NKSGlubkpL
相关文章:
基于51单片机数控直流电压源proteus仿真LCD显示+程序+设计报告+讲解视频
基于51单片机数控直流电压源proteus仿真LCD显示( proteus仿真程序设计报告讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0072 讲解视频 基于51单片机数控直流电压源proteus仿真程序…...
[Linux]文件缓冲区
文件fd 输出重定向除了用dup2()改变数组下标外,还可以用命令来完成 所有的命令执行,都必须有操作系统将其运行起来变成进程,然后根据>>, <<来判断是输入重定向,还是输出重定向。 缓冲区 之所以有缓冲区࿰…...
ARM:按键中断
key_inc.c #include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR | (0x1<<5);//将PF9设置为输入模式GPIOF->MODER & (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 & (~(0XFF<<8));EXTI…...
JavaScript高级(五)--柯西化函数
柯里化 定义 首先,我们参照维基百科给出的定义: 在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数…...
带3090显卡的Linux服务器上部署SDWebui
背景 一直在研究文生图,之前一直是用原始模型和diffuser跑SD模型,近来看到不少比较博主在用 SDWebui,于是想着在Linux服务器上部署体验一下,谁知道并没有想象的那么顺利,还是踩了不少坑。记录一下过程,也许…...
37、Linux中Xsync数据同步备份工具
37、Linux中Xsync数据同步备份工具 一、介绍二、配置集群hostname三、修改xsync文件四、赋权五、安装Rsync六、验证一七、配置免密登录1、生成rsa密钥2、copy机器自身公钥到目标机器3、.ssh/文件目录赋权 八、验证二 ⚠️ 注:本文全程在普通用户下操作,…...
网络基础:构建你的数字世界之桥
I. 引言 A. 什么是网络? 网络是由各种电子设备通过通信线路或无线电波连接起来,以便彼此之间进行数据交换和资源共享的系统。在当今数字化时代,网络已经成为我们生活和工作中不可或缺的一部分,无论是互联网、局域网还是无线通信…...
Python 全栈系列236 rabbit_agent搭建
说明 通过rabbit_agent, 以接口方式实现对队列的标准操作,将pika包在微服务内,而不必在太多地方重复的去写。至少在服务端发布消息时,不必再去考虑这些问题。 在分布式任务的情况下,客户端本身会启动一个持续监听队列的客户端服…...
管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】
管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】 哈喽小伙伴们好,我是Stark-C~。今天我们来解决一个之前评论区多次被提及的问题--多用户权限管理。 对于我们NAS用户来说,基本都会面临这…...
【Redis】优惠券秒杀
全局唯一ID 全局唯一ID生成策略: UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略:每天一个key,方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…...
【几何】平面方程
文章目录 平面方程一般式截距式点法式法线式 平面方程 平面方程是用一个方程来表示平面,平面上的所有点代入方程,方程都成立。因为用法的不同,平面方程一般有四种表现形式。 一般式 设 n ⃗ ( A , B , C ) \vec n(A,B,C) n (A,B,C) 为平…...
macOS访问samba文件夹的正确姿势,在哪里更改“macOS的连接身份“?还真不好找!
环境:路由器上需要身份认证的Mini NAS macOS Sonoma 14 这是一个非常简单的问题,但解决方法却藏得比较深,不够直观,GPT也没有给出明确的解决提示,特意记录一下。 macOS很多地方都很自动,有时候让人找不到设…...
linux进程切换
内核堆栈:每个进程在内核模式下运行时都有自己的内核堆栈。这个堆栈保存了进程在内核模式下的运行状态,包括函数调用时传递的参数、局部变量和返回地址等。 用户态与内核态:进程通常在用户态下运行,当执行系统调用或响应中断时进…...
spring boot 如何升级 Tomcat 版本
在Spring Boot应用程序中升级内嵌的Tomcat版本通常涉及以下几个步骤: 1. 确定当前使用的Tomcat版本 首先,你需要确定你的Spring Boot应用程序当前使用的Tomcat版本。这可以通过查看项目的pom.xml或build.gradle文件来完成,其中会列出所有的…...
sentinel中StatisticSlot数据采集的原理
StatisticSlot数据采集的原理 时间窗口 固定窗口 在固定的时间窗口内,可以允许固定数量的请求进入;超过数量就拒绝或者排队,等下一个时间段进入, 如下图 时间窗长度划分为1秒 单个时间窗的请求阈值为3 上述存在一个问题, 假如9:18:04:…...
图像去噪与增强技术
图像去噪与增强技术是数字图像处理领域中的两个重要方面,它们分别关注消除图像中的噪声和改善图像的质量。 图像去噪技术的主要目的是从受噪声干扰的图像中去除不必要的随机信号,以恢复图像的真实内容。这对于图像的进一步分析和理解至关重要。去噪技术包…...
SpringJPA 做分页条件查询
前言: 相信小伙伴们的项目很多都用到SpringJPA框架的吧,对于单表的增删改查利用jpa是很方便的,但是对于条件查询并且分页 是不是很多小伙伴不经常写到. 今天我整理了一下在这里分享一下. 话不多说直接上代码: Controller: RestController public class ProductInstanceContr…...
[Java基础揉碎]单例模式
目录 什么是设计模式 什么是单例模式 饿汉式与懒汉式 饿汉式vs懒汉式 懒汉式存在线程安全问题 什么是设计模式 1.静态方法和属性的经典使用 2.设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、 以及解决问题的思考方式。设计模式就像是经典的棋谱&am…...
unity无法使用道路生成插件Road Architect(ctrl和shift无法标点)
切换一下布局就行了。 附:Road Architect教学地址...
Django下载使用、文件介绍
【一】下载并使用 【1】下载框架 (1)注意事项 计算机名称不要出现中文python解释器版本不同可能会出现启动报错项目中所有的文件名称不要出现中文多个项目文件尽量不要嵌套,做到一项一夹 (2)下载 Django属于第三方模块&#…...
OpenClaw+gemma-3-12b-it:学术论文自动摘要与分类系统
OpenClawgemma-3-12b-it:学术论文自动摘要与分类系统 1. 为什么需要自动化论文处理 作为一名经常需要阅读大量文献的研究者,我深刻体会到手动处理论文的痛点。每周需要从arXiv、PubMed等平台下载数十篇论文,然后逐篇阅读摘要、分类归档。这…...
resume-cli实际案例分享:成功求职者的简历配置终极指南
resume-cli实际案例分享:成功求职者的简历配置终极指南 【免费下载链接】resume-cli CLI tool to easily setup a new resume 📑 项目地址: https://gitcode.com/gh_mirrors/re/resume-cli resume-cli是一款基于JSON Resume标准的命令行工具&…...
嵌入式开发代码比对工具实战指南
1. 单片机开发中的代码版本管理痛点 在嵌入式开发领域,代码版本管理是每个工程师的必修课。我经历过无数次深夜调试时,突然发现某个功能在上一版还能正常工作,最新修改后却出现了异常。这时候,快速定位两个版本间的代码差异就成了…...
解密OpenHarmony设备安全认证:从SPEKE密钥交换到四级证书链的完整流程解析
OpenHarmony设备安全认证体系深度解析:从密钥交换到证书链验证 1. 安全认证架构设计理念 OpenHarmony作为面向全场景的分布式操作系统,其安全认证体系采用分层防御策略,构建了覆盖设备发现、身份认证、数据传输全生命周期的安全防护机制。这套…...
题目1514:蓝桥杯算法提高VIP-夺宝奇兵
#include<iostream> using namespace std; int dp[110][110]; int main(){ int n; cin>>n; for(int i1;i<n;i){ for(int j1;j<i;j){ cin>>dp[i][j]; } } //从倒数第二行向上推 for(int in-1;i&g…...
PTQ量化实战:如何用Python一步步将VGG-16模型压缩到INT8(附完整代码)
PTQ量化实战:如何用Python一步步将VGG-16模型压缩到INT8(附完整代码) 当你在移动设备上使用人脸识别功能时,有没有想过这些复杂的神经网络是如何在有限的计算资源上运行的?答案往往藏在模型量化这个关键技术里。今天我…...
嵌入式JPEG解码库JPEGDecoder深度解析
1. JPEGDecoder 库深度技术解析:面向嵌入式显示系统的轻量级 JPEG 解码实践1.1 库定位与工程价值JPEGDecoder 是一个专为资源受限嵌入式平台设计的轻量级 JPEG 解码库,其核心目标并非替代 PC 级全功能解码器,而是在 MCU 级别实现“够用、可控…...
2025Reddit养号实战:3步打造高Karma账号矩阵
1. Reddit养号基础:为什么Karma值如此重要? 如果你刚接触Reddit,可能会对这个平台的"Karma系统"感到困惑。简单来说,Karma就像你在Reddit社区里的信用积分,它决定了你的发言权和影响力。我刚开始运营Reddit账…...
跨平台电子书阅读器 | Readest最新版 安卓版+PC版全平台
软件简介: Readest 是一款现代化、功能丰富的电子书阅读器,专为狂热读者设计,提供无缝的跨平台访问、强大的工具和直观的界面,以提升你的阅读体验。 功能特点: 多格式支持 – 支持 EPUB、MOBI、KF8(AZW3…...
vscode下载+插件
作为一款轻量又强大的代码编辑器,VSCode 是程序员入门的必备工具,但很多新手第一步就卡在了下载慢、不知怎么下的问题上。这篇指南从官方下载、国内加速下载,到简单的安装注意事项进行讲述。 一、下载 VSCode 的官方下载渠道唯一且安全&…...
