51单片机锅炉监控系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机锅炉监控系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

  • 1.主要功能:
  • 讲解视频
  • 2.仿真
  • 3. 程序代码
  • 4. 原理图
  • 5. 设计报告
  • 6. 设计资料内容清单&&下载链接
    • 资料下载链接(可点击):

51单片机锅炉监控系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0056

1.主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

1.系统实时通过LCD1602显示水位检测值,锅炉炉膛温度值,锅炉内部压力值。

2、可对锅炉的水位上下限、炉膛温度上下限、压力上下限进行设置,第一行显示上限值,第二行显示下限值。

3、如果水位、温度、压力过限则蜂鸣器报警,通过LED指示报警类型。

4、默认水位下限值10cm,上限值40cm,压力下限值30kPa,压力上限值50kPa,温度下限值5℃,温度上限值105℃。

5、温度传感器使用DS18B20;水位传感器使用电位器模拟;压力传感器使用MPX4115。

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

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

讲解视频

51单片机锅炉监测报警系统设计( proteus+程序+原理图+报告+讲解)

2.仿真

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

开始仿真后,调整温度变大,当温度106℃大于温度上限值105℃后蜂鸣器报警,温度上限指示灯亮起报警。

img

调整温度变小,当温度4℃小于温度下限值5℃后蜂鸣器报警,温度下限红灯报警亮起。

img

仿真中通过按键调整MPX4115压力传感器的值改变显示数值。调整压力变小,当压力调整到52kPa大于上限值,蜂鸣器报警,气压上限红灯报警亮起。

img

调整压力变小,当压力调整到26kPa低于下限值,蜂鸣器报警,气压下限红灯报警亮起。

img

仿真中通过按键调整RV2滑动变阻器模拟水位传感器的阻值随水位高低变化。上下箭头用于改变阻值的值。下箭头调低数值,上箭头调高数值。

调整水位变低,当水位调整到9CM低于下限值10CM,蜂鸣器报警,水位下限红灯报警亮起。

img

调整水位变高,当水位调整到41CM高于上限值40CM,蜂鸣器报警,水位上限红灯报警亮起。

img

开始仿真后,可以通过矩阵键盘的设置按键进入设置模式调整默认水位下限值、上限值、压力下限值、压力上限值、温度下限值和温度上限值。进入设置模式后LCD1602第一行显示上限值,第二行显示下限值。设置完成通过OK按键退出设置。

img

以上仿真结果均符合设计要求。

3. 程序代码

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

img

mian函数:

