在Arduino中代码如下:PORTA &=0xF9;while1ifPINA&0x01PORTA =1PA1elsePORTA =1PA2;delay_ms1000;PORTA =~1PA2;delay_ms1000;PA0连接电源PA1PA2连接LED灯后连接电源告诉我最终状态并分析该情况下每一步骤的意义
最终状态:PA1灯亮,PA2灯闪烁。
分析:
-
PORTA &=0xF9:将PORTA的第1、2、3位清零,保留其他位不变。这样做是为了确保PA1和PA2的初始状态为低电平。 -
while(1):无限循环。 -
if(PINA&0x01):判断PA0是否为高电平,如果是则执行下一步,否则执行else中的语句。 -
PORTA |=(1<<PA1):将PA1设置为高电平,即点亮PA1连接的LED灯。 -
如果PA0为低电平,则执行else中的语句。
-
PORTA |=(1<<PA2):将PA2设置为高电平,即点亮PA2连接的LED灯。 -
delay_ms(1000):延时1秒。 -
PORTA |=~(1<<PA2):将PA2设置为低电平,即熄灭PA2连接的LED灯。 -
delay_ms(1000):延时1秒。 -
回到步骤3,继续判断PA0的状态。
分析完毕。
原文地址: https://www.cveoy.top/t/topic/fGdP 著作权归作者所有。请勿转载和采集!