本人设计了一个短按LED长亮 长按1S灯闪烁 长按2S熄灭 写到 这里就写不下去了 请问各位有什么办法能不使用循环让闪烁 中断时一种方法 但我这里该怎么搞啊 这个问题头疼了很久了
#include<reg52.h>
#include"c52.h"
#define uchar unsigned char
uchar a=0,b=0,c=0,d=0,e,f,g,h,i=0,num=0;
void ledflash ();
void main()
{
EA=1;
ET0=1;
TMOD= 0x01; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xDC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1;
// ledflash ();
for(;;)
{
if(b==1)
{
b=0;
if(!K1)
{
a++;
c=0;
d=0;
if(a>=100&&d==0)
{
ledflash ();
d=1;
a=0;
}
}
if(K1)
{
if(1<a&&a<100&&c==0)
{
LED0=~LED0;
c=1;
a=0;
}
}
}
}
}
void Timer (void) interrupt 1
{
TL0 = 0x00; //设置定时初值
TH0 = 0xDC;
b=1;
//h=1;
i++;
if(i==50)
{
num=1;
i=0;
}
/*if(!K1)
{
a++;
c=0;
d=0;
if(a>=100)//&&d==0)
{
if(i==50)
{
i=0;
LED0=~LED0;
a=0;
}
}
}*/
}
void ledflash ()
{
while(1)
{
if(num==1)
{
LED0=~LED0;
num=0;
}
}
} |