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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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


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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6