找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機(jī)識別 "單擊.雙擊.長按"-我寫的代碼相信你能讀懂

查看數(shù): 2472 | 評論數(shù): 12 | 收藏 7
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2024-11-17 12:22

正文摘要:

//51單片機(jī)識別 "單擊.雙擊.長按" 代碼 //作者:Kxuan163 //程序功能:檢測按鈕的按下彈起次數(shù),以識別"單擊.雙擊.長按" //MCU: STC89c52RC        晶振 11.0592MHZ //Pr ...

回復(fù)

ID:1110944 發(fā)表于 2025-4-2 01:10
程序功能:檢測按鈕的按下彈起次數(shù),以識別"單擊.雙擊.長按"。。學(xué)習(xí)了
ID:858964 發(fā)表于 2024-11-22 12:15
dj3365191 發(fā)表于 2024-11-21 17:22
有時候按兩次還是LED1亮,程序修改哪里才能避免這種情況發(fā)生

你是用proteus仿真嗎?  晶振是否 11.0592MHZ?
我剛剛為解答你的問題,試修改代碼,再次仿真成功。
原代碼   if (read == 0) delayms(10);  //延時10毫秒消熱抖動
修改為   if (read == 0) delayms(5);    //延時 5毫秒消熱抖動
ID:143767 發(fā)表于 2024-11-21 17:22
有時候按兩次還是LED1亮,程序修改哪里才能避免這種情況發(fā)生
ID:858964 發(fā)表于 2024-11-21 11:59
發(fā)表于 2024-11-20 21:16
你都用定時器,還搞個delay

定時器中斷方式計(jì)時, delayms()軟件方式計(jì)時,  各有各的用途。你未完全讀懂。
ID:185461 發(fā)表于 2024-11-20 21:16
你都用定時器,還搞個delay 帶壞朋友
ID:858964 發(fā)表于 2024-11-20 10:49
發(fā)表于 2024-11-19 16:52
你這個delay10ms不要這樣寫,你1ms近義詞中斷,20ms掃描一次就已經(jīng)消抖了,

delayms(10); //延時10毫秒消熱抖動   ------這行代碼無問題。有 書為依據(jù)
ID:1123636 發(fā)表于 2024-11-19 16:52
你這個delay10ms不要這樣寫,你1ms近義詞中斷,20ms掃描一次就已經(jīng)消抖了,
ID:858964 發(fā)表于 2024-11-19 11:39
STC莊偉 發(fā)表于 2024-11-19 08:51
你用AI8051U的 支持USB下載  兼容89C52的

謝謝莊偉先生建議,我亦正有此意。
ID:961114 發(fā)表于 2024-11-19 08:51
你用AI8051U的 支持USB下載  兼容89C52的  
ID:353115 發(fā)表于 2024-11-18 11:45
ID:858964 發(fā)表于 2024-11-17 23:50
lkc8210 發(fā)表于 2024-11-17 22:13
看到while+delayms就知道不用看懂也可以

謝謝跟帖!
我嘗試過用此算法,將代碼略加修改即可識別三擊...
ID:161164 發(fā)表于 2024-11-17 22:13
看到while+delayms就知道不用看懂也可以

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

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

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