2020-01-22 周五
左右移函数格式:aa = crol(aa,1)
工作原理: P2口的八位数字:aa = 0xfe; P2 = aa; 即1111 1110。左移函数将第八位拿开,然后后七位往左移动一位,此时第一位是空位状态,再将刚刚拿走的第八位放置在第一位,依次循环。结果就是:1111 1101、1111 1011······
举一反三: 若要让LED灯第2、4、6、8位依次点亮呢?
只需在程序中修改两处:
【一】aa = 0xfe 改为 aa = 0xfd 即:1111 1101,第二位点亮;
【二】aa = crol(aa,1) 改为 aa = crol(aa,2),意思是aa每次左移两位。
#include<reg52.h>
#include<intrins.h> //包含crol、cror函数的头文件
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
unsigned aa;//定义一个无符号临时变量{我也不明白为啥那么不是unsigned char }
u16 a;
void main()
{
aa = 0xfe;//1111 1110
P2 = aa;
while(1)
{
aa = _crol_(aa,1);
P2 = aa;
a = 30000;
while(a--);
}
}