【Proteus仿真】【51单片机】温度报警控制系统设计

这篇具有很好参考价值的文章主要介绍了【Proteus仿真】【51单片机】温度报警控制系统设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、主要功能

本项目使用Proteus8仿真51单片机控制器,使用继电器模块、DS18B20温度传感器模块、LCD1602模块、蜂鸣器、按键模块等。

主要功能:
系统运行后,LCD1602显示DS18B20采集温度值、温度上下限阈值。可通过K1、K2键对温度上限设置,可通过K3、K4键对温度下限设置,若检测温度大于或小于上下限,蜂鸣器报警;若温度高于上限,开启降温模块;若温度低于下限,开启升温模块;
主要功能如下:
1、温度采集-50~110°C
2、温度上下限设定,超限报警
3、继电器控制加热、降温
4、LCD1602液晶显示


二、硬件资源

1、51单片机核心模块
2、继电器模块
3、LCD1602显示模块
4、按键、蜂鸣器模块
5、DS18B20温度传感器模块


三、软件设计

/*
作者:嗨小易(QQ:3443792007)
*/


//定义结构体
_sys_ctrl sys_ctrl;


//系统参数初始化
void sys_parm_init(void)
{
	//初始自动模式
	sys_ctrl.mode=0;
	//温度上下限值
	sys_ctrl.temph=40;
	sys_ctrl.templ=25;
	sys_ctrl.sign=0;//默认温度符号为正	
}


//系统参数设置
void sys_parm_set(void)
{
	u8 key=0;

	key=key_scan(0);
	
	//温度上限设置
	if(key==KEY1_PRESS)//加	
	{
		sys_ctrl.temph+=THRESHOLD_STEP;
		if(sys_ctrl.temph>TEMP_MAX)sys_ctrl.temph=0;		
	}
	else if(key==KEY2_PRESS)//减	
	{
		sys_ctrl.temph-=THRESHOLD_STEP;
		if(sys_ctrl.temph<TEMP_MIN)sys_ctrl.temph=0;		
	}
	//温度下限设置
	else if(key==KEY3_PRESS)//加	
	{
		sys_ctrl.templ+=THRESHOLD_STEP;
		if(sys_ctrl.templ>TEMP_MAX)sys_ctrl.templ=0;		
	}
	else if(key==KEY4_PRESS)//减	
	{
		sys_ctrl.templ-=THRESHOLD_STEP;
		if(sys_ctrl.templ<TEMP_MIN)sys_ctrl.templ=0;		
	}
}

//系统数据采集
void sys_data_get(void)
{
	static u8 i=0;

	while(1)
	{	
		i++;
		//间隔采集温度
		if(i%10==0)
		{
			sys_ctrl.temp=ds18b20_read_temperture()*10;//放大10倍,保留小数点后1位
			if(sys_ctrl.temp<0)
			{
				sys_ctrl.sign=1;//负温度符号
				sys_ctrl.temp=-sys_ctrl.temp;
			}		
			else 
				sys_ctrl.sign=0;//正温度符号	
		}
				
		break;
	}
}

//系统数据显示
void sys_data_show(void)
{
	u8 buf[6];
	u8 temph=0;
	u8 templ=0;

	//正常界面显示温度
	while(sys_ctrl.mode==0)
	{
		//温度符号显示
		if(sys_ctrl.sign==1)	
			lcd1602_show_num(5,0,'-',0);			
		else
			lcd1602_show_num(5,0,' ',0);	
		//温度显示
		buf[0]=sys_ctrl.temp/1000+0x30;
		if(buf[0]==0x30)buf[0]=' ';
		buf[1]=sys_ctrl.temp%1000/100+0x30;	
		if(buf[0]==' ' && buf[1]==0x30)buf[1]=' ';		
		buf[2]=sys_ctrl.temp%1000%100/10+0x30;
		buf[3]='.';
		buf[4]=sys_ctrl.temp%1000%100%10+0x30;
		buf[5]='\0';
		lcd1602_show_string(6,0,buf);

		//温度上下限显示
		if(sys_ctrl.temph<0)
		{
			lcd1602_show_num(3,1,'-',0);
			temph=-sys_ctrl.temph;	
		}
		else 
		{
			lcd1602_show_num(3,1,' ',0);
			temph=sys_ctrl.temph;	
		}	
		if(sys_ctrl.templ<0)
		{
			lcd1602_show_num(12,1,'-',0);
			templ=-sys_ctrl.templ;	
		}
		else
		{
			lcd1602_show_num(12,1,' ',0);
			templ=sys_ctrl.templ;	
		} 			
		lcd1602_show_nums(4,1,temph,3,1);
		lcd1602_show_nums(13,1,templ,3,1);

		break;	
	}		
}


//应用控制系统
void appdemo_show(void)
{
	u8 i=10;

	lcd1602_init();
	ds18b20_init();
	sys_parm_init();//系统参数初始化
	//等待温度数据稳定
	while(i--)
	{
		sys_ctrl.temp=ds18b20_read_temperture()*10;
		delay_ms(100);	
	}
	sys_open_show();//系统开机显示

	while(1)
	{
		sys_data_get();//系统数据采集
		sys_data_show();//系统数据显示
		sys_parm_set();//系统参数设置
		sys_fun_ctrl();//系统功能控制	
	}
}


四、实验现象

B站演示视频:https://space.bilibili.com/444388619

【Proteus仿真】【51单片机】温度报警控制系统设计
【Proteus仿真】【51单片机】温度报警控制系统设计
【Proteus仿真】【51单片机】温度报警控制系统设计


联系作者

B站演示视频:https://space.bilibili.com/444388619
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。文章来源地址https://www.toymoban.com/news/detail-483249.html

到了这里,关于【Proteus仿真】【51单片机】温度报警控制系统设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 122、仿真-基于51单片机的电量监测电压电流和温度报警系统设计(Proteus仿真+程序+流程图+配套资料等)

    方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字

    2024年02月16日
    浏览(47)
  • 9、基于51单片机PID算法温度控制系统设计(程序+Proteus仿真+原理图+PCB图+参考论文+开题报告+任务书等)

    目录 摘要 一、硬件方案 二、设计功能 三、成品实物图 四、原理图  五、PCB图 六、Proteus仿真  七、程序源码    资料包括:     随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中 数字温度计 就是一个典型

    2024年02月05日
    浏览(51)
  • 基于AT89C51单片机的温度控制系统报警器

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87771724?spm=1001.2014.3001.5503 源码获取 单片机读取温度传感器当前的温度值并在LCD液晶显示屏上的第一行显示当前的温度值,单片机读取按键状态并通过人为手动按键部分来设置最低温度到最高温度

    2024年02月07日
    浏览(48)
  • 基于STM32单片机的温度报警器(数码管)(Proteus仿真+程序)

            本设计由STM32F103单片机最小系统+DS18B20温度传感器+数码管显示模块+声光报警模块+独立按键组成。 1、主控制器是STM32F103单片机 2、DS18B20温度传感器测量温度 3、数码管显示温度值,精度0.1摄氏度 4、三个按键可设置温度上限、下限报警值,温度超过上限、或者温度低

    2024年02月07日
    浏览(62)
  • 【Proteus仿真】【51单片机】步进电机控制系统设计

    本项目使用Proteus8仿真51单片机控制器,使用ULN2003电机模块、LCD1602模块、按键模块等。 主要功能: 系统运行后,LCD1602显示电机当前运行档位、方向、状态。 可通过按键K4启动与停止,按键K1加速、按键K2减速,按键K3换向;档位可在1-5挡。 最终可实现: 按键功能:具有加速

    2024年02月12日
    浏览(49)
  • 208、仿真-51单片机脉搏心率与心电报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

    目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于

    2024年02月12日
    浏览(48)
  • 51单片机的智能鱼缸控制系统【proteus仿真+程序+报告+原理图】

    该系统由AT89C51单片机+LCD1602+DS18B20温度传感器+DS1302时间模块+ADC0832采集模拟水位、浑浊度信息+继电器控制电机和加热器模块+蜂鸣器模块构成。 可实现功能: 1、LCD1602显示各种信息 2、DS1302获取北京时间,用户通过按键设定1个喂食时间,默认时间12:30:00。到时间后自动喂食,

    2024年02月07日
    浏览(50)
  • 51单片机的智能台灯控制系统仿真( proteus仿真+程序+原理图+报告+讲解视频)

    51单片机的红外光敏检测智能台灯控制系统仿真( proteus仿真+程序+原理图+报告+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0050 基于51单片机的红外检测光照检测智能台灯仿真设计 1、检测光照强度并显示在数码管上。 2、具备红外检测

    2024年02月09日
    浏览(54)
  • 51单片机智能电风扇控制系统proteus仿真设计( 仿真+程序+原理图+报告+讲解视频)

    51单片机智能电风扇控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0042 基于51单片机的智能电风扇控制系统proteus仿真设计 运用所学知识,制作一个 51单片机智能电风扇控制系统仿真设计

    2024年02月09日
    浏览(48)
  • 51单片机的智能温室大棚控制系统【proteus仿真+程序+报告+原理图】

    该系统由AT89C51单片机+LCD1602模块+DS18B20温度传感器模块+DS1302时间模块+继电器驱动模块+电位器模块构成。本方案适用于智能温室大棚、蔬菜大棚等各类设计中。 版本一: 1、 DS18B20 温度传感器检测大棚温度 2、光照/湿度电位器模拟,ADC0832进行转换 3、水泵/风扇/加热丝/补光灯

    2023年04月20日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包