实现五种不同的流水灯
#include "reg52.h"
#include<intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
#define led P0
sbit led1 = P0^0;
sbit led2 = P0^1;
sbit led3 = P0^2;
sbit led4 = P0^3;
sbit led5 = P0^4;
sbit led6 = P0^5;
sbit led7 = P0^6;
sbit led8 = P0^7;
void delay(u16 i)
{
while(i--);
}
void main()
{
u8 i;
u8 j;
led=~0x01;
delay(50000);
while(1)
{
for(i=0;i<8;i++)
{
P0=~(0x01<<i);
delay(50000);
}
for(i=0;i<7;i++)
{
led=_cror_(led,1);
delay(50000);
}
//1357 2468
for(i=0;i<3;i++)
{
led=_crol_(led,2);
delay(50000);
}
led=_crol_(led,3);
delay(50000);
for(i=0;i<3;i++)
{
led=_crol_(led,2);
delay(50000);
}
//15 26 37 48
led=_crol_(led,1);
delay(50000);
for(i=0;i<3;i++)
{
led=_crol_(led,4);
delay(50000);
led=_crol_(led,5);
delay(50000);
}
led=_crol_(led,4);
delay(50000);
//18 27 36 45
led=_crol_(led,1);
delay(50000);
led=_crol_(led,7);
delay(50000);
led=_cror_(led,6);
delay(50000);
led=_crol_(led,5);
delay(50000);
led=_cror_(led,4);
delay(50000);
led=_crol_(led,3);
delay(50000);
led=_cror_(led,2);
delay(50000);
led=_crol_(led,1);
delay(50000);
//12 123 1234 12345 123456 1234567 12345678
led=_cror_(led,4);
delay(50000);
for(j=1;j<8;j++)
{
for(i=0;i<j;i++)
{
led=_crol_(led,1);
delay(50000);
}
led=_cror_(led,j);
delay(50000);
}
//136¬Ã 258∫Ï 47ª∆
for(i=0;i<3;i++)
{
led1=1;led3=1;led6=0;
led2=0;led5=1;led8=0;
led4=0;led7=1;
delay(50000);
led1=0;led3=0;led6=1;
led2=1;led5=0;led8=1;
led4=1;led7=0;
delay(50000);
}
}
}