大家帮我看看这个程序有,我的目的是实现LED的左右来

2019-07-16 06:24发布

#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar ww;
uchar num;
void delayms(uint);
void main()
{
TMOD=0x01;
TH0=(65535-49000)/256;
TL0=(65535-49000)%256;
EA=1;   //开总中断
ET0=1;  //开定时器0中断
TR0=1;  //启动定时器0
while(1)
{
  ww=0xfe;
  P1=ww;
  ww=_crol_(ww,1);
  delayms(7);


}
}

void TO_time() interrupt 1
{

  if(num>7)
    {
     P1=ww;
     ww=_cror_(ww,1);
     delayms(7);
         num++;

    }
}
void delayms(uint xms)
{
   uint i,j;
for(i=xms;i>0;i--)
   for(j=110;j>0;j--);
}



实际效果是只有一个灯亮,我还是新手,大家帮帮忙!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
diangongshi
1楼-- · 2019-07-16 07:48
 精彩回答 2  元偷偷看……
阿亮tml
2楼-- · 2019-07-16 12:19
谢谢啦,其中一个问题解决了。不过的写这个程序的目的是想借助定时器中断实现LED的左右来回点亮,但实际上是只有一个方向的点亮。如果可以的话,可以帮帮我吗?
阿亮tml
3楼-- · 2019-07-16 14:22
diangongshi 发表于 2012-2-21 10:36

while(1)
{

谢谢啦,其中一个问题解决了。不过的写这个程序的目的是想借助定时器中断实现LED的左右来回点亮,但实际上是只有一个方向的点亮。如果可以的话,可以帮帮我吗?
diangongshi
4楼-- · 2019-07-16 19:34
阿亮tml 发表于 2012-2-21 11:02
谢谢啦,其中一个问题解决了。不过的写这个程序的目的是想借助定时器中断实现LED的左右来 ...

while(1)
{

unsigned char m;
for(m = 8, m>0, m--)
{
P1=ww;
  ww=_crol_(ww,1);
  delayms(7);

}

for(m = 8, m>0, m--)
{
ww=_cror_(ww,1);
  delayms(7);

}


}


阿亮tml
5楼-- · 2019-07-16 22:10
diangongshi 发表于 2012-2-22 08:48
while(1)
{
unsigned char m;

非常感谢

一周热门 更多>