写了个LED循环灯,程序不执行!求大神

2019-07-15 18:57发布

看不出什么毛病啊,程序也很简单,怎么就是不行啊!已经验证板子没有问题。

#include<reg52.h>
#include<intrins.h>
void init();
int a;
void main()
{
   init();
   P1=0xfe;
         while(1)
         {
                 if(a==20)
                 {
                 a=0;
               
                 P1=_crol_(P1,1);
                 }
         }
}
void init()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
}

void timer0() interrupt 1
{
        a++;
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
呆呆1991
1楼-- · 2019-07-17 10:15
阿信509 发表于 2014-7-31 14:48
你的程序只有在a=20的时候才进去执行了一次,而且进去后a清0 了,P1也就只有输出0 了 ...

那就是1秒执行一次了,
呆呆1991
2楼-- · 2019-07-17 11:44
 精彩回答 2  元偷偷看……
学中
3楼-- · 2019-07-17 15:27
你的程序我试了 可以  下面是我在改的其实也一样 你看一下 #include<reg52.h> #include<intrins.h> int a,temp; void init() {         TMOD=0x01;         TH0=(65535-50000)/256;         TL0=(65535-50000)%256;         EA=1;         ET0=1;         TR0=1; }  void timer0() interrupt 1 {            TH0=(65535-50000)/256;     TL0=(65535-50000)%256;      a++; }  void main() {    init();    temp=0xfe;     while(1)          {              if(a==20)                {                  a=0;                                            P1=temp;                  temp=_crol_(temp,1);                 }          } }   
爱上傻傻
4楼-- · 2019-07-17 19:55
init();
   temp=0xfe;
         while(1)
         {
                 if(a==20)
                 {
                 a=0;
               
                 temp=_crol_(1,temp);
                 }
                P1=temp
         
我的电子发烧友
5楼-- · 2019-07-17 21:08
学中 发表于 2014-8-3 20:21
你的程序我试了 可以  下面是我在改的其实也一样 你看一下 #include #include int a,temp; void init() {          ...

  P1=temp;temp=_crol_(temp,1); 这样写就正常运行了,但是直接写上P1=_crol_(P1,1)的话,亮的灯就不熄灭了,只是一个一个的点亮而已!这是为什么啊P1的值应该已经被替换了啊,为什么不执行啊,很迷茫
我的电子发烧友
6楼-- · 2019-07-17 22:43
爱上傻傻 发表于 2014-8-3 20:42
init();
   temp=0xfe;
         while(1)

temp=_crol_(1,temp);这个应该错了……
P1=temp;temp=_crol_(temp,1); 这样写就正常运行了,但是直接写上P1=_crol_(P1,1)就不行了啊,能帮忙分析一下吗

一周热门 更多>