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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1450|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年男女免费视频网站 | 在线视频一区二区 | 久久久蜜桃 | 亚洲精品美女视频 | 久久久久国产一级毛片高清网站 | 欧美视频二区 | 一区二区在线不卡 | 一区二区三区四区国产 | 国产人免费人成免费视频 | 一区在线播放 | 成人毛片视频在线播放 | 亚洲成人播放器 | 在线观看国产精品一区二区 | 国产乱码一二三区精品 | 国产精品久久久久久一区二区三区 | 日韩在线日韩 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 亚洲精品日韩在线 | 成年人视频免费在线观看 | 久久精品国产一区 | 欧美在线天堂 | 欧美日韩在线一区二区 | 久久免费精品 | 97国产精品视频人人做人人爱 | 99reav| 国产在线a | 一区二区三区国产精品 | 久久一区二区视频 | 天天操夜夜骑 | 国产精品视频久久 | 日韩网站免费观看 | 国产ts人妖一区二区三区 | 久久精品99国产精品 | 一级免费在线视频 | 精品国产一区二区三区久久久四川 | 久久黄色精品视频 | 精品视频久久久久久 | 久久久美女 | 在线色| 一区二区精品视频 | 99pao成人国产永久免费视频 |