#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--);
}
实际效果是只有一个灯亮,我还是新手,大家帮帮忙!!
谢谢啦,其中一个问题解决了。不过的写这个程序的目的是想借助定时器中断实现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);
}
}
非常感谢
一周热门 更多>