Arduino 代码分析:PA0 控制 PA1 亮灯和 PA2 闪烁
Arduino 代码分析:PA0 控制 PA1 亮灯和 PA2 闪烁
代码如下:
PORTA &= 0xF9;
while (1) {
if (PINA & 0x01) {
PORTA |= (1 << PA1);
} else {
PORTA |= (1 << PA2);
delay_ms(1000);
PORTA |= ~(1 << PA2);
delay_ms(1000);
}
}
连接说明:
- PA0 连接电源
- PA1 连接 LED 灯后接地
- PA2 连接 LED 灯后接地
最终状态:
- PA1 连接的 LED 灯亮
- PA2 连接的 LED 灯闪烁
分析:
PORTA &= 0xF9:将 PORTA 的第 1、2 位清零,其余位保持不变。while (1):进入无限循环。if (PINA & 0x01):判断 PA0 是否被按下,若被按下,则执行下一步骤;否则执行 else 中的语句。PORTA |= (1 << PA1):将 PORTA 的第 1 位(即 PA1)置 1,点亮 PA1 连接的 LED 灯。else:PA0 未被按下,执行下一步骤。PORTA |= (1 << PA2):将 PORTA 的第 2 位(即 PA2)置 1,点亮 PA2 连接的 LED 灯。delay_ms(1000):延时 1 秒。PORTA |= ~(1 << PA2):将 PORTA 的第 2 位(即 PA2)取反,熄灭 PA2 连接的 LED 灯。delay_ms(1000):延时 1 秒。- 回到步骤 3,继续循环执行。
分析结果表明:
- 当 PA0 未被按下时,PA2 连接的 LED 灯会闪烁;
- 当 PA0 被按下时,PA1 连接的 LED 灯会点亮,PA2 连接的 LED 灯则会停止闪烁。
原文地址: https://www.cveoy.top/t/topic/jpz1 著作权归作者所有。请勿转载和采集!