熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 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); //延時(shí)10毫秒消熱抖動 修改為 if (read == 0) delayms(5); //延時(shí) 5毫秒消熱抖動 |
| 有時(shí)候按兩次還是LED1亮,程序修改哪里才能避免這種情況發(fā)生 |
發(fā)表于 2024-11-20 21:16 定時(shí)器中斷方式計(jì)時(shí), delayms()軟件方式計(jì)時(shí), 各有各的用途。你未完全讀懂。 |
你都用定時(shí)器,還搞個(gè)delay 帶壞朋友![]() |
發(fā)表于 2024-11-19 16:52 delayms(10); //延時(shí)10毫秒消熱抖動 ------這行代碼無問題。有 書為依據(jù) |
| 你這個(gè)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)