標(biāo)題: 利用單片機(jī)的紅外傳感器制作一個(gè)感應(yīng)人穿梭的項(xiàng)目 [打印本頁(yè)]

作者: 狒狒277    時(shí)間: 2018-10-19 09:17
標(biāo)題: 利用單片機(jī)的紅外傳感器制作一個(gè)感應(yīng)人穿梭的項(xiàng)目
此部分為網(wǎng)上找到的代碼。。邏輯關(guān)系沒搞懂,希望有大神幫解釋

void key()
{
        static uchar key_new = 0,key_old = 0,key_value = 0;
        if(key_new == 0)                 //按鍵松開        ,key=0時(shí),按鍵是沒有按下去的
        {
                if((key_io & 0x07) == 0x07)
                        key_value ++;
                else
                        key_value = 0;
                if(key_value >= 5)         //按鍵松開松手檢測(cè)
                {
                        key_value = 0;
                        key_new = 1;        //按鍵松開后進(jìn)入等待按鍵狀態(tài)
                }
        }
        else
        {
                if((key_io & 0x07) != 0x07)         //按鍵按下
                        key_value ++;
                else
                        key_value =0;
                if(key_value >= 5)        //按鍵按下消抖
                {
                        key_value = 0;
                        key_new = 0;           //按鍵松開后進(jìn)入等待松開按鍵狀態(tài)
                }
        }
        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    時(shí)間: 2019-3-19 16:16
樓主解決了嗎?我也想問一下這個(gè)問題




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1