【51单片机之流水灯】

流水灯的多种实现方式

四种实现流水灯的方法,
第一种是直接法。
第二种是调用左右移》或《 。
第三种是调用_crol_或_cror_及intrinsic.h文件。
第四种运用数组。
去掉相应的注释即可用

#include <REGX52.H>	 //头文件
#include <intrins.h> //调用左右移库函数 

unsigned char code LED[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7E};	//LED点亮数组

void main()	
{
   unsigned char X;	    //定义左移位变量
   unsigned int  i; 	//定义延时变量
   unsigned char temp;  //定义数组自加变量
   X=0;
 //i=3000;
   temp=0;
 //P1=0xFE;       //点亮第一个LED
   while(1)
   {
//****************方法一:直接法*****************
  	  /*
	  P1=0xFE;  //点亮第1个LED
	  while(i--);//延时
	  P1=0xFD;  //点亮第2个LED
	  while(i--);//延时
	  P1=0xFB;  //点亮第3个LED
	  while(i--);//延时
	  P1=0xF7;  //点亮第4个LED
	  while(i--);//延时
	  P1=0xEF;  //点亮第5个LED
	  while(i--);//延时
	  P1=0xDF;  //点亮第6个LED
	  while(i--);//延时
	  P1=0xBF;  //点亮第7个LED
	  while(i--);//延时
	  P1=0x7E;  //点亮第8个LED
	  while(i--);//延时
  
  	 */
	
//****************方法二:左右移*****************
     /*
     P1=~(0x01<<X);
	 X++;
	 if(X>=8)
	 {

	  X=0;
	
	 }
 
	 while(i--);

    */
//****************方法三:调用库函数intrins.h*****************
     /*
	 while(i--);
	 P1=_crol_(P1,2);	  //2为移动的位数, _crol_为左移函数
	 */

//****************方法四:运用数组点亮LED*****************
	 P1=LED[temp++];
	 if(temp>=8)
	{
					
 	 temp=0;			
					
	}
	i=4000;
	while(i--);






   }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值