浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
for(i=0;i<8;i++) { }
for(i=0;i<8;i++) { } CS=1; SCL=1; if(value==value1)
//与校验数据比较,正确就返回数据,否则
//接收校验数据
SCL=1;
SCL=0; //开始从第四个下降沿接收数据 value<<=1; if(DO)
value++;
value1>>=1; if(DO)
value1+=0x80;
SCL=1; SCL=0;
返回0
}
/****************报警函数***************/
return value;
return 0;
作者:舒伟 第 25 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
void clock_h_l() {
static uchar value;
if((dengji >= s_dengji) || (temperature >= s_temp) || (shoudong == 1)) {
value ++; if(value >= 3) { }
value = 10;
beep = ~beep; //蜂鸣器报警
//报警
}else {
if((dengji < s_dengji) && (temperature < (s_temp - 1)) && (shoudong == 0))
//取消报警 }
void main() {
static uchar value; }
{ }
value = 0; beep = 1;
作者:舒伟 第 26 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
temperature = read_temp(); //读取温度值 init_eepom(); time_init();
//读eepom数据
//初始化定时器
delay_1ms(650); while(1) {
作者:舒伟
key();
//独立按键程序
if(key_can < 10) { key_with();
//按键按下要执行的程序}
temperature = read_temp(); //读取温度值 if(flag_300ms == 1) {
flag_300ms = 0; clock_h_l();
dengji = ad0832read(1,0);
dengji = dengji * 10 / 250; huoyan = ad0832read(1,1); huoyan = 10 - huoyan * 10 / 250; if(menu_1 == 0) { if(temperature >= 99)
temperature = 99;
第 27 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
if(value > 20)
value = 0;
if(huoyan < 2) {
smg_i = 4;
dis_smg[3]=smg_du[dengji]; //显示烟物报警等级 dis_smg[2]= 0xbf; // -
dis_smg[1]=smg_du[temperature/10]; //十位 dis_smg[0]=smg_du[temperature];
//个位 ADC0832
为8位ADC,数值为0~255,我们将其分开放入l_tmpdate数组中显示
}
if(zd_break_en == 1) //自动退出设置界面程序 {
zd_break_value ++; //每300ms加一次
if(zd_break_value > 100) //30秒后自动退出设置界面 }else { }
shoudong = 1; smg_i = 4;
dis_smg[3]=0x89; //H; dis_smg[2]=0x89; //H; dis_smg[1]=0x89; //H; dis_smg[0]=0x89; //H;
作者:舒伟 第 28 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
{
menu_1 = 0; smg_i = 3; zd_break_en = 0; zd_break_value = 0;
//
}
}
作者:舒伟 } }
}
display();
//数码管显示函数
第 29 页 共 38 页