流程:
利用16进制&位移控制小灯,每个小灯亮灭依次&延时1秒
要点:
-
位移:“<<”&">>" 利用P1口8位位移控制P1.0~P1.7口的开关
-
“&和|”的用法:按位与/或,“5&2”——>“0101&0010”
程序:
#include<reg52.h>
#define uint unsigned int
void delay();
void delay(uint zms) //延时函数
{uint x,y;
for(x=112;x>0;x--)
for(y=zms;y>0;y--);
}
void main()
{
uint i;
while(1)
{
P1=0xfe; //0xfe的二进制为:1111 1110
for(i=0;i<8;i++)
{
delay(1000);
P1 <<= 1;
P1 = P1 | 0x01; //上一个灯需要熄灭,按位或,"0x01":0000 0001
//左移后,最右端自动赋值0,所以需要该语句赋值1
}
}
}