找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4907|回復: 1
收起左側

51單片機,按鍵控制LED延時方法

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

在網上有查些資料,用標志位。但介紹的都是消抖,按鍵松手檢測。沒有介紹按鍵是一直按下,不松開的。望高手指點。
回復

使用道具 舉報

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

你的按鍵的時間準確度要求不高的話,可以大于此值,10ms(相當于按鍵去抖)沒問題。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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