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

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条回答
stickler
2019-03-25 11:55
看楼主的意思,P1口输出连接的是几个led,想让产生流水效果,应该是在中断处理函数中改变P1的输出,控制i自减1。初始化定时器在main中执行一次即可,后面的无限循环可以什么都不干。你的程序中,定时器的延时作用没有起,在主函数中一直被初始化,顺序执行的那几条指令的延时太短,led也在流水点亮,只是人眼反应不过来。

一周热门 更多>