#include "reg51.h"
#include"Ds18b20.h"
#include "ADC0832.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit led1=P3^0;
sbit led2=P3^1;
sbit led3=P3^3;
sbit led4=P3^4;
sbit led5=P3^5;
sbit led6=P3^6;
//定义引脚
sbit beep=P3^7;//蜂鸣器
//公共变量
uchar time=0;
uchar mode=0;//测量模式、设置模式
//存储变量
uchar water=0;//水位
uchar press=0;//压力
int wendu=0;//温度
uchar water_L=10,water_H=40;//报警值
uchar press_L=30,press_H=50;
uchar wendu_L=5,wendu_H=105;
//显示变量
uchar hang1[]="war:000cm       ";//水位
uchar hang2[]="T:000 C P:000kPa";
uchar hang3[]="0000  ";
//矩阵键盘 无按键按下,返回0	按键值1-16
uchar key_scan()//按键检测
{
uchar i,j;
i=0;
j=0;
P1=0x0f;
if(P1!=0x0f) //检测有无按下
{switch(P1)//检测行{case 0x0e:i=1;break;case 0x0d:i=5;break;case 0x0b:i=9;break;case 0x07:i=13;}P1=0xf0;switch(P1)//检测列{case 0xe0:j=0;break;case 0xd0:j=1;break;case 0xb0:j=2;break;case 0x70:j=3;}while(P1!=0xf0);//等待按键松开
}
return i+j;	 
}//主函数
void main()
{	uchar key=0;//按键值hang2[5]=0xdf;//圈Ds18b20Init();//传感器初始化init_1602();TMOD|=0X01;TH0=0X3C;//50ms	  (65536-50000)/256TL0=0XB0;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){key=key_scan();//按键检测if(key==13)//模式切换mode=1;if(key==14)mode=0;if(mode==1)//设置模式{if(key==1)//水位L加{if(water_L<water_H)water_L++;}if(key==2)//水位L减{if(water_L>0)water_L--;}if(key==3)//水位H加{if(water_H<100)water_H++;}if(key==4)//水位H减{if(water_H>water_L)water_H--;}//==================if(key==5)//温度L加{if(wendu_L<wendu_H)wendu_L++;}if(key==6)//温度L减{if(wendu_L>0)wendu_L--;}if(key==7)//温度H加{if(wendu_H<100)wendu_H++;}if(key==8)//温度H减{if(wendu_H>wendu_L)wendu_H--;}//==================if(key==9)//压力L加{if(press_L<press_H)press_L++;}if(key==10)//压力L减{if(press_L>0)press_L--;}if(key==11)//压力H加{if(press_H<100)press_H++;}if(key==12)//压力H减{if(press_H>press_L)press_H--;}}}
}
//定时器0中断
void Timer0() interrupt 1
{uchar i;if(time<10)//0.5s测量一次time++;else{time=0;water=ADC(1);//测量press=ADC(2);wendu=Ds18b20ReadTemp();//报警判断i=0;if(water>water_H)//水位超过上限值{i++;//i作为蜂鸣器报警标志位led2=0;//led低电平点亮}elseled2=1;//led高电平点熄灭if(water<water_L)//水位低于下限值{i++;//i作为蜂鸣器报警标志位led1=0;//led低电平点亮}elseled1=1;//led高电平点熄灭if(press>press_H)//压力{i++;led6=0;}elseled6=1;if(press<press_L){i++;led5=0;}elseled5=1;if(wendu>wendu_H)//温度{i++;led4=0;}elseled4=1;if(wendu<wendu_L){i++;led3=0;}elseled3=1;if(i>0)//蜂鸣器报警标志位大于1beep=0;//蜂鸣器响elsebeep=1;//蜂鸣器停//显示计算hang1[4]=water/100+0x30;//水位hang1[5]=water%100/10+0x30;hang1[6]=water%10+0x30;hang2[2]=wendu/100+0x30;//温度hang2[3]=wendu%100/10+0x30;hang2[4]=wendu%10+0x30;hang2[10]=press/100+0x30;//压力hang2[11]=press%100/10+0x30;hang2[12]=press%10+0x30;//显示清零//	write_string(1,0,"                ");//	write_string(2,0,"                ");//测量模式显示if(mode==0){write_string(1,0,hang1);write_string(2,0,hang2);}else//设置模式显示{				//显示水位hang3[0]='W';//上限hang3[1]=water_H/100+0x30;hang3[2]=water_H%100/10+0x30;hang3[3]=water_H%10+0x30;write_string(1,0,hang3);hang3[0]=' ';//下限hang3[1]=water_L/100+0x30;hang3[2]=water_L%100/10+0x30;hang3[3]=water_L%10+0x30;write_string(2,0,hang3);//显示温度hang3[0]='T';//上限hang3[1]=wendu_H/100+0x30;hang3[2]=wendu_H%100/10+0x30;hang3[3]=wendu_H%10+0x30;write_string(1,6,hang3);hang3[0]=' ';//下限hang3[1]=wendu_L/100+0x30;hang3[2]=wendu_L%100/10+0x30;hang3[3]=wendu_L%10+0x30;write_string(2,6,hang3);//显示压力hang3[0]='P';//上限hang3[1]=press_H/100+0x30;hang3[2]=press_H%100/10+0x30;hang3[3]=press_H%10+0x30;write_string(1,12,hang3);hang3[0]=' ';//下限hang3[1]=press_L/100+0x30;hang3[2]=press_L%100/10+0x30;hang3[3]=press_L%10+0x30;write_string(2,12,hang3);}}TH0=0X3C;//50msTL0=0XB0;
}

4. 原理图

原理图使用AD绘制,可供实物参考。

img

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

5. 设计报告

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

img

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

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

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

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

1、仿真图

2、程序源码

3、开题报告

3、原理图

5、功能要求

6、元器件清单

7、设计报告

8、软硬件流程框图

9、讲解视频

Altium Designer 软件资料

KEIL软件资料

Proteus软件资料

单片机学习资料

答辩技巧

设计报告常用描述

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

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

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

相关文章

SpringCloud-Alibaba之OSS对象存储服务

阿里云的 OSS 服务进行云端的文件存储 用户认证需要上传图片、首页轮播需要上传图片&#xff0c;OSS分布式文件服务系统可以提供服务。 一、依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-oss-spring-boot-starter</…

idea文件比对

idea文件比对 1.项目内的文件比对2.项目间的文件比对3. 剪切板对比4. 版本历史(不同分支和不同commit)对比 1.项目内的文件比对 在项目中选择好需要比对的文件(类)&#xff0c;然后选择Compare Files Mac下的快捷键是Commandd&#xff0c; 这样的比对像是git冲突解决一样 …

【Linux】多路IO复用技术③——epoll详解如何使用epoll模型实现简易的一对多服务器(附图解与代码实现)

在正式阅读本篇博客之前&#xff0c;建议大家先按顺序把下面这两篇博客看一下&#xff0c;否则直接来看这篇博客的话估计很难搞懂 多路IO复用技术①——select详解&如何使用select模型在本地主机实现简易的一对多服务器http://t.csdnimg.cn/BiBib多路IO复用技术②——poll…

k8s:二进制搭建 Kubernetes v1.20

目录 1 操作系统初始化配置 2 部署 etcd 集群 2.1 准备签发证书环境 2.2 生成Etcd证书 3 部署 docker引擎 4 部署 Master 组件 5 部署 Worker Node 组件 k8s集群master01&#xff1a;192.168.30.105 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集…

《进化优化》第6章 进化策略

