|
问题是用前面的可以实现 灯循环亮灭亮灭 但是用下面注释的部分就不行 现象是所有灯全亮迅速灭掉然后第2个灯正常亮 灭 再所有灯迅速亮灭 然后又跳到最后倒数的灯亮灭 很乱 感觉2个程序应该一样啊 为什么啊
#include
#include
#define uchar unsigned int
uchar a,num1;
void main()
{
TMOD=0x10;
TH1=(65536-46083)/256;
TL1=(65536-46083)%256;
EA=1; //开总中断
ET1=1;
TR1=1;
a=0xfe;
P1=a;
while(1)
{
if(num1==20)
{
P1=0xff;
}
if(num1==40)
{
num1=0;
a=_crol_(a,1);
P1=a;
}
}
}
//为什么下面的方法就不可以
/* while(1)
{
if(num1==20)
{
a=_crol_(a,1);
P1=a;
}
if(num1==40)
{
num1=0;
P1=0xff;
}
}
*/
void time1() interrupt 3
{
TH1=(65536-46083)/256;
TL1=(65536-46083)%256;
num1++;
}
|
|