用T0定时器写来回流水灯,但为何只持续点亮一盏灯
[复制链接]
用T0定时器写来回流水灯,但却只亮了一盏灯,不会流水,不知道是什么问题,帮忙分析下,看看哪个地方出错了。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
uint x;
char tmp;
void delayms();
void main()
{
uint i;
tmp=0x7f;
P2=tmp;
delayms();
while(1)
{
for(i=0;i<7;i++)
{
tmp=_cror_(tmp,1);
P2=tmp;
delayms();
}
for(i=7;i>0;i--)
{
tmp=_crol_(tmp,1);
P2=tmp;
delayms();
}
}
}
void delayms()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
x++;
if(x==20)
{
x=0;
}
}
|