标题: 利用单片机的红外传感器制作一个感应人穿梭的项目 [打印本页]

作者: 狒狒277    时间: 2018-10-19 09:17
标题: 利用单片机的红外传感器制作一个感应人穿梭的项目
此部分为网上找到的代码。。逻辑关系没搞懂,希望有大神帮解释

void key()
{
        static uchar key_new = 0,key_old = 0,key_value = 0;
        if(key_new == 0)                 //按键松开        ,key=0时,按键是没有按下去的
        {
                if((key_io & 0x07) == 0x07)
                        key_value ++;
                else
                        key_value = 0;
                if(key_value >= 5)         //按键松开松手检测
                {
                        key_value = 0;
                        key_new = 1;        //按键松开后进入等待按键状态
                }
        }
        else
        {
                if((key_io & 0x07) != 0x07)         //按键按下
                        key_value ++;
                else
                        key_value =0;
                if(key_value >= 5)        //按键按下消抖
                {
                        key_value = 0;
                        key_new = 0;           //按键松开后进入等待松开按键状态
                }
        }
        key_can = 20;
        if((key_new == 0) && (key_old == 1))
        {
                switch(key_io & 0x07)
                {
                        case 0x06: key_can = 1; break;          //得到按键值
                        case 0x05: key_can = 2; break;          //得到按键值
                        case 0x03: key_can = 3; break;          //得到按键值
                }
        }                        
        key_old = key_new;         
}



作者: nullpoint    时间: 2019-3-19 16:16
楼主解决了吗?我也想问一下这个问题




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1