在Arduino中代码如下:DDRD=0x07;int val=0;PORTD =0x06;while1PORTD &=~1val;ifPIND&0x01val+=1;ifval2val=2;elseval=1;PD0接通电源最终的PD0=1还是0并解释每一步骤
最终的PD0为0。
代码解释:
-
DDRD=0x07:将D0、D1、D2三个引脚设为输出模式,即设置为1。 -
int val=0:定义变量val并初始化为0。 -
PORTD |=0x06:将D1和D2引脚的输出电平设为高电平,即设置为1。 -
进入while循环。
-
PORTD &=~(1<<val):将val对应的引脚输出电平设为低电平,即设置为0。 -
if(PIND&0x01):判断D0引脚是否为高电平。 -
如果D0引脚为高电平,则执行以下代码:
a.
val+=1:将变量val加1。b.
if(val>2){val=2;}:如果val大于2,则将val设为2。 -
如果D0引脚为低电平,则执行以下代码:
a.
val=1:将变量val设为1。 -
重复步骤5-8,直到程序结束。
因为PD0接通电源,所以一开始PD0引脚为高电平,不满足if语句条件,执行else语句,将val设为1。接着进入while循环,根据val的值将D1或D2引脚的输出电平设为低电平,即D1引脚的输出电平为0。然后判断D0引脚的电平,由于PD0接通电源,所以D0引脚一直为高电平,不满足if语句条件,执行else语句,将val设为1。接着重复执行while循环,根据val的值将D1或D2引脚的输出电平设为低电平,即D2引脚的输出电平为0。然后再次判断D0引脚的电平,仍然不满足if语句条件,执行else语句,将val设为1。如此循环下去,一直将D1和D2引脚的输出电平交替设为低电平,PD0引脚一直为0。因此最终的PD0为0
原文地址: https://www.cveoy.top/t/topic/fGab 著作权归作者所有。请勿转载和采集!