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

news2024/11/25 10:57:45

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)/256
	TL0=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低电平点亮
		}
		else
			led2=1;//led高电平点熄灭
		if(water<water_L)//水位低于下限值
		{
			i++;//i作为蜂鸣器报警标志位
			led1=0;//led低电平点亮
		}
		else
			led1=1;//led高电平点熄灭
		if(press>press_H)//压力
		{
			i++;
			led6=0;
		}
		else
			led6=1;
		if(press<press_L)
		{
			i++;
			led5=0;
		}
		else
			led5=1;
		if(wendu>wendu_H)//温度
		{
			i++;
			led4=0;
		}
		else
			led4=1;
		if(wendu<wendu_L)
		{
			i++;
			led3=0;
		}
		else
			led3=1;
		if(i>0)//蜂鸣器报警标志位大于1
			beep=0;//蜂鸣器响
		else
			beep=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;//50ms
	TL0=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.coloradmin.cn/o/1162811.html

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

相关文章

开发环境配置之Linux安装golang

Linux安装golang 目录 1. 下载Go发行版2. 配置工作空间3. 版本升级 1. 下载Go发行版 从官方地址&#xff1a;https://golang.org/dl/ 上下载合适的 二进制发行版 可以使用wget、curl等工具下载具体的go的发行版。 wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz接着…

有关资产跟踪的一般问题

1. 哪些行业使用资产跟踪&#xff1f; 如今&#xff0c;您几乎可以在每个行业中找到资产跟踪的实例。一些行业使用自己的术语来描述其跟踪系统&#xff0c;但您可以在零售、运输和物流、运输、制造、仓储、医疗保健、能源、建筑和教育领域找到资产跟踪的清晰示例。 2. 可以追…

VR全景技术在文化展示与传播中有哪些应用?

引言&#xff1a; 随着科技的不断进步&#xff0c;虚拟现实&#xff08;VR&#xff09;全景技术已经成为文化展示与传播领域的一项重要工具。那么VR全景技术是如何改变文化展示与传播方式&#xff0c;VR全景技术又如何推动文化的传承和普及呢&#xff1f; 一&#xff0e;VR技术…

苹果电脑如何录制电脑桌面内容?

我买了台苹果电脑&#xff0c;由于之前没用过&#xff0c;完全不知道如何使用这台苹果电脑进行录制桌面内容。如果你有这方面的困扰&#xff0c;那无需担心&#xff0c;小编今天就详细的为您讲解如何使用苹果电脑录制桌面内容。你可以使用电脑自带录屏工具录制&#xff0c;屏幕…

【ChatGLM2-6B】P-Tuning训练微调

