资源描述:
《智能火灾报警系统仿真源程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、智能火灾报警系统仿真源程序#include#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedint#include//数码管段选定义0123456789ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//断码//数码管位选定义ucharcodesmg_we[]={0x7f,0xbf,0xdf,0xef};//uchar
2、codesmg_we[]={0xfe,0xfd,0xfb,0xf7};uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};ucharsmg_i=3;//显示数码管的个位数sbitSCL=P3^4;//SCL定义为P1口的第3位脚,连接ADC0832SCL脚sbitDO=P3^3;//DO定义为P1口的第4位脚,连接ADC0832DO脚sbitCS=P3^2;//CS定义为P1口的第4位脚,连接ADC0832CS脚sbitdq=P3^5;//18b20IO口的定义sbitbeep=P3^6;//蜂鸣器IO口定义uinttempe
3、rature,s_temp;//温度的变量uchardengji,s_dengji;//烟物等级ucharshoudong;//手动报警键uinthuoyan;bitflag_300ms;ucharkey_can;//按键值的变量ucharmenu_1;//菜单设计的变量bitflag_lj_en;//按键连加使能bitflag_lj_3_en;//按键连3次连加后使能加的数就越大了ucharkey_time,flag_value;//用做连加的中间变量bitkey_500ms;ucharflag_clock;ucharzd_break_en,zd_break_value;//自动退出设置
4、界面uchara_a;/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){uinti,j;for(i=0;i5、om(){SectorErase(0x2000);byte_write(0x2000,s_temp);byte_write(0x2001,s_dengji);byte_write(0x2060,a_a);}/******************把数据从单片机内部eepom中读出来*****************/voidread_eepom(){s_temp=byte_read(0x2000);s_dengji=byte_read(0x2001);a_a=byte_read(0x2060);}/**************开机自检eepom初始化*****************/voi
6、dinit_eepom(){read_eepom();//先读if(a_a!=1)//新的单片机初始单片机内问EEPOM{s_temp=50;s_dengji=5;a_a=1;write_eepom();}}/***********************18b20初始化函数*****************************/voidinit_18b20(){bitq;dq=1;//把总线拿高delay_uint(1);//15usdq=0;//给复位脉冲delay_uint(80);//750usdq=1;//把总线拿高等待delay_uint(10);//110usq=dq;/
7、/读取18b20初始化信号delay_uint(20);//200usdq=1;//把总线拿高释放总线}/*************写18b20内的数据***************/voidwrite_18b20(uchardat){uchari;for(i=0;i<8;i++){//写数据是低位开始dq=0;//把总线拿低写时间隙开始dq=dat&0x01;//向18b20总线写数据了delay_uint(5);//