中断学习中,本意是不按键时led为1秒闪一次,按键后按照每6秒闪一次,但是实际运行后不按键时1秒闪一次,按键后还是1秒闪一次,求解答。
#include <REG51.H>
#define uchar unsigned char
uchar cnt;
sbit led=P3^0;//3.0接led灯
void delay10ms(int x)
{ int i,j;
for (i=1;i<x;i++) // 执行x次,延迟X*10ms
for (j=1;j<1200;j++);// 执行120次,延迟10ms
}
void is_key(void) interrupt 0 using 1 //3.2的按键外部中断
{
cnt=600; //led灯6秒闪一次
}
/*********主程序********************/
void main()
{
EA=1;
EX0=1;
IT0=1;
cnt=100; //LED灯1秒闪一次
while(1)
{
led=~led;
delay10ms(cnt); //led灯按周期闪。
}
}
|