机器配置 阿里云GPU规格ecs.gn6i-c4g1.xlargeNVIDIA T4显卡*1GPU显存16G*1 准备训练数据 进入/ChatGLM-6B/ptuningmkdir AdvertiseGencd AdvertiseGen上传 dev.json 和 train.json内容都是 {"content": "你是谁", "summary": "你好&…

数据绑定—变量

1.数据变量使用方法 使用相对路径&#xff0c;一层层看 2.data算数运算 3.查看页面数据方法 appdata中查看当前页面所有数据

Docker Compose部署Spug:实现内网穿透

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、文件…

复旦微flash高温下加载硬件程序时序异常问题

1、最近在调复旦微的板子&#xff0c;高温60℃上&#xff0c;重新上电&#xff0c;部分逻辑跑起来就出错。 2、通过分析排查问题出现在硬件程序加载时出错&#xff0c;即读取flash数据时出错。 3、解决方法&#xff1a;修改设备数的qspi时钟由50m改为10m&#xff0c;output.bif…

Colorful Image Colorization灰度图像上色

论文标题&#xff1a;https://arxiv.org/pdf/1603.08511.pdf 论文地址&#xff1a;https://arxiv.org/pdf/1603.08511.pdf github地址&#xff1a;https://github.com/richzhang/colorization 论文信息概要 问题描述和背景 本文的研究问题是如何将灰度照片变成逼真的彩色图像…

敏捷BI的理解与选择,你想好了吗?

“很多人还没搞清楚什么是PC互联网&#xff0c;移动互联网来了&#xff0c;我们还没搞清楚移动互联的时候&#xff0c;大数据时代又来了。”——马云 这是一个几乎所有企业都在谈数据的时代。虽然以大数据(Big Data)的定义&#xff08;指“无法用现有的软件工具提取、存储、搜索…

解决问题 [Vue warn]: Missing required prop: “index“

vue项目控制台报错 [Vue warn]: Missing required prop: “index” 出现这个报错原因是<el-submenu></el-submenu>标签中缺少index属性&#xff0c;需要加上才能不报错 解决办法是&#xff1a; <el-submenu index""></el-submenu>

语音芯片ic常见故障分析 如何排查问题 声音不清晰 有爆破声

一、问题简介 语音芯片常见故障分析 如何排查问题 例如&#xff1a;声音不清晰 有爆破声 这些问题可能存在于如下方面&#xff1a; 供电电源是否稳定PCB板上面电容是否放置位置合适扬声器是否正常生成的音源文件&#xff0c;是不是本身就存在瑕疵 其实语音芯片的这些问题&a…

taro3中使用react函数组件和mobx状管理工具结合使用教程

在使用了最新版的函数组件hooks后&#xff0c;刚开始导入mobx&#xff0c;总是报cant resolve "src/store/index"这种错误&#xff0c;然后我就开始一步一步找原因&#xff0c;后来在组件中log了一下store&#xff0c;重新启动程序后&#xff0c;就没问题了&#xff…

怎么扫码下载视频?一招生成可下载的视频二维码

怎么做可以下载视频的二维码呢&#xff1f;当我们用二维码来分享时&#xff0c;很多视频二维码生成器制作的二维码都只有展示功能&#xff0c;无法让扫码者选择下载视频&#xff0c;那么这个问题有什么解决方法呢&#xff1f;对于有这方面需求的小伙伴&#xff0c;小编可以给大…

使用Process Explorer/Process Hacker和Windbg高效排查软件高CPU占用问题

目录 1、为什么需要将Process Explorer/Process Hacker与Windbg结合起来分析高CPU占用问题&#xff1f; 1.1、使用Windbg分析时为什么还要使用Process Explorer/Process Hacker呢&#xff1f; 1.2、使用Process Explorer/Process Hacker分析时为什么还要使用Windbg呢&#x…

【Java】AI+智慧工地云平台源码(SaaS模式)

伴随着科学技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 一、带你认识智慧工地 伴随着技术的不断发展&#xff0c;信息化手段、移动…

Java,面向对象,抽象类和抽象方法(abstract的使用)

关于抽象类和抽象方法的使用&#xff0c;以Person和student和Teacher为例&#xff0c;若Student类和Teacher继承于Person类&#xff0c;老师和学生都有Person的特征。在一个班级里&#xff0c;只需要创建老师和学生的实例&#xff0c;并不需要创建Person的实例。关于Person的方…

【LeetCode】剑指 Offer Ⅱ 第8章:树(12道题) -- Java Version

题库链接&#xff1a;https://leetcode.cn/problem-list/e8X3pBZi/ 类型题目解决方案二叉树的深搜剑指 Offer II 047. 二叉树剪枝递归&#xff08;深搜&#xff09;&#xff1a;二叉树的后序遍历 &#xff08;⭐&#xff09;剑指 Offer II 048. 序列化和反序列化二叉树递归&…

无法启动程序由于找不到msvcp140.dll无法继续执行代码怎么解决

今天&#xff0c;我就来分享一下关于“找不到msvcp140.dll无法继续执行代码”的问题&#xff0c;以及我个人总结的5种解决方案。希望我的经验和建议能对大家有所帮助。 首先&#xff0c;我们要明确什么是msvcp140.dll。msvcp140.dll是微软Visual C 2015运行库中的一个组件&…

山西电力市场日前价格预测【2023-11-03】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-11-03&#xff09;山西电力市场全天平均日前电价为277.41元/MWh。其中&#xff0c;最高日前电价为355.83元/MWh&#xff0c;预计出现在18:15。最低日前电价为0.00元/MWh&#xff0c;预计出…