久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1550|回復: 13
打印 上一主題 下一主題
收起左側

單片機計時系統程序調試,有一些細節我不太會,希望大家能幫忙

[復制鏈接]
跳轉到指定樓層
樓主
這是我的要求
這是我畫的仿真圖 P1.3控制數碼管(用的是定時器中斷判斷按鍵是否按下),P3.2控制LED流水燈(用的是觸發外部中斷的方法)
我現在的代碼可以讓流水燈流4次,數碼管能夠倒計時,并且倒計時結束后可以停在數字“4”上,但是我發現倒計時的時間誤差有點大,當我P1.3的按鍵按下的時候發現從4到3的時間有點長,這個4要等挺久才能達到3,后面才比較正常的倒計時,我感到很迷惑,還有的話,就是后續的要求,我實在是想不出有什么比較好的方法(最好能不要用到軟件延時),希望大家能給我這個萌新一點思路,或者我的代碼有什么需要改進的地方或者其他地方也可以提出來,感謝大家的幫助
以下是我的代碼圖
2.rar (70.88 KB, 下載次數: 5)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:966442 發表于 2021-12-12 20:32 | 只看該作者
這個難點就在于,這個定時器中斷里有一個while循環,這個循環是為了保證數碼管在倒計時結束之后能夠保持住數字“4”,但是也就是因為這個while,導致我再一次按下按鍵時候,按鍵無法反映,我不知道該怎么辦
回復

使用道具 舉報

板凳
ID:624769 發表于 2021-12-12 22:38 | 只看該作者
1)  既然你知道問題在 while(1)  上面,為什么你還要用 while(1)?
2)  你把中斷當什么了? 我還真沒見過主程序比中斷還要簡潔的代碼。
3)  我實在看不出來 你定時器里面 while(1)的必要, 你既然判斷了 >4  那么你直接關了 ET0 不就好了 有必要 去while(1) 死在那里么?
回復

使用道具 舉報

地板
ID:966442 發表于 2021-12-13 13:27 | 只看該作者
188610329 發表于 2021-12-12 22:38
1)  既然你知道問題在 while(1)  上面,為什么你還要用 while(1)?
2)  你把中斷當什么了? 我還真沒見過主 ...

這里的定時器中斷我是來處理流水燈和數碼管的倒計時可能代碼有點多,ET0 = 0,確實可讓數碼管停在數字4上,但是后續我如果想再按下去數碼管重新倒計時該咋辦呢
回復

使用道具 舉報

5#
ID:843335 發表于 2021-12-13 15:47 | 只看該作者
你想用while停在這也不是非得用while(1),你可以整個while(key2==0){...};這樣再次按鍵的時候就跳出去了,但是這樣你得在前面做一個按鍵的松手檢測
回復

使用道具 舉報

6#
ID:966442 發表于 2021-12-13 18:06 | 只看該作者
wuyui 發表于 2021-12-13 15:47
你想用while停在這也不是非得用while(1),你可以整個while(key2==0){...};這樣再次按鍵的時候就跳出去了, ...

這是我想到的,起碼可以讓數碼管在倒計時結束能保持數字4的同時,也能響應我的按鍵讓數碼管重新倒計時,就是感覺這個時間有點慢慢的
回復

使用道具 舉報

7#
ID:966442 發表于 2021-12-13 18:09 | 只看該作者
電子浪人 發表于 2021-12-13 13:27
這里的定時器中斷我是來處理流水燈和數碼管的倒計時可能代碼有點多,ET0 = 0,確實可讓數碼管停在數字4上 ...

這是我想出來的方法,不用關閉ET0,就依靠標志位去切換,基本能滿足要求,就是感覺有點慢啊,確實如你所說我在中斷里的代碼過于臃腫,主程序過于簡潔,我感覺自己就是一定要想出跟別人不太一樣的方法去應對一道題,可能是把這道題想的過于難了
回復

使用道具 舉報