文章目录 6.1 &#xff08;11) 进化策略6.2 1/5规则&#xff1a;推导走廊问题 6.3 μ1进化策略6.4 μλ和&#xff08;μ,λ&#xff09;进化策略6.5 自身自适应进化策略协方差阵自适应CMA 6.1 &#xff08;11) 进化策略 假设f(x)是随机向量x的函数,我们想要最大化适应度f(x).…

【移远QuecPython】EC800M物联网开发板调用网络API(使用SIM卡联网并调用高德地图API的定位坐标转换)

【移远QuecPython】EC800M物联网开发板调用网络API&#xff08;使用SIM卡联网并调用高德地图API的定位坐标转换&#xff09; 高德API使用方法&#xff1a; 文章目录 API相关配置SIM卡联网网络操作API调用 高德地图API产品介绍适用场景使用限制使用说明坐标转换 附录&#xff…

第12章_MySQL数据类型精讲

文章目录 1 MySQL中的数据类型2 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL 2.3 适用场景2.4 如何选择演示代码 3 浮点类型3.1 类型介绍 本章的内容测试建议使用 MySQL5.7进行测试。3.2 数据精度说明3.3 精度误差说明 4 定点数类型4.1 类型介绍4.2 …

哈希表----数据结构

引入 如果你是一个队伍的队长&#xff0c;现在有 24 个队员&#xff0c;需要将他们分成 6 组&#xff0c;你会怎么分&#xff1f;其实有一种方法是让所有人排成一排&#xff0c;然后从队头开始报数&#xff0c;报的数字就是编号。当所有人都报完数后&#xff0c;这 24 人也被分…

D-Link账号密码泄露

构造payload&#xff1a; /getcfg.php SERVICESDEVICE.ACCOUNT&attackture%0D%0AAUTHORIZED_GROUP%3D1漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用此文所提供的信息、技…

IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

Docker官网 Docker官网&#xff1a;https://www.docker.com/ Docker Hub官网&#xff1a;http://hub.docker.com/ 什么是Docker Docker 是一个开源的容器引擎&#xff0c;可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编…

ELK搭建以及使用教程(多pipiline)

1、环境准备 服务器&#xff1a;Centos7 Jdk版本&#xff1a;1.8 Es版本&#xff1a;7.12.1 kibana版本&#xff1a;7.12.1 logstash版本:7.12.1 IP地址安装软件192.168.50.211Es&#xff0c;Kibana&#xff0c;logstash 2、安装docker 安装步骤参考&#xff1a;https:…

在Node.js中,什么是中间件(middleware)?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【音视频 | opus】opus编解码库(opus-1.4)详细介绍以及使用——附带解码示例代码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

第G7周:Semi-Supervised GAN 理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营-第G7周&#xff1a;Semi-Supervised GAN 理论与实战&#xff08;训练营内部成员可读&#xff09; &#x1f356; 原作者&#xff1a;K同学啊|接…

Centralized Feature Pyramid for Object Detection解读

Centralized Feature Pyramid for Object Detection 问题 主流的特征金字塔集中于层间特征交互&#xff0c;而忽略了层内特征规则。尽管一些方法试图在注意力机制或视觉变换器的帮助下学习紧凑的层内特征表示&#xff0c;但它们忽略了对密集预测任务非常重要的被忽略的角点区…

【论文精读】PlanT: Explainable Planning Transformers via Object-Level Representations

1 基本信息 院校&#xff1a;德国的图宾根大学 网站&#xff1a;https://www.katrinrenz.de/plant 2 论文背景 2.1 现有问题 现在的基于学习的方法使用高精地图和BEV&#xff0c;认为准确的&#xff08;达到像素级的pixel-level&#xff09;场景理解是鲁棒的输出的关键。re…

Java自学第1课:安装JDK+Eclipse

1 引言 在学习前&#xff0c;我想说一句&#xff0c;那就是为什么要学习Java。 每个人的出发点都不同&#xff0c;对于做信息化的工程技术人员来说&#xff0c;java不懂&#xff0c;就没法干项目。 尽管有c和matlab等基础&#xff0c;但java看起来与这些语言都不太一样。 做…

基于单片机的智能饮水机系统

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、系统设计方案分析2.1 设计功能及性能分析2.2设计方案分析 二、系统的硬件设计3.1 系统设计框图系统软件设计4.1 总体介绍原理图 四、 结论 概要 现在很多学校以及家庭使用的饮水机的功能都是比较单一的&#…

MySQL InnoDB数据存储结构

1. 数据库的存储结构&#xff1a;页 索引结构给我们提供了高效的索引方式&#xff0c;不过索引信息以及数据记录都是保存在文件上的&#xff0c;确切说是存储在页结构中。另一方面&#xff0c;索引是在存储引擎中实现的&#xff0c;MySQL服务器上的存储引擎负责对表中数据的读…

分享68个工作总结PPT,总有一款适合您

分享68个工作总结PPT&#xff0c;总有一款适合您 PPT下载链接&#xff1a;https://pan.baidu.com/s/1juus0gmesBFxJ-5KZgSMdQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知识付…