//object: 循环点亮Led灯,每次点亮一个 //writer: mike //time: 2020.10.1 #include<reg52.h> //用于对位的循环 #include<intrins.h> #define uchar unsigned char #define uint unsigned int void delay(uint); void main() { uchar i; uchar temp; //注意16进制,左侧才是低位,右侧是高位 temp = 0x7f; //这里不能直接操作P0口,P0不是变量,直接就点亮小灯 P1 = temp; while(1) { for(i=0;i<8;i++) { //每次将temp循环移动一位 temp = _cror_(temp,1); //将移动好的二进制,给P0口 P1 = temp; //延时函数 delay(1000); } } } void delay(uint x) { uint m, n; for(m=x;m>0;m--) { //120是调试出来的,大概执行120次是一个毫秒。 for(n=120;n>0; n--); } }
其中 intrins.h 头文件包含了 循环左移动,以及循环右移动函数 _crol_(), _cror_()