8#
ID:624769 發表于 2021-12-13 19:18 | 只看該作者
電子浪人 發表于 2021-12-13 13:27
這里的定時器中斷我是來處理流水燈和數碼管的倒計時可能代碼有點多,ET0 = 0,確實可讓數碼管停在數字4上 ...

后續想重新倒計時的時候 再 ET0 = 1 啊
回復

使用道具 舉報

9#
ID:966442 發表于 2021-12-13 19:56 | 只看該作者
188610329 發表于 2021-12-13 19:18
后續想重新倒計時的時候 再 ET0 = 1 啊

這是我在你說之前,想到的方法,不用改變ET0也可以滿足要求,就是感覺有點慢慢的,我的代碼有什么需要改進的地方嗎
回復

使用道具 舉報

10#
ID:624769 發表于 2021-12-13 23:11 | 只看該作者
需要改進的就是, 中斷里面只做兩件事, 一,就是計數 二,就是置位標志。 其他的事情統統在主程序里面通過if(cnt2==1)  也好, 通過 if(flag2)也好進行判斷后,選擇性的執行。
回復

使用道具 舉報

11#
ID:161164 發表于 2021-12-14 13:15 | 只看該作者
1.審題要小心,評分標準4的要求是Led和數碼管都要用中斷,你現在只用了一個中斷
2.你這系統對按鍵中斷的要求不高,可以不用消抖
3.要求沒寫是正計時還是倒記時,但寫了要保持N,所以正計時更方便寫代碼
4.如果你"想出跟別人不太一樣的方法"來達到題目要求可以讓代碼更簡潔易讀,歡迎使用,但如果讓代碼更累贅難懂,就是畫蛇添足





回復

使用道具 舉報

12#
ID:966442 發表于 2021-12-14 18:58 | 只看該作者
lkc8210 發表于 2021-12-14 13:15
1.審題要小心,評分標準4的要求是Led和數碼管都要用中斷,你現在只用了一個中斷
2.你這系統對按鍵中斷的要 ...

我一個按鍵是外部中斷控制LED,一個按鍵是定時器中斷控制數碼管,怎么還會是只有一個呢
回復

使用道具 舉報

13#
ID:966442 發表于 2021-12-14 19:51 | 只看該作者
電子浪人 發表于 2021-12-14 18:58
我一個按鍵是外部中斷控制LED,一個按鍵是定時器中斷控制數碼管,怎么還會是只有一個呢

但是你的代碼給我很大的啟發,非常感謝
回復

使用道具 舉報

14#
ID:994053 發表于 2021-12-24 14:03 | 只看該作者
看著評論我也收獲不少
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美性生活视频 | 欧美日韩久久精品 | 国产精品欧美一区二区三区 | 亚洲国产欧美精品 | 小早川怜子xxxxaⅴ在线 | 超碰97人人人人人蜜桃 | 高清免费在线 | 在线一区 | 欧美一区二区视频 | 国产成人免费网站 | 国产精品日韩欧美一区二区三区 | 自拍偷拍第一页 | 久草在线中文888 | 在线色网 | 在线观看av网站 | 成人av免费 | 免费天天干 | 九九热在线视频免费观看 | 午夜小视频免费观看 | 日韩久久久久久 | 亚洲国产黄色av | 麻豆av网| 国产一级一片免费播放 | 成人欧美一区二区三区在线播放 | 欧美性网站 | 日韩精品一区二区在线 | 亚洲成人精品在线 | 蜜桃日韩| 麻豆精品一区二区三区在线观看 | 国产在线视频一区二区 | 国产亚洲精品美女久久久久久久久久 | 亚洲国产成人精品女人久久久 | 成人免费看片又大又黄 | 草久久| 日本电影一区二区 | 黄色片视频免费 | 国产成人99久久亚洲综合精品 | 欧美日韩在线综合 | 久久久国产一区二区三区四区小说 | 在线亚洲一区 | 91视频网址|