找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 4889|回復(fù): 1
收起左側(cè)

51單片機(jī),按鍵控制LED延時(shí)方法

[復(fù)制鏈接]
ID:51142 發(fā)表于 2013-10-31 15:43 | 顯示全部樓層 |閱讀模式
我想讓2個(gè)按鍵,控制一個(gè)燈,程序要求:按鍵1按下,(是一直按下,不松手的),讓LED點(diǎn)亮,延時(shí)3秒后在熄滅。按鍵2也是這樣的功能。
下面這個(gè)程序,按鍵要是不松開,led1始終為低電平(0),程序就一直停在那,后面的程序也不會(huì)繼續(xù)執(zhí)行,
                if(K1==0)          //按鍵1 按下            
                  {
                    delayms (10);          //按鍵消抖
                     if(K1==0)         // 確認(rèn)有按下                 
                     {                                          
                              led1=0;
                        delayms (1000);
                        led1=1;
                        }                         
            while(!K1);             //按鍵釋放
               

在網(wǎng)上有查些資料,用標(biāo)志位。但介紹的都是消抖,按鍵松手檢測(cè)。沒有介紹按鍵是一直按下,不松開的。望高手指點(diǎn)。
回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2013-11-1 08:01 | 顯示全部樓層
延時(shí)使用定時(shí)器中斷可以解決。
比如定時(shí)器設(shè)置1000us溢出,中斷內(nèi)檢測(cè)2個(gè)按鍵。

你的按鍵的時(shí)間準(zhǔn)確度要求不高的話,可以大于此值,10ms(相當(dāng)于按鍵去抖)沒問題。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表