void button_int0 () interrupt 0 { //当函数正确时,需改正delay(大数目)为delay_stop(大数目);
uchar timp;
uint i=0;
/****
IE=0x80时,程序执行完了,但是没有办法退出中断,
当使用EA=0时,就可以退出中断了。很肯定的是,并没有重复进入中断。
*****/
//IE=0x80;
EX0=0;
EA=0;
light =1;
timp=P1;
exit_flag=off;
# if test
test_define();
# endif
//closs door
while(P1!=0XFF); //waiting the (button)interrupt 0 relax
# if test
light=!light; // test why doesn't IE equal 0x80
delay(20000);
# endif
while((P1!=0xEF)&&(exit_flag==off)){ //按下P14口实现“取消”功能 并且在调用函数中没有按“取消”
timer_selection(trace_kb(0,0,0));
//trace_kb(0,0,0);
}
LIGHT_off(); // test why doesn't IE equal 0x80
# if test
light=!light; // test why doesn't IE equal 0x80
delay(20000);
# endif
delay_stop(22500); // 等待松开按键,预防按键出错再次进入到中断中
EX0=1;
EA=1;
return;
}