单片机中按键问题

2025-01-06 16:06:55
推荐回答(3个)
回答1:

上面用的是查询法,当检测到P2.1上不为低电平时,执行while循环,在循环中检测当P2.1上不为低电平时再执行循环中的语句.
当检测到P2.1上为低电平时,不执行while循环

回答2:

if(!P2.1)
{
P1.0=~P1.0;//直接取反就可以
while(!P2.1);
}

回答3:

可以用查询法来判断:
1、定义P2.0-P2.3端口为输入口,判断按键输入,可以设定高电平为按键输入,低电平则无;
2、定义P1.0-P1.3端口为输出口
若P2.0=1,则P1.0输出高电平,灯亮(电路中设定高电平灯亮)
若P2.0=0,则P1.0输出低电平,灯灭

其余三个端口类似。

程序:
if(!P2.1)检测到P2.1为低电平时,!P2.1=1,执行while循环;
在while循环再此判断P2.1为低电平(防止因抖动产生误操作)时,P1.0输出高电平