目的是使led从左到右然后再从右到左 可是我的代码只能实现一次从左到右然后就没有led亮(灯8个)
我的思路是通过余数判断是否移位到边界然后转向 我在草稿纸上也算过了发现没什么问题啊 可是就是实现不了 求大神帮忙修改一下
单片机源程序:
#include "reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define led P0
u16 j=0;
void time()
{
TMOD=0x01;
TH0=0xfc;TL0=0x12;ET0=1;
TR0=1;EA=1;
}
void main()
{
u8 dat=0x01,k=0,i=0;
time();
while(1)
{ led=dat;
if(j==500)
{
j=0;
if(i/2==1)
{
dat=dat>>1;
}
if(i/2==0)
{
dat=dat<<1;
}
k++;
if(k%7==0&&k!=0)
i++;
}
}
}
void time0() interrupt 1
{
TH0=0xfc;TL0=0x12;
j++;
}
|