|
目的是使led從左到右然后再從右到左 可是我的代碼只能實(shí)現(xiàn)一次從左到右然后就沒有l(wèi)ed亮(燈8個(gè))
我的思路是通過余數(shù)判斷是否移位到邊界然后轉(zhuǎn)向 我在草稿紙上也算過了發(fā)現(xiàn)沒什么問題啊 可是就是實(shí)現(xiàn)不了 求大神幫忙修改一下
單片機(jī)源程序:
#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++;
}
|
|