首位也得延時,循環只能移位7次。
#include"reg52.h"
#include<intrins.h>
typedef unsigned long u32;
typedef unsigned char u8;
void delay(u32 i)
{
while(i--);
}
u8 led,j;
void main()
{
while(1)
{
P0=0xfe;
delay(10000);
for(led=7;led>0;led--)
{
j=~P0<<1;
P0=~j;
delay(10000);
}
}
}
也可以這樣寫
#include"reg52.h"
#include<intrins.h>
typedef unsigned long u32;
typedef unsigned char u8;
void delay(u32 i)
{
while(i--);
}
//u8 led,j;
void main()
{
P0=0xfe;
delay(10000);
while(1)
{
P0=P0<<1|0x01;
if(P0==0xff)
P0=0xfe;
delay(10000);
}
} |