基于51单片机智能家居监控系统设计

基于51单片机智能家居监控系统设计

(仿真+程序+设计报告)

功能介绍

具体功能:

1.温度、煤气、烟雾检测;

2.5110液晶屏实时显示温度值、煤气浓度、烟雾浓度;

3.超过设定温度、烟雾、煤气阈值,蜂鸣器+LED声光报警;

4.设定外人闯入报警;

#include "lcd5110.h"

#include "adc0809.h"
#include <math.h>
sbit tube = P3^2;//干簧管
sbit beep = P3^6;//蜂鸣器
sbit led = P3^7;//LED灯
uint temperature;//温度
uint smoke;//煤气浓度
uint fire;//烟雾浓度
uchar index;//定义发送数据个数
uchar ad_Value[3];//定义AD采集数据
float getVoltage[3];//定义电压采集数值
uchar receivedata;//定义串口接收数据
bit people_flag;//外人闯入标志位
bit temper_flag;//温度异常标志位
bit smoke_flag;//煤气浓度异常标志位
bit fire_flag;//烟雾浓度异常标志位
bit cancel_flag;//取消报警标志位
void delay(uint num)
{
		uint x,y;
	  for(x=num;x>0;x--)
				for(y=110;y>0;y--);
}
void init_interrupt(void)
{
	  TMOD = 0x02;
    TH0 = 0xfb;
    TL0 = 0xfb;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}
void ex_init(void)
{
	  IT0 = 1;
	  EX0 =1;
	  EA = 1;
}
void usart(void)
{
		TMOD |= 0x20;
	  SCON = 0x50;
	  PCON = 0x00;
	  TH1 = 0xfd;
	  TL1 = 0xfd;
	  TR1 = 1;
	  EA = 1;
	  ES = 1;  
}
//显示函数
void display(void)
{
	  //显示温度
	  LCD_Set_XY(0,1);
	  LCD_Write_Char(temperature/1000+0x30);
		LCD_Write_Char((temperature%1000)/100+0x30);
		LCD_Write_Char((temperature%100)/10+0x30);
	  LCD_Write_Char('.');
	  LCD_Write_Char(temperature%10+0x30);
	  //显示煤气浓度
	  LCD_Set_XY(0,3);
		LCD_Write_Char(smoke/1000+0x30);
		LCD_Write_Char((smoke%1000)/100+0x30);
		LCD_Write_Char((smoke%100)/10+0x30);
	  LCD_Write_Char('.');
	  LCD_Write_Char(smoke%10+0x30);
	  //显示烟雾浓度
		LCD_Set_XY(0,5);
	  LCD_Write_Char(fire/1000+0x30);
		LCD_Write_Char((fire%1000)/100+0x30);
		LCD_Write_Char((fire%100)/10+0x30);
	  LCD_Write_Char('.');
	  LCD_Write_Char(fire%10+0x30);
}
//报警函数
void alarm(void)
{
	  //报警判断
	  if(temperature/10>=45)
		{
				temper_flag = 1;//自动报警
		}
		else
		{
				temper_flag = 0;//取消报警
		}
		if(smoke/10>=30)
		{
				smoke_flag = 1;//自动报警
		}
		else
		{
				smoke_flag = 0;//取消报警
		}
		if(fire/10>=30)
		{
				fire_flag = 1;//自动报警
		}
		else
		{
				fire_flag = 0;//取消报警
		}
		//声光报警
	  if(people_flag==1||temper_flag==1||smoke_flag==1||fire_flag==1)
		{
				if(!cancel_flag)
				{
						beep = 1;
						delay(20);
						beep = 0;
						delay(20);
						led = 1;
				}
				else
				{
						beep = 1;
			      led = 0;
				}
		}
		else
		{
				beep = 1;
			  led = 0;
		}
}
//数据格式转换
uchar change(uchar dat)
{
		uchar result;
	  uchar temp_H,temp_L;
	  temp_H = dat/10;
		temp_L = dat%10;
		result = temp_H*16+temp_L;
	  return result;
}

硬件设计

使用元器件:

单片机:AC89C52;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

设计资料

01 仿真图

本设计使用proteus8.9版本设计,没有软件可以在本公众号获取,无需担心!具体如图!

02 程序

本设计使用软件keil4和keil5两个版本编程设计,无需担心!具体如图

03 设计报告

五千字设计报告,具体如下!

04 设计资料

全部资料包括仿真源文件 、程序(含注释)、设计报告、流程图、仿真操作视频等。具体内容如下,全网最全! !

 

下面是开源51单片机设计资料

​大家共同学习进步:

链接:百度网盘 请输入提取码

提取码:1qoi

点赞分享,一起学习进步!一起成长。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值