我用定时器做的流水灯为什么起不到延时效果

2019-03-24 17:45发布

      各位大师好,本人刚学单片机,本想用定时器做个流水灯,但却没有流水效果,程序烧进去后,灯是全亮的。不知道定时延时有问题还是自减循环有问题,请各位大师指点迷津,感谢!!
      以下是我写程序
#include<reg52.h>
void TO_chushihua()
{
TMOD=0x01;  
TH0=0;
TL0=0;

ET0=1;
TR0=1;
EA=1;
}
void main()
{
unsigned char i=255;
while(1)
{
   P1=i;
  TO_chushihua();
  i--;
}
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
鹏鹏0830
2019-03-26 02:44
TO_chushihua();很明显是初始化,既然是初始化只要执行一次就够了,就不要放while(1)里了,而且你配了定时器,又不写中断入口,就是你说的interrupt 1,你这个东西不写,你配定时器配了干嘛呢,你这个程序只会一直在while(1)里跑,你的本意应该是想定时去减i,减i的工作应该在中断里做,很明显你没有写中断。
你应该还没有弄清延时和定时器的区别,可能你延时也没理解的很明白,定时器需要花点时间去理解的,好好看看书。定时器是非常重要的,和你认为的延时完全是两码事