初学单片机,定时器遇到问题,那位大神帮忙解决解决~~~

2019-07-15 18:19发布

  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uint t0;
  6. void init()
  7. {
  8.         TMOD=0x11;
  9.         TH0=(65535-50000)/256;
  10.         TL0=(65535-50000)%256;
  11.         EA=1;
  12.         EX0=1;
  13.         TR0=1;                                                                        
  14. }

  15. void main()
  16. {
  17.     P1=0x01;
  18.         t0=P1;
  19.         while(1)
  20.         {
  21.                 init();        
  22.         }
  23. }

  24. void timer0() interrupt 0
  25. {
  26.         TH0=(65535-50000)/256;
  27.         TL0=(65535-50000)%256;
  28.         t0=_cror_(t0,1);        
  29. }
复制代码

我想做一个LED流水灯  下载进去后 灯不会移位~~~请高手指点指点~~

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
司徒一然
1楼-- · 2019-07-15 22:14
1、一般都是用typdefine usinged int uint,那样是不合适的用法。
2、你的init()函数不应该一直放在while(1)循环当中,否则会一直给定时器赋初值,定时器永远没法溢出自然进不了中断。
3、以上是我的看法,仅供参考!
me860
2楼-- · 2019-07-15 22:27
 精彩回答 2  元偷偷看……
witligen
3楼-- · 2019-07-16 00:46
1.设置定时器0有误,EX0=1是外部中断0,应该是ET0=1; 2.定时器初始化程序应该置于while之前 3.最后要将t0的值送往P1口
阿信509
4楼-- · 2019-07-16 04:43
你的灯怎么移动呀?你都没有给P1送值,而且初始化就开始执行一次就行了

一周热门 更多>