单片机之路 ——流水灯(3)

接连啃C语言老本过了前两关,第三关还是led灯,灯灯等灯瞪灯等灯 灯灯等灯瞪灯等灯……
这一关就引入了一个新概念:移位函数。举例来说就是把一个八位二进制数1111 1110 末尾的0 不断移动,造成灯挨个点亮的效果,像流水一样,形象称之为流水灯。俺目前只跟着郭天祥老师学了循环左移关键字:crol(move,1) ,括号内容自定义。

下面展示程序:

include

include

void main ()
{
P2=0xfe;
while(1)
{
long a=5000;
P2=_crol _(P2,1); //_crol _的“l”后面有一个空格,去掉
while(a--);
}
}

include

include

void main ()
{
long move=0xfe;
while(1)
{
long a=5000;
move = crol(move,1);
P2 = move;
while(a--);
}
}

//
头文件 头文件 头文件!!!#include 导入crol函数的头文件
move后面的数字决定一次移动几位,移动一位就是挨个点亮,两个就是跳跃点亮
老师说P2直接赋值不好。所以第二个程序使用了变量move存储电压分布

移位函数+延时函数

移位函数:
头文件 #include
_crol _ 字符循环左移 赋值P1=0xfe 即1111 1110 P1 = crol( P1 , 1 ) 则0从1位循环左移,灯从1-7循环亮起
_cror _ 字符循环右移
_irol _ 整数循环左移 
_iror _ 整数循环右移 
_lrol _ 长整数循环左移  
_lror _ 长整数循环右移 
上面所有函数名称的最后一个字母后面都有一个空格,去掉

你可能感兴趣的:(单片机之路 ——流水灯(3))