#include<regx51.h> #include<intrins.h> void delay(unsigned int i){ while(i--); } void move_left(unsigned char p){ unsigned char i; P1=p; for(i=0;i<8;i ){ delay(20000); P1=_crol_(P1,1); } } void move_right(unsigned char p){ unsigned char i; P1=p; for(i=0;i<8;i ){ delay(20000); P1=_cror_(P1,1); } } void move_middle(unsigned char p){ unsigned char i; for(i=0;i<4;i ){ P1=((p<<i)&0x0f)|(0xf0&(p>>i)); delay(20000); } } void move_out(unsigned char p){ unsigned char i; for(i=0;i<4;i ){ P1=((p<<i)&0xf0)|((P&0x0f)>>i); delay(20000); } } void main(){ while(1){ move_left(0xfe);///单灯流动 move_right(0x7f); move_left(0xfc);///双灯流动 move_right(0x3f); move_middle(0x7e); move_out(0xe7); } }
内向外和从外向内通过逻辑或LED灯同时流动