42.基于51单片机的火灾报警系统设计(仿真)

42.基于51单片机的火灾报警系统设计(仿真)

42.基于51单片机的火灾报警系统设计(仿真)

要求:

1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 •

2.LCD1602液晶显示、DS18B20温度传感器、MQ-2烟雾传感器或MQ-5可燃气体传感器及ADC0809模数转换芯片

3.实时显示当前的烟雾值和温度值

4.温度和烟雾的报警值可以通过按键设定

5.当前温度值超过上限时,红灯亮,蜂鸣器响。

6.当前烟雾值超过上线时,黄灯亮,蜂鸣器响。

按键说明: 1 2 3 1键设置按键 2键加按键 3键减按键 按一下设置键,温度报警值闪烁,此时按下加减按键调节温度报警值;再按一下设置键,烟雾报警值闪烁,此时按下加减按键,调节烟雾报警值;设置完成后,再按一下设置按键,退出设置。系统开始正常检测烟雾温度值,并且根据报警值判断是否开启报警

资料包括:

image.png

原理图:

image.png

仿真:

image.png

程序运行图:

image.png

/宏定义
#define uint unsigned int 
#define uchar unsigned char
#define Data_ADC0809 P1		 //定义P1口为Data_ADC0809 (之后的程序里Data_ADC0809即代表P1口)
 
//管脚声明
sbit LED_yanwu= P2^1;		 //烟雾报警灯
sbit baojing= P2^5;			 //蜂鸣器接口
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^6;
sbit OE=P3^2;
//按键
sbit Key1=P2^6;				 //设置键
sbit Key2=P2^7;				 //加按键
sbit Key3=P3^7;				 //减按键

//酒精含量变量
uchar temp;					 //用于读取ADC数据
uchar yushe_yanwu=45;		 //烟雾预设值
//按钮模式|  
uchar Mode=0;				 //=1是设置温度阀值  =2是设置烟雾阀值

//函数声明
extern uchar ADC0809();
extern void Key();

//ADC0809读取信息
uchar ADC0809()
{
	uchar temp_=0x00;
	//初始化高阻太

	OE=0;
	//转化初始化
	ST=0;
	//开始转换
	ST=1;
	ST=0;
	//外部中断等待AD转换结束
	while(EOC==0)
	//读取转换的AD值
	OE=1;
	temp_=Data_ADC0809;
	OE=0;
	return temp_;
}

void Key()
{
	//模式选择
	if(Key1==0)	  //设置按键
	{
		while(Key1==0);
		if(Mode>=2) Mode=0;
		else
		{
//	   		write_com(0x38);//屏幕初始化
	   		write_com(0x0f);//打开显示 无光标 光标闪烁
//	   		write_com(0x06);//当读或写一个字符是指针后一一位
			Mode++;			//模式加一
			switch(Mode)	//判断模式的值
			{

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值