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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9696|回復(fù): 3
收起左側(cè)

關(guān)于單片機(jī)一個(gè)按鍵實(shí)現(xiàn)多種功能

[復(fù)制鏈接]
ID:536280 發(fā)表于 2020-6-15 20:09 | 顯示全部樓層 |閱讀模式
循環(huán)計(jì)數(shù)法,標(biāo)志位法,都是比較簡(jiǎn)單的按鍵多次按下識(shí)別的方法也是常用方法


這個(gè)是計(jì)數(shù)法例子,先通過(guò)管腳電瓶高低識(shí)別按鍵(注意延遲)是否按下,按鍵按下計(jì)數(shù),通過(guò)型參計(jì)數(shù),也可以用switch條件語(yǔ)句控制。
void main()//這里進(jìn)入主函數(shù){
while(1)//一直循環(huán)
{
if(KEY==0)//如果有按鍵按下
{
num++;
}
if(num==1&&key_bit==0) {
realy=1;
key_bit=1;
}
if(num==2) {
realy=0;
key_bit=0;
num=0;
}
}

回復(fù)

使用道具 舉報(bào)

ID:85865 發(fā)表于 2020-6-15 22:03 | 顯示全部樓層
這樣不會(huì)有誤觸發(fā)的情況?
回復(fù)

使用道具 舉報(bào)

ID:282538 發(fā)表于 2020-6-16 08:27 | 顯示全部樓層
我的在定時(shí)器(1ms)中寫(xiě)的按鍵,當(dāng)按鍵下計(jì)時(shí),松手的時(shí)候檢測(cè)計(jì)時(shí)值>=10ms表示有效按鍵,如果增加長(zhǎng)按當(dāng)執(zhí)行長(zhǎng)按時(shí)松手清空短按檢測(cè)。
回復(fù)

使用道具 舉報(bào)

ID:536280 發(fā)表于 2020-6-16 19:15 | 顯示全部樓層
252622979 發(fā)表于 2020-6-15 22:03
這樣不會(huì)有誤觸發(fā)的情況?

我只是提供一個(gè)思路,這個(gè)肯定會(huì)誤觸的,加個(gè)延時(shí)消除抖動(dòng)在加個(gè)確定按下的判斷語(yǔ)句就可以了,也可以加個(gè)while變成識(shí)別長(zhǎng)按,(單片機(jī)有定時(shí)器中斷,c語(yǔ)言本身也有中斷)靈活應(yīng)用可以少寫(xiě)代碼。優(yōu)化


像這樣
        flag=1;                                                          //緊急狀態(tài)標(biāo)志位置1,進(jìn)入緊急通行狀態(tài)
                        save=P0;                                                  //保存燈的狀態(tài)
                        P0=0x84;                                                  //全部亮紅燈
                        while(key_stop==0);                                  //按鍵釋放,當(dāng)按鍵一直按下的時(shí)候,程序就會(huì)一直執(zhí)行這里,直到按鍵按下
                        while(flag==1)                                          //如果是緊急狀態(tài)就一直執(zhí)行下面的程序
                        {
                                if(key_stop==0)                                  //在緊急狀態(tài)時(shí)判斷按鍵是否按下
                                {
                                        delay(50);                                  //延時(shí)去抖
                                        if(key_stop==0)                          //再次判斷按鍵是否按下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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