#include<reg51.h>
#include <intrins.h>
#define unc unsigned char
#define unt unsigned int
sbit d=P1;
void delay(unt);
void main()
{
d=0xfe;
while(1)
{
unc a,b;
a=10,b=10;
P1=d;
delay(200);
while(a!=0)
{
d=_crol_(d,1);
P1=d;
delay(100);
a--;
}
while(b!=0)
{
d=_cror_(d,1);
P1=d;
delay(100);
b--;
}
}
}
void delay(unt e)
{
unt x,y;
for(x=200;x>0;x--)
{
for(y=e;y>0;y--)
{
}
}
看下这个程序的问题,我原来意图是让灯:先左移一位10次,然后再右移一位10次。这样循环,但是事实不行啊!!谢谢分析。 |