当前位置:首页 > 基于单片机保温箱课程设计
BEEP=1; ALAM=1; ALAM1=1;
}
}
/*****主函数*****/ void main(void) {
uint z;
InitTimer(); //初始化定时器 EA=1; //全局中断开关 TR0=1;
ET0=1; //开启定时器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z<300;z++) {
Disp_init(); } while(1) {
if(SET==0) {
Delay(2000); do{}while(SET==0); set_st++;x=0;shanshuo_st=1; if(set_st>2)set_st=0; }
if(set_st==0) {
EX0=0; //关闭外部中断0 EX1=0; //关闭外部中断1
25
check_wendu(); Disp_Temperature(); Alarm(); //报警检测 }
else if(set_st==1) {
BEEP=1; //关闭蜂鸣器 ALAM=1; ALAM1=1;
EX0=1; //开启外部中断0 EX1=1; //开启外部中断1
if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(shangxian);} }
else if(set_st==2) {
BEEP=1; //关闭蜂鸣器 ALAM=1; ALAM1=1;
EX0=1; //开启外部中断0 EX1=1; //开启外部中断1
if(x>=10){shanshuo_st=~shanshuo_st;x=0;} if(shanshuo_st) {Disp_alarm(xiaxian);} } } }
/*****定时器0中断服务程序*****/ void timer0(void) interrupt 1 {
TH0=0x3c; TL0=0xb0; x++; }
/*****外部中断0服务程序*****/
26
void int0(void) interrupt 0 {
EX0=0; //关外部中断0 if(DEC==0&&set_st==1) { do{
}
Disp_alarm(shangxian);
while(DEC==0); shangxian--;
if(shangxian else if(DEC==0&&set_st==2) { do{ } Disp_alarm(xiaxian); while(DEC==0); xiaxian--; if(xiaxian<0)xiaxian=0; } } /*****外部中断1服务程序*****/ void int1(void) interrupt 2 { EX1=0; //关外部中断1 if(ADD==0&&set_st==1) { do{ } Disp_alarm(shangxian); while(ADD==0); shangxian++; if(shangxian>99)shangxian=99; 27 } else if(ADD==0&&set_st==2) { do{ } Disp_alarm(xiaxian); while(ADD==0); xiaxian++; if(xiaxian>shangxian)xiaxian=shangxian; } } 28
共分享92篇相关文档