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

標(biāo)題: STC89C52單片機(jī)四個(gè)按鍵定時(shí)器消抖 求思路 [打印本頁(yè)]

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

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

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

        temp=P1&0x0f;//P1.0~P1.3四個(gè)按鍵
        if(temp!=0x0f)
        {
                if(++count>=15 && key_sign==0) //15毫秒刷新一次
                {
                        key_sign=1;//按鍵自鎖,防止重復(fù)響應(yīng)
                        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://www.raoushi.com/bbs/) Powered by Discuz! X3.1