8 51 LED流水灯

1.C语言常用的预处理命令

 

2.循环左移右移函数

 

1.C语言常用预处理命令

#define使用

#define A P0(注意后面不用加分号)

 

2.循环左移右移函数

_crol_(a,b);循环左移函数,a是左移的值,b是左移的位数。包含在instrins.h库函数里面。

_cror_(a,b);循环右移函数,a是右移的值,b是右移的位数。包含在instrins.h库函数

 

#include "reg51.h"    //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;

#define  led P2	   //将单片机的P2端口定义为led

/*******************************************************************************
* 函 数 名         : delay
* 函数功能		   : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
	while(i--);
}

void main()
{
	u8 i;
	led=0xfe; //1111 1110     P2^0 = 0
	delay(50000);
	while(1)
	{
		for (i=0;i<7;i++)
		{
			led=_crol_(led,1);	 
			/*0xfe 1111 1110                第1个led灯亮 ,其余熄灭
			i = 0, led = 1111 1101, P2^1= 0,第2个led灯亮 ,其余熄灭。
			i = 1, led = 1111 1011, P2^2= 0,第3个led灯亮 ,其余熄灭。
			i = 2, led = 1111 0111, P2^3= 0,第4个led灯亮 ,其余熄灭。
			i = 3, led = 1110 1111, P2^4= 0,第5个led灯亮 ,其余熄灭。
			i = 4, led = 1101 1111, P2^5= 0,第6个led灯亮 ,其余熄灭。
			i = 5, led = 1011 1111, P2^6= 0,第7个led灯亮 ,其余熄灭。
			i = 6, led = 0111 1111, P2^7= 0,第8个led灯亮 ,其余熄灭。
			i = 7, 退出循环。
			*/
			delay(50000);
		}
		for (i=0;i<7;i++)
		{
			/*           0111 1111               第8个led灯亮 ,其余熄灭。
			i = 0, led = 1011 1111, P2^7= 0,第7个led灯亮 ,其余熄灭。
			i = 1, led = 1101 1111, P2^6= 0,第3个led灯亮 ,其余熄灭。
			i = 2, led = 1110 1111, P2^5= 0,第4个led灯亮 ,其余熄灭。
			i = 3, led = 1111 0111, P2^4= 0,第5个led灯亮 ,其余熄灭。
			i = 4, led = 1111 1011, P2^3= 0,第6个led灯亮 ,其余熄灭。
			i = 5, led = 1111 1101, P2^2= 0,第7个led灯亮 ,其余熄灭。
			i = 6, led = 1111 1110, P2^1= 0,第8个led灯亮 ,其余熄灭。
			i = 7, 退出循环。
			*/
			led=_cror_(led,1);
			delay(50000);
		}
		
	}		
}

里面。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值