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);
}
}
}
里面。