标题:
把软件延时改成定时中断延时的问题
[打印本页]
作者:
heicad
时间:
2016-3-11 23:17
标题:
把软件延时改成定时中断延时的问题
想把以下的程序改成用定时器方法延时可是6一直不可以求大神解答
原程序
不知那里出问题了,灯和数码管一直亮第一个
void led1()
{
unsigned int i;
led=0xfe;
P0=table[i];
Delay10ms(50);
while(1)
{
for(i=0;i<7;i++)
{
led=_crol_(led,1);
P0=table[i+1];
Delay10ms(50);
}
for(i=7;i>0;i--)
{
led=_cror_(led,1);
P0=table[i-1];
Delay10ms(50);
}
}
}
改成了
void led1()
{
unsigned int i;
EA=1;
TMOD=0x01;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
led=0xfe;
P0=table[i];
while(1);
}
void timer0() interrupt 1
{ int i;
TR0=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==10)
for(i=0;i<7;i++)
{
led=_crol_(led,1);
P0=table[i+1];
}
if(tt==20)
for(i=7;i>0;i--)
{ tt=0;
led=_cror_(led,1);
P0=table[i-1];
}
}
复制代码
作者:
heicad
时间:
2016-3-11 23:17
换的程序大概知道为什么错了,还是不理解定时延时的写法,程序的注意目的是完成八个0.5秒的流水灯的左右位移再加上数码管对应数字切换,求大神帮忙写个!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1