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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4039|回復: 5
收起左側

單片機按鍵長短按識別程序的問題

[復制鏈接]
ID:91521 發(fā)表于 2018-11-17 14:49 | 顯示全部樓層 |閱讀模式
以下是一段識別按鍵長短按得單片機程序段,可是放到程序里卻不能執(zhí)行,請各位高手指導一下問題出在哪里?
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;
                }
        }
}   
回復

使用道具 舉報

ID:428224 發(fā)表于 2018-11-17 15:32 | 顯示全部樓層
可以改一下延時
回復

使用道具 舉報

ID:428311 發(fā)表于 2018-11-17 17:56 | 顯示全部樓層
可能for循環(huán)語句中當出現(xiàn)for循環(huán)過程中松開按鍵,沒有及時跳出循環(huán),用break跳出當前循環(huán),有問題估計也就在循環(huán)體內
回復

使用道具 舉報

ID:164602 發(fā)表于 2018-11-18 09:08 | 顯示全部樓層
你這個程序的關鍵,就是for的循環(huán)時間,你確定你的長按時間是多少嗎?如果你的長按時間沒到,也就不會有你預計的結果了。
我是這樣做的:
if (K1==0)
                {
                        n=0;
                        while(~Agoto)
                        {
                                n++;
                                Delay10ms(1);
                                if (n>200)
                                {
                                        break;
                                }
                        }
                        if (n>30)
                        {
                                LED=0xf0;
                        }
                        else
                        {
                                LED=0x0f;
                        }
                }
我這個是已經(jīng)實驗成功了的。
回復

使用道具 舉報

ID:111634 發(fā)表于 2018-11-18 15:44 | 顯示全部樓層
本帖最后由 zl2168 于 2018-11-19 16:12 編輯

給你介紹幾個按鍵長短按參考案例
實例5  4種不同方式鍵控信號燈

Proteus仿真一下,確認有效。 實例5 不同方式鍵控燈.rar (31.72 KB, 下載次數(shù): 17) 4種不同方式鍵控信號燈.jpg
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1.書中電路和程序設計有詳細說明,程序語句條條有注解。
回復

使用道具 舉報

ID:405193 發(fā)表于 2018-11-18 17:26 | 顯示全部樓層
我也剛學單片機不久,是不是for循環(huán)語句應該這樣寫,for(keytime = 0; ((key == KEY_DOWN) && keytime < LONG_KEY); keytime++)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表