基于51单片机温度监控Proteus仿真设计_报警值可调

发布于:2023-01-01 ⋅ 阅读:(497) ⋅ 点赞:(0)

基于51单片机温度监控Proteus仿真设计_报警值可调

仿真原版本:Proteus7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0012

功能说明

1、显示温度0-99,上电默认高温报警35°,低温报警10°

2、按键说明:

① 按一下KEY1查看高温,调整高温报警值指示灯亮,同时也可以按加减调高温的值。

② 再按一下KEY1查看低温,调整低温报警值指示灯亮同时也可以按加减调低温的值。

③ 程序默认低温报警值要比高温报警低5°再按一下KEY正常显示。

3、温度调整低于低温报警或者高于高温报警值,蜂鸣器响,指示灯闪烁。

资料下载链接

仿真电路

三个按键
KEY1
按一下查看高温设置值,再按一下查看低温设置值,再按一下返回正常显示
KEY2
设置状态下,设置温度+
KEY3
设置状态下,设置温度-
img

程序

img

主函数

/*****主函数*****/
void main(void)
{
	LED=0;			       	//默认关闭报警
	BEEP=0;					//默认关闭蜂鸣器
	LED_SET_HIGHT=0;//默认设置灯暗
	LED_SET_LOW=0;//默认设置灯暗
	check_wendu();
 	check_wendu();
 	for(z=0;z<300;z++)
 	{
  		Disp_init();        
  	}
  	while(1)
  	{

		if(display_mode==0){
			Disp_Temperature();//正常显示
		}else if(display_mode==1){//设置高
			Disp_Temperature_Set_Hight();
		}else if(display_mode==2){//设置低
			Disp_Temperature_Set_Low();

		}
		
		KeyDriver();			  		//键盘驱动扫描
		KeyScan();
		if(key_sacn_cnt<20){//延时效果,不占用CPU,隔一段时间更新温度
			key_sacn_cnt++;
		}else{
			check_wendu();
			key_sacn_cnt=0;
		}
		if(display_mode==0){//正常模式才报警,设置模式不报警
			if(m>=gaowen || m<=diwen){//如果m大于高温值或者小于低温值,开启声光报警
			 	led_sacn_cnt++;
				if(led_sacn_cnt>100){
				  LED=~LED;
			      BEEP=~BEEP; 
				  led_sacn_cnt=0;	 
				}

			}else{
		   		LED=0;
				BEEP=0;
				led_sacn_cnt=1; 
  
			}	
		}else{
			LED=0;
			BEEP=0;
		}
	
  	}
}

DS18B20温度读取

/*****读取温度*****/
unsigned int ReadTemperature(void)
{
	unsigned char a=0;
  	unsigned char b=0;
  	unsigned int t=0;
  	float tt=0;
  	Init_DS18B20();
  	WriteOneChar(0xCC);  //跳过读序号列号的操作
  	WriteOneChar(0x44);  //启动温度转换
  	Init_DS18B20();
  	WriteOneChar(0xCC);  //跳过读序号列号的操作
  	WriteOneChar(0xBE);  //读取温度寄存器
  	a=ReadOneChar();     //读低8位
  	b=ReadOneChar();	 //读高8位
  	t=b;				 //高8位转移到t
  	t<<=8;			     //t数据左移8位
  	t=t|a;			     //将t和a按位或,得到一个16位的数
  	tt=t*0.0625;		 //将t乘以0.0625得到实际温度值
					     //(温度传感器设置12位精度,最小分辨率是0.0625)
  	t= tt*10+0.5;        //放大10倍(将小数点后一位显示出来)输出并四舍五入
  	return(t);		     //返回温度值
}

资料清单

下载链接见文章开头

img

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到