標(biāo)題: 單片機(jī)按鍵長(zhǎng)短按識(shí)別程序的問(wèn)題 [打印本頁(yè)]

作者: daiya    時(shí)間: 2018-11-17 14:49
標(biāo)題: 單片機(jī)按鍵長(zhǎng)短按識(shí)別程序的問(wèn)題
以下是一段識(shí)別按鍵長(zhǎng)短按得單片機(jī)程序段,可是放到程序里卻不能執(zhí)行,請(qǐng)各位高手指導(dǎo)一下問(wèn)題出在哪里?
void key_scan(void)
{
        if(key == KEY_DOWN)
        {
                delay_ms(30);
                for(keytime = 0; ((key == KEY_DOWN) && (keytime < LONG_KEY)); keytime++)
                {
                        delay_ms(50);
                }
                if(keytime >= LONG_KEY)
                {

                        led1 = LED_ON;
                        led2 = LED_OFF;               
                }                        
                if((keytime > 0) && (keytime < LONG_KEY))
                {
                    
                        led1 = LED_OFF;
                        led2 = LED_ON;
                }
        }
}   

作者: 紅楓葉    時(shí)間: 2018-11-17 15:32
可以改一下延時(shí)
作者: xiong2013    時(shí)間: 2018-11-17 17:56
可能for循環(huán)語(yǔ)句中當(dāng)出現(xiàn)for循環(huán)過(guò)程中松開(kāi)按鍵,沒(méi)有及時(shí)跳出循環(huán),用break跳出當(dāng)前循環(huán),有問(wèn)題估計(jì)也就在循環(huán)體內(nèi)
作者: HC6800-ES-V2.0    時(shí)間: 2018-11-18 09:08
你這個(gè)程序的關(guān)鍵,就是for的循環(huán)時(shí)間,你確定你的長(zhǎng)按時(shí)間是多少嗎?如果你的長(zhǎng)按時(shí)間沒(méi)到,也就不會(huì)有你預(yù)計(jì)的結(jié)果了。
我是這樣做的:
if (K1==0)
                {
                        n=0;
                        while(~Agoto)
                        {
                                n++;
                                Delay10ms(1);
                                if (n>200)
                                {
                                        break;
                                }
                        }
                        if (n>30)
                        {
                                LED=0xf0;
                        }
                        else
                        {
                                LED=0x0f;
                        }
                }
我這個(gè)是已經(jīng)實(shí)驗(yàn)成功了的。
作者: zl2168    時(shí)間: 2018-11-18 15:44
本帖最后由 zl2168 于 2018-11-19 16:12 編輯

給你介紹幾個(gè)按鍵長(zhǎng)短按參考案例
實(shí)例5  4種不同方式鍵控信號(hào)燈

Proteus仿真一下,確認(rèn)有效。 實(shí)例5 不同方式鍵控?zé)?rar (31.72 KB, 下載次數(shù): 17)
以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1.書(shū)中電路和程序設(shè)計(jì)有詳細(xì)說(shuō)明,程序語(yǔ)句條條有注解。

作者: yong761228    時(shí)間: 2018-11-18 17:26
我也剛學(xué)單片機(jī)不久,是不是for循環(huán)語(yǔ)句應(yīng)該這樣寫(xiě),for(keytime = 0; ((key == KEY_DOWN) && keytime < LONG_KEY); keytime++)




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