欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC89C52單片機四個按鍵定時器消抖 求思路 [打印本頁]

作者: 許許許    時間: 2020-4-26 19:41
標題: STC89C52單片機四個按鍵定時器消抖 求思路
請問四個按鍵定時器消抖如何實現,功能大概就是KEY1選擇設置,KEY2增加,KEY3減少,KEY4運行。查了資料都是單個按鍵消抖,請各位大神指導
作者: 許許許    時間: 2020-4-26 21:05
void t0() interrupt 1 //1ms 用于按鍵去抖動。 { TH0=(65536-1000)/256; TL0=(65536-1000)%256; ms++; if(key==0)key_num++; if(ms==15) //15秒刷新一次 { if(key_num>10) //15秒鐘如果低電平持續時間大于10秒就認為按鍵按下,而不是抖動 key_statue=1; //按鍵標識位置1 ms=0; key_num=0; } }
作者: 許許許    時間: 2020-4-26 21:06
一個按鍵原理懂,但是四個按鍵如何處理啊,初學者,請指導
作者: dzbj    時間: 2020-4-26 22:28
簡單的辦法就是和1個按鍵一樣 都單獨防抖 一般防抖的時間也就15~30ms 不會影響其它按鍵
作者: 許許許    時間: 2020-4-26 22:47
dzbj 發表于 2020-4-26 22:28
簡單的辦法就是和1個按鍵一樣 都單獨防抖 一般防抖的時間也就15~30ms 不會影響其它按鍵

就是不想把程序搞得太長復雜,想問問有沒有簡潔一點的寫法
作者: liuyanchuan    時間: 2020-4-26 22:54
可以為定時中斷設置一個按鍵識別碼,在某一個鍵按下后,先設置該鍵的識別碼,之后啟動定時器,待定時時間到產生中斷后,可以根據不同的按鍵識別碼轉向不同的按鍵處理程序。
作者: xqleft    時間: 2020-4-27 00:30
兄弟  你想一個子程序把所有的按鍵都帶進去哦?
作者: wulin    時間: 2020-4-27 07:07
按鍵任務在主函數中處理
void t0() interrupt 1 //1ms 用于按鍵去抖動。
{
        static unsigned char count=0;        //計數變量                       
        static bit key_sign=0;                        //按鍵自鎖標志
        unsigned char temp;                                //臨時變量

        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;

        temp=P1&0x0f;//P1.0~P1.3四個按鍵
        if(temp!=0x0f)
        {
                if(++count>=15 && key_sign==0) //15毫秒刷新一次
                {
                        key_sign=1;//按鍵自鎖,防止重復響應
                        switch(temp)
                        {
                                case 0x0e: key_statue=1; break;//輸出鍵值
                                case 0x0d: key_statue=2; break;
                                case 0x0b: key_statue=3; break;
                                case 0x07: key_statue=4; break;
                        }
                }
        }
        else
        {
                key_sign=0;
                count=0;
        }
}




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