5.LED流水灯

#define的使用:
#define A P0 例如#define pi 3.14
循环左移和右移函数:
均包含在intrins.h库函数中
即要写出

#include<intrins.h>
_crol_(a,b);//左移
_cror_(a,b);//右移

a是移动的值,b是移动的位数
程序如下:

#include<reg51.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;

#define led P2

void delay(u16 i)//延时函数
{
	while(i--);
}

void main()
{
	u8 i=0;//定义i为无符号字符型(由于下面使用的i为0到7定义其为8位即可)
	led=0xfe;//给LED一个初始状态,0xfe为十六进制,1111 1110
	delay(50000);//延时450ms
	while(1)
	{
		 for(i=0;i<7;i++)//左移七次,注意是七次
		 {
		 	led=_crol_(led,1);//led为移动的值,1是移动位数
			delay(50000);//如果不加延时,几乎看不出移动过程
		 }
		 for(i=0;i<7;i++)//移动到0111 1111后右移七次
		 {
		 	led=_cror_(led,1);
			delay(50000);
		 }
	}
}

可以通过移动位数,方向的改变,来实现多种形式的流水灯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章