基于单片机的防火防盗报警系统设计(1)(7)

2019-05-17 15:14

宿州学院毕业论文设计 基于单片机的防火防盗报警系统

unsigned char ad0832read(bit SGL,bit ODD) {

unsigned char i=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; //第三个上升沿 SCL=0; //第三个下降沿 DO=1;

for(i=0;i<8;i++) { }

for(i=0;i<8;i++) { } CS=1; SCL=1;

if(value==value1)

//与校验数据比较,正确就返回数据,否则

//接收校验数据

value1>>=1; if(DO)

value1+=0x80; SCL=1; SCL=0; SCL=1;

SCL=0; //开始从第四个下降沿接收数据 value<<=1; if(DO)

value++;

//开始 //第一个上升沿

返回0

35

宿州学院毕业论文设计 基于单片机的防火防盗报警系统

}

return value;

return 0;

/*************定时器0初始化程序***************/ void time_init() { }

/********************独立按键程序*****************/ uchar key_can;

void key() //独立按键程序 {

static uchar key_new;

key_can = 20; //按键值还原 P1 |= 0x0f;

if((P1 & 0x0f) != 0x0f) {

EA = 1; //开总中断

TMOD = 0X01; //定时器0、定时器1工作方式1 ET0 = 1; TR0 = 1;

//开定时器0中断 //允许定时器0定时

//按键值

//按键按下

delay_1ms(1); //按键消抖动

if(((P1 & 0x0f) != 0x0f) && (key_new == 1)) {

//确认是按键按下

key_new = 0; switch(P1 & 0x0f) {

case 0x0e: key_can = 4; break; //得到k1键值 case 0x0d: key_can = 3; break; //得到k2键值 case 0x0b: key_can = 2; break; //得到k3键值

36

宿州学院毕业论文设计 基于单片机的防火防盗报警系统

}

}

case 0x07: key_can = 1; break; //得到k4键值

}

}

else

key_new = 1;

/****************按键处理LCD1602液晶显示函数***************/ void key_with() {

if(key_can == 4) //紧急报警键 手动报警 { }

if(key_can == 1) //设置键 { }

if(menu_1 == 0) { }

if(menu_1 == 1) {

if(menu_1 == 0)

shoudong = 1;

menu_1 ++; if(menu_1 >= 3) { }

if(menu_1 == 0)

init_1602() ; //初始化显示 menu_1 = 0;

if((key_can == 2) || (key_can == 3))

shoudong = 0; //取消手动报警

//设置高温报警

if(key_can == 2) {

37

宿州学院毕业论文设计 基于单片机的防火防盗报警系统

}

s_temp ++ ;

//高温报警值加1

if(s_temp > 99)

s_temp = 99;

if(key_can == 3) { }

write_sfm2(1,8,s_temp); //显示温度 write_sfm2(2,8,s_dengji);

//显示烟物等级

write_com(0x80+7); //将光标移动到第2行第到3位 write_com(0x0f); //显示光标并且闪烁 write_eeprom(); //保存数据

s_temp -- ;

//高温报警值减1

if(s_temp <= 10)

s_temp = 10 ;

}

if(menu_1 == 2) {

//设置低温报警

if(key_can == 2) { }

if(key_can == 3) { }

write_sfm2(1,8,s_temp); //显示温度 write_sfm2(2,8,s_dengji);

//显示烟物等级

write_com(0x80+0x40+7); //将光标移动到第2行第到3位 write_com(0x0f); //显示光标并且闪烁

38

s_dengji ++ ; //烟物报警值加1 if(s_dengji >= 99)

s_dengji = 99;

s_dengji --; //烟物报警值减1 if(s_dengji <= 1)

s_dengji = 1;

宿州学院毕业论文设计 基于单片机的防火防盗报警系统

write_eeprom(); //保存数据

}

}

/****************报警函数***************/ void clock_h_l() { }

/***************主函数*****************/ void main() {

beep = 0;

static uchar value;

if((dengji >= s_dengji) || (temperature >= s_temp) || (shoudong == 1)) { { }

if((dengji < s_dengji) && (temperature < (s_temp)) && (shoudong == 0)){

value = 0; beep = 1;

fengshan = 1; //关闭风扇

//取消报警

value ++; if(value >= 2) { }

value = 10;

beep = ~beep; //蜂鸣器报警 fengshan = 0; //起动风扇 //报警

}else

}

//开机蜂鸣器叫一声

39


基于单片机的防火防盗报警系统设计(1)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高一数学必修一(暑期自学材料,非常详细)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: