找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機計時系統(tǒng)程序調(diào)試,有一些細節(jié)我不太會,希望大家能幫忙

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

正文摘要:

這是我的要求

回復(fù)

ID:994053 發(fā)表于 2021-12-24 14:03
看著評論我也收獲不少
ID:966442 發(fā)表于 2021-12-14 19:51
電子浪人 發(fā)表于 2021-12-14 18:58
我一個按鍵是外部中斷控制LED,一個按鍵是定時器中斷控制數(shù)碼管,怎么還會是只有一個呢

但是你的代碼給我很大的啟發(fā),非常感謝
ID:966442 發(fā)表于 2021-12-14 18:58
lkc8210 發(fā)表于 2021-12-14 13:15
1.審題要小心,評分標(biāo)準(zhǔn)4的要求是Led和數(shù)碼管都要用中斷,你現(xiàn)在只用了一個中斷
2.你這系統(tǒng)對按鍵中斷的要 ...

我一個按鍵是外部中斷控制LED,一個按鍵是定時器中斷控制數(shù)碼管,怎么還會是只有一個呢
ID:161164 發(fā)表于 2021-12-14 13:15
1.審題要小心,評分標(biāo)準(zhǔn)4的要求是Led和數(shù)碼管都要用中斷,你現(xiàn)在只用了一個中斷
2.你這系統(tǒng)對按鍵中斷的要求不高,可以不用消抖
3.要求沒寫是正計時還是倒記時,但寫了要保持N,所以正計時更方便寫代碼
4.如果你"想出跟別人不太一樣的方法"來達到題目要求可以讓代碼更簡潔易讀,歡迎使用,但如果讓代碼更累贅難懂,就是畫蛇添足





ID:624769 發(fā)表于 2021-12-13 23:11
需要改進的就是, 中斷里面只做兩件事, 一,就是計數(shù) 二,就是置位標(biāo)志。 其他的事情統(tǒng)統(tǒng)在主程序里面通過if(cnt2==1)  也好, 通過 if(flag2)也好進行判斷后,選擇性的執(zhí)行。
ID:624769 發(fā)表于 2021-12-13 19:18
電子浪人 發(fā)表于 2021-12-13 13:27
這里的定時器中斷我是來處理流水燈和數(shù)碼管的倒計時可能代碼有點多,ET0 = 0,確實可讓數(shù)碼管停在數(shù)字4上 ...

后續(xù)想重新倒計時的時候 再 ET0 = 1 啊
ID:843335 發(fā)表于 2021-12-13 15:47
你想用while停在這也不是非得用while(1),你可以整個while(key2==0){...};這樣再次按鍵的時候就跳出去了,但是這樣你得在前面做一個按鍵的松手檢測
ID:966442 發(fā)表于 2021-12-13 13:27
188610329 發(fā)表于 2021-12-12 22:38
1)  既然你知道問題在 while(1)  上面,為什么你還要用 while(1)?
2)  你把中斷當(dāng)什么了? 我還真沒見過主 ...

這里的定時器中斷我是來處理流水燈和數(shù)碼管的倒計時可能代碼有點多,ET0 = 0,確實可讓數(shù)碼管停在數(shù)字4上,但是后續(xù)我如果想再按下去數(shù)碼管重新倒計時該咋辦呢
ID:624769 發(fā)表于 2021-12-12 22:38
1)  既然你知道問題在 while(1)  上面,為什么你還要用 while(1)?
2)  你把中斷當(dāng)什么了? 我還真沒見過主程序比中斷還要簡潔的代碼。
3)  我實在看不出來 你定時器里面 while(1)的必要, 你既然判斷了 >4  那么你直接關(guān)了 ET0 不就好了 有必要 去while(1) 死在那里么?
ID:966442 發(fā)表于 2021-12-12 20:32
這個難點就在于,這個定時器中斷里有一個while循環(huán),這個循環(huán)是為了保證數(shù)碼管在倒計時結(jié)束之后能夠保持住數(shù)字“4”,但是也就是因為這個while,導(dǎo)致我再一次按下按鍵時候,按鍵無法反映,我不知道該怎么辦

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

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

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