首页 基于单片机的智能火灾报警系统设计源程序代码

基于单片机的智能火灾报警系统设计源程序代码

举报
开通vip

基于单片机的智能火灾报警系统设计源程序代码#include//调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义变量范围0~255#defineuintunsignedint//无符号整型宏定义变量范围0~65535#include#include"lcd1602.h"#include"eeprom52.h"sbitCS=P2^4;//CS定义为P2口的第4位脚,连接ADC0832CS脚sbitSCL=P2^3;//SCL定义为P2口的第3位脚,连接ADC0832SCL脚sbitDO=P2^2;//DO定义为P2口的第2...

基于单片机的智能火灾报警系统设计源程序代码
#include//调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义变量范围0~255#defineuintunsignedint//无符号整型宏定义变量范围0~65535#include#include"lcd1602.h"#include"eeprom52.h"sbitCS=P2^4;//CS定义为P2口的第4位脚,连接ADC0832CS脚sbitSCL=P2^3;//SCL定义为P2口的第3位脚,连接ADC0832SCL脚sbitDO=P2^2;//DO定义为P2口的第2位脚,连接ADC0832DO脚sbitdq=P2^0;//18b20IO口的定义sbitbeep=P3^2;//蜂鸣器IO口定义uinttemperature,s_temp;//温度的变量ucharyanwu,s_yanwu;//烟物等级ucharshoudong;//手动报警键bitflag_300ms;ucharkey_can;//按键值的变量ucharmenu_1;//菜单设计的变量bitkey_500ms;ucharphone1_i=0;//电话号码是多少位ucharphone2_i=0;//电话号码是多少位ucharphone1_call[11]={""};ucharphone2_call[11]={""};uchardis_smg[11];/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){uinti,j;for(i=0;i>=1;}}/*************读取18b20内的数据***************/ucharread_18b20(){uchari,value;for(i=0;i<8;i++){dq=0;//把总线拿低读时间隙开始value>>=1;//读数据是低位开始dq=1;//释放总线if(dq==1)//开始读写数据value|=0x80;delay_uint(5);//60us读一个时间隙最少要保持60us的时间}returnvalue;//返回数据}/*************读取温度的值读出来的是小数***************/uintread_temp(){uintvalue;ucharlow;//在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20();//初始化18b20write_18b20(0xcc);//跳过64位ROMwrite_18b20(0x44);//启动一次温度转换命令delay_uint(50);//500usinit_18b20();//初始化18b20write_18b20(0xcc);//跳过64位ROMwrite_18b20(0xbe);//发出读取暂存器命令EA=0;low=read_18b20();//读温度低字节value=read_18b20();//读温度高字节EA=1;value<<=8;//把温度的高位左移8位value|=low;//把读出的温度低位放到value的低八位中value*=0.0625;//转换到温度值returnvalue;//返回读出的温度}/***********读数模转换数据********************************************************///请先了解ADC0832模数转换的串行 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的//100通道//111通道unsignedcharad0832read(bitSGL,bitODD){unsignedchari=0,value=0,value1=0;SCL=0;DO=1;CS=0;//开始SCL=1;//第一个上升沿SCL=0;DO=SGL;SCL=1;//第二个上升沿SCL=0;DO=ODD;SCL=1;//第三个上升沿DO=1;for(i=0;i<8;i++){SCL=1;SCL=0;//开始从第四个下降沿接收数据value<<=1;if(DO)value++;}for(i=0;i<8;i++){//接收校验数据value1>>=1;if(DO)value1+=0x80;SCL=1;SCL=0;}CS=1;SCL=1;if(value==value1)//与校验数据比较,正确就返回数据,否则返回0returnvalue;return0;}/*************定时器0初始化程序***************/voidtime_init(){EA=1;//开总中断TMOD|=0X01;//定时器0、定时器1工作方式1ET0=1;//开定时器0中断TR0=1;//允许定时器0定时}/********************独立按键程序*****************/ucharkey_can;//按键值voidkey()//独立按键程序{staticucharkey_new=0,key_l;key_can=20;//按键值还原P1=0x0f;if((P1&0x0f)!=0x0f)//按键按下{delay_1ms(1);//按键消抖动if(((P1&0x0f)!=0x0f)&&(key_new==1)){//确认是按键按下key_new=0;key_l=(P1|0xf0);//矩阵键盘扫描P1=key_l;switch(P1){case0xee:key_can=1;break;//得到按键值case0xde:key_can=4;break;//得到按键值case0xbe:key_can=7;break;//得到按键值case0x7e:key_can=10;break;//得到按键值case0xed:key_can=2;break;//得到按键值case0xdd:key_can=5;break;//得到按键值case0xbd:key_can=8;break;//得到按键值case0x7d:key_can=0;break;//得到按键值case0xeb:key_can=3;break;//得到按键值case0xdb:key_can=6;break;//得到按键值case0xbb:key_can=9;break;//得到按键值case0x7b:key_can=11;break;//得到按键值case0xe7:key_can=15;break;//得到按键值case0xd7:key_can=14;break;//得到按键值case0xb7:key_can=13;break;//得到按键值case0x77:key_can=12;break;//得到按键值}//write_sfm2(1,0,key_can);}}elsekey_new=1;}/****************按键处理数码管显示函数***************/voidkey_with(){if(key_can==1)//紧急报警键手动报警{if(menu_1==0)shoudong=1;}if(key_can==12)//退出设置键{menu_1=0;init_1602();//初始化显示}if(key_can==15)//设置键{menu_1++;if(menu_1>=5){menu_1=0;init_1602();//初始化显示}if(menu_1==3)//输入第一个人的手机号码{write_string(1,0,"InputPhone1");write_string(2,0,"");clear_shuzu(dis_smg,11);for(i=0;i99)s_temp=99;}if(key_can==13){s_temp--;//高温报警值减1if(s_temp<=10)s_temp=10;}write_sfm2(1,8,s_temp);//显示温度write_sfm2(2,8,s_yanwu);//显示烟物等级write_com(0x80+7);//将光标移动到第2行第到3位write_com(0x0f);//显示光标并且闪烁write_eeprom();//保存数据}if(menu_1==2)//设置烟物报警{if(key_can==14){s_yanwu++;//烟物报警值加1if(s_yanwu>=99)s_yanwu=99;}if(key_can==13){s_yanwu--;//烟物报警值减1if(s_yanwu<=1)s_yanwu=1;}write_sfm2(1,8,s_temp);//显示温度write_sfm2(2,8,s_yanwu);//显示烟物等级write_com(0x80+0x40+7);//将光标移动到第2行第到3位write_com(0x0f);//显示光标并且闪烁write_eeprom();//保存数据}if(menu_1==3)//设置第一个人短信号码{if(key_can<10)//只有数字键{if(phone1_i<11){phone1_call[phone1_i]=key_can;dis_smg[phone1_i]=0x30+key_can;phone1_i++;if(phone1_i>11)phone1_i=11;write_string_num(2,0,dis_smg,phone1_i);//显示号码lcd1602_guanbiao(1,0+phone1_i+0x40);//开光标}}if(key_can==11)//删除键{if(phone1_i!=0){phone1_i--;phone1_call[phone1_i]='';dis_smg[phone1_i]='';write_string(2,0,"");write_string_num(2,0,dis_smg,phone1_i);//显示号码lcd1602_guanbiao(1,0+phone1_i+0x40);//开光标}}write_eeprom();//保存数据}if(menu_1==4)//设置第二个人短信号码{if(key_can<10)//只有数字键{if(phone2_i<11){phone2_call[phone2_i]=key_can;dis_smg[phone2_i]=0x30+key_can;phone2_i++;if(phone2_i>11)phone2_i=11;write_string_num(2,0,dis_smg,phone2_i);//显示号码lcd1602_guanbiao(1,0+phone2_i+0x40);//开光标}}if(key_can==11)//删除键{if(phone2_i!=0){phone2_i--;phone2_call[phone2_i]='';dis_smg[phone2_i]='';write_string(2,0,"");write_string_num(2,0,dis_smg,phone2_i);//显示号码lcd1602_guanbiao(1,0+phone2_i+0x40);//开光标}}write_eeprom();//保存数据}}/****************报警函数***************/voidclock_h_l(){staticucharvalue,value1;if((yanwu>=s_yanwu)||(temperature>=s_temp)||(shoudong==1))//报警{value++;if(value>=2){value=10;beep=~beep;//蜂鸣器报警if(value1==0){for(i=0;i<6;i++){beep=~beep;//蜂鸣器叫3声delay_1ms(100);}beep=1;//关闭蜂鸣器value1=1;if(phone1_i==11)//只有号码输入正确才可以发短信send_PUD_hzbj();//发送报警信息请注意!火灾报警!for(i=0;i<10;i++){beep=~beep;//蜂鸣器叫3声delay_1ms(300);}beep=1;//关闭蜂鸣器if(phone2_i==11)//只有号码输入正确才可以发短信send_PUD_hzbj();//发送报警信息请注意!火灾报警!}}}else{if((yanwu=99)temperature=99;write_sfm2(1,8,temperature);//显示温度write_sfm2(2,8,yanwu);//显示烟物等级}}}}/*************定时器0中断服务程序***************/voidtime0_int()interrupt1{staticucharvalue;TH0=0x3c;TL0=0xb0;//50msvalue++;if(value%6==0){flag_300ms=1;//300msvalue=0;}}
本文档为【基于单片机的智能火灾报警系统设计源程序代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥20.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
正方体
暂无简介~
格式:doc
大小:42KB
软件:Word
页数:13
分类:
上传时间:2022-05-10
浏览量:63