熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時間: 2024-11-17 12:22
正文摘要://51單片機(jī)識別 "單擊.雙擊.長按" 代碼 //作者:Kxuan163 //程序功能:檢測按鈕的按下彈起次數(shù),以識別"單擊.雙擊.長按" //MCU: STC89c52RC 晶振 11.0592MHZ //Pr ... |
程序功能:檢測按鈕的按下彈起次數(shù),以識別"單擊.雙擊.長按"。。學(xué)習(xí)了 |
dj3365191 發(fā)表于 2024-11-21 17:22 你是用proteus仿真嗎? 晶振是否 11.0592MHZ? 我剛剛為解答你的問題,試修改代碼,再次仿真成功。 原代碼 if (read == 0) delayms(10); //延時10毫秒消熱抖動 修改為 if (read == 0) delayms(5); //延時 5毫秒消熱抖動 |
有時候按兩次還是LED1亮,程序修改哪里才能避免這種情況發(fā)生 |
發(fā)表于 2024-11-20 21:16 定時器中斷方式計(jì)時, delayms()軟件方式計(jì)時, 各有各的用途。你未完全讀懂。 |
你都用定時器,還搞個delay 帶壞朋友![]() |
發(fā)表于 2024-11-19 16:52 delayms(10); //延時10毫秒消熱抖動 ------這行代碼無問題。有 書為依據(jù) |
你這個delay10ms不要這樣寫,你1ms近義詞中斷,20ms掃描一次就已經(jīng)消抖了, |
STC莊偉 發(fā)表于 2024-11-19 08:51 謝謝莊偉先生建議,我亦正有此意。 |
你用AI8051U的 支持USB下載 兼容89C52的 |
lkc8210 發(fā)表于 2024-11-17 22:13 謝謝跟帖! 我嘗試過用此算法,將代碼略加修改即可識別三擊... |
看到while+delayms就知道不用看懂也可以 |
Powered by 單片機(jī)教程網(wǎng)