/********************独立按键程序*****************/ uchar key_can; //按键值 void key() //独立按键程序 { static uchar key_new; key_can = 20; //按键值还原 P3 |= 0xf0; if((P3 & 0xf0) != 0xf0) //按键按下 { delay_1ms(1); //按键消抖动 if(((P3 & 0xf0) != 0xf0) && (key_new == 1)) { //确认是按键按下 key_new = 0; switch(P3 & 0xf0) { case 0xd0: key_can = 3; break; //得到按键值 case 0xb0: key_can = 2; break; //得到按键值 case 0x70: key_can = 1; break; //得到按键值 } } } else { key_new = 1; } } |
zhanghyg 发表于 2018-5-17 08:26
key_new默认是0,所以if(((P3 & 0xf0) != 0xf0) && (key_new == 1))这步判断永远都是不成立的,也就不会走 ...
fzhlpp 发表于 2018-5-17 13:04
你没看仔细,按键没按下时key_new的值一直为1
else
{
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |