用移位运算法将AT89C51单片机P1P2端口16个灯(P1.0P1.1P1.2P1.3)点亮
时间: 2023-08-28 09:04:51 浏览: 149
AT89C51单片机交通灯程序
5星 · 资源好评率100%
以下是用移位运算法将AT89C51单片机P1P2端口16个灯(P1.0P1.1P1.2P1.3)点亮的代码:
```c
#include <reg51.h>
void main()
{
unsigned char i, j;
while (1) {
for (i = 0; i < 16; i++) {
j = 1 << i;
P1 = j;
P2 = j >> 4;
// 延时
for (j = 0; j < 100; j++);
}
}
}
```
这段代码利用了移位运算符的左移和右移操作,将1按位左移i位,然后根据高低4位分别输出到P1和P2端口,实现了16个灯的循环点亮效果。同时,在每个灯点亮后都加入了一个简单的延时来控制灯的亮灭速度。
阅读全文