单片机编程,switch语句

void main()
{
uchar temp;
temp=P3;

switch(temp)
{
case 0xfe:
K=1;
operation();
BEEP=0;
break;
case 0xfd:
K=2;
operation();
BEEP=0;
break;
case 0xfb:
K=3;
operation();
BEEP=0;
break;
case 0xf7:
K=4;
operation();
BEEP=0;
break;
}

复位之后按才有用,怎么样写才能不用复位,可以第二次按键进入switch语句,用了while和for貌似不行

第1个回答  推荐于2017-07-12
main()
{
uchar tmp = 0xff;
where(1)
{
tmp = 0xff;
while( tmp == 0xff) tmp = P3;
switch(tmp)
{

.......
}
}
}本回答被网友采纳
第2个回答  2013-09-10
while( 1 )
{
temp=P3;
switch(temp)
{
case 0xfe:
K=1;
operation();
BEEP=0;
break;
case 0xfd:
K=2;
operation();
BEEP=0;
break;
case 0xfb:
K=3;
operation();
BEEP=0;
break;
case 0xf7:
K=4;
operation();
BEEP=0;
break;
}
}追问

这样之后不行,按键了好像不能给temp赋值了

追答

在 temp=P3; 前面 加个 P3 = 0xFF; 然后再 temp=P3;之后加个10ms延时试一下

本回答被网友采纳
第3个回答  2017-07-10

uchar temp;
temp=P3;
中间加一句
P3=0xFF;试试
还有,你这什么单片机啊,为什么要用P3口啊。。
第4个回答  2013-09-10
sfr temp P3;
相似回答