	#include<reg51.h> 
	#include<intrins.h>    //包含_cror_和_crol_函数 
	#define uchar unsigned char 
	#define uint unsigned int 
	void DelayMS(uint x) 
	{ 
	    uchar i; 
	    while(x--) 
	for(i=0;i<120;i++); 
	} 
	void Move_LED() 
	{ 
	      if ((P1&0x10)==0) P0=_cror_(P0,1);        //K1 
	      else if((P1&0x20)==0) P0=_crol_(P0,1);     //K2 
	      else if((P1&0x40)==0) P2=_cror_(P2,1);     //K3 
	      else if((P1&0x80)==0) P2=_crol_(P2,1);     //K4 
	} 
	void main() 
	{ 
	      uchar Recent_Key; //最近按键 
	      P0=0xfe;          //赋初值，第一个LED点亮 
	      P2=0xfe;         //赋初值，第一个LED点亮 
	      P1=0xff;          //P1口输出高电平 
	      Recent_Key=0xff; 
	      while(1) 
	      { 
	          if(Recent_Key!=P1)    //判断按键是否弹起，进行消抖 
	          { 
	               Recent_Key=P1;          //保存最近按键 
	               Move_LED(); 
	               DelayMS(10); 
	          }       } } 
