单片机 花样霓虹灯

#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灯同时流动

猜你喜欢

转载自blog.csdn.net/Obito_TXP/article/details/121427800