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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

從計時器的使用入手理解單片機中斷的概念與編程

  [復制鏈接]
跳轉到指定樓層
樓主
ID:266429 發表于 2023-3-21 12:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前面既然已經講了定時器中計時器的使用,剛脆還是把定時器中斷給講一下。
先打個比方說吧,比如說,你是個超級奶爸,在家招呼讀書的孩子,將孩子送到學校去之后,你回家得買菜洗菜煮飯燒菜,你先把上午的菜給備好了,然后計劃11點鐘煮飯,11點半開始燒菜,你怎么做?象前面的計時器的使用一樣盯著時鐘看?也不是不行,但是那你這段時間別的事算是做不成了,下午的菜備不備?你心愛單片機玩不玩?想看的小說是不是讓你心癢癢?怎么辦?買個鬧鐘唄,然后上好鬧鐘唄,然后就去干你想干的別的事。
然后鬧鐘響了,你自然會起身,去做這個時候該做的重要的事件了。等等,該做什么?我怎么忘了?怎么辦?讓我想想,哦想起來了,煮飯。不行,不能這樣,這次能想起來,下回萬一想不起來怎么辦?好辦,在鬧鐘上貼個條子,上面寫上這個鬧鐘響后要做的事:你呀的快去煮飯。
嗯不錯,飯煮上了,接下來干什么呢?繼續做之前在做的事是個不錯的主意,哦你個賣糕滴,上次做的是什么事?做到哪一步了?我怎么又給忘了?這樣不行,下次在鬧鐘響的時候,得把手頭正在做的事記一下并放在一個固定的地方,煮完飯后回到這個地方找到記錄,真好,我真聰明,雖然我的記性非常感人。
以上事件中,最主要的是你手頭正在做的事,被鬧鐘打斷,因為你得立即去處理鬧鐘上寫的事。你把這個鬧鐘上寫的事處理完之后,還得回頭繼續做前面做的事。這些事,反正現有的教材稱之為中斷和中斷處理。
引起中斷的事件當然不止是鬧鐘,還有可能是另外的事,比如說,你玩單片機玩得正高興,突然你那位喊你去買菜,你也不得不放下自己的心愛,乖乖地買菜去先。買完菜之后,你不見得就能去繼續玩機器了,說不定你那位又給你一個中斷,讓你去拖地。地還沒拖完,孩子回來了找你要錢買玩具。真是中斷事件一件接一件,怎么處理?
你怎么處理我不管,咱們現在管管單片機怎么處理中斷,其實跟上面說的差不多,你把中斷后要做的事,寫在一段程序中(就如上面說的掛在鬧鐘上的那個小紙條)C語言中叫中斷函數。這個函數的開頭記錄現場(將一些數據推入指定的單元中如堆棧),末尾則寫上程序據此恢復現場。
為什么寫一段中斷函數就行了,而不是在主函數中寫一段中斷處理程序,也不用在主程序中寫調用函數?又是一個疑問點不是?因為單片機在芯片設計上是這樣設計的:程序在運行中,一旦被中斷,則程序的運行是直接跳轉到程序存儲器中的一個固定地址單元中,并把這個單元中的數據當作操作碼來執行。一個單片機是至少有幾個中斷的,如每個定時器都具備中斷功能。如何區分不同的中斷?靠的就是每個中斷分配有不同的跳轉固定地址,這個在教材中稱之為中斷的入口地址,具體地址分配表稱之為中斷向量表。定時器0的中斷入口地址為000BH,也就是說定時器0在發生溢出后,如果你打開了其中斷功能,則程序立即跳轉到程序存儲器中地址編號為000BH的單元處開始運行程序,用不著你專門寫調用指令。在51單片機的設計中,緊隨其后的一個中斷入口地址為0013H,所以,0013H這個單元中,你不能寫入其它程序,否則編譯會亂套,而在000BH0012H之間你也只能寫入定時器0的溢出中斷后要執行的程序,除非這個中斷在你的程序中永遠用不到。這個空間太少了,一般是不夠用的,所以,編程中都是只寫個跳轉命令,讓其跳轉到后面,這個跳轉幅度,一般要完全避開所有的中斷入口地址,以免影響中斷功能的使用。

評分

參與人數 1黑幣 +5 收起 理由
salam20 + 5 很給力!

查看全部評分

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

使用道具 舉報

沙發
ID:301191 發表于 2023-3-27 23:25 | 只看該作者
頂一下
回復

使用道具 舉報

板凳
ID:301191 發表于 2023-4-18 04:25 | 只看該作者
頂一下
回復

使用道具 舉報

地板
ID:155507 發表于 2023-4-18 07:54 | 只看該作者
單片機中斷是指在單片機執行主程序的過程中,由于某個事件的發生,導致單片機跳轉到固定的地址單元中執行中斷程序。中斷是一種異步事件,它可以打破程序的順序執行,使得單片機可以在主程序運行的同時,處理一些緊急或時間敏感的事件。

在單片機中,中斷通常是由外部設備觸發的,比如定時器、串口、IO口等。當這些設備產生信號時,單片機就會暫停正在執行的主程序,跳轉到中斷程序中執行相應的處理,處理完后再返回主程序繼續執行。

在編程中,首先需要設置中斷的優先級和中斷向量。中斷向量是指單片機內部預留的一段地址空間,用來存放中斷服務程序的入口地址。當中斷發生時,單片機會跳轉到相應的中斷向量地址,執行中斷服務程序。中斷優先級則用于決定多個中斷同時發生時,處理的先后順序。

接著,需要編寫中斷服務程序。中斷服務程序通常是一個短小精悍的程序,主要用于處理中斷事件,保存相關的寄存器狀態,執行相應的操作,并恢復現場。在程序開頭需要將一些寄存器狀態保存到堆棧中,以便在中斷服務程序執行完畢后,恢復這些寄存器的狀態,然后使用 RETI(Return from Interrupt)指令返回主程序。

在使用中斷時,還需要注意一些細節問題,比如中斷的開關、中斷的嵌套、中斷服務程序的執行時間等等。在編寫中斷程序時,需要考慮這些問題,以確保程序的正確性和可靠性。

總之,中斷是單片機編程中非常重要的一個概念,它可以使單片機具有更高的實時性和響應性,提高程序的靈活性和可靠性。掌握中斷的原理和編程方法,對于單片機編程人員來說是非常必要的。
回復

使用道具 舉報

5#
ID:291668 發表于 2023-4-18 08:49 | 只看該作者
講得很清楚了,感謝分享
回復

使用道具 舉報

6#
ID:689425 發表于 2023-5-4 09:30 | 只看該作者
不錯不錯,受益匪淺
回復

使用道具 舉報

7#
ID:641483 發表于 2023-5-11 10:51 | 只看該作者
樓主這樣介紹通俗易懂,像我這類小白就容易理解很多了,希望樓主出更多的好文章。
回復

使用道具 舉報

8#
ID:284491 發表于 2023-5-12 22:18 | 只看該作者
不錯不錯 理解生動
回復

使用道具 舉報

9#
ID:1057928 發表于 2023-11-2 15:20 | 只看該作者
很形象
回復

使用道具 舉報

10#
ID:1111542 發表于 2024-3-2 09:26 | 只看該作者
非常好的帖子,新人學習了,謝謝樓主!
回復

使用道具 舉報

11#
ID:1119741 發表于 2024-6-3 17:03 | 只看該作者
頂一下
回復

使用道具 舉報

12#
ID:406282 發表于 2024-7-17 10:37 | 只看該作者

頂一下三樓
回復

使用道具 舉報

13#
ID:1110944 發表于 2025-4-6 22:37 | 只看該作者

樓主這樣介紹通俗易懂,像我這類小白就容易理解很多了,希望樓主出更多的好文章。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产农村妇女精品一二区 | 日韩三级电影一区二区 | 欧美精品v国产精品v日韩精品 | 亚洲色图婷婷 | 男人的天堂中文字幕 | 国产欧美在线 | 天天插天天搞 | 欧美激情视频一区二区三区在线播放 | 天天玩天天干天天操 | 日屁网站| 一区二区在线 | 欧美精品一区二区三区四区 在线 | 激情五月婷婷综合 | 国产欧美久久一区二区三区 | 国产精品毛片一区二区三区 | 久草青青草 | 亚洲一区二区中文字幕 | 日韩免费网站 | 麻豆久久 | 日韩中文字幕在线播放 | 国产精品99久久久久久动医院 | 日韩一级一区 | 久久免费视频1 | 中文字幕成人av | 一区二区三区在线观看视频 | 黄网站涩免费蜜桃网站 | 97超碰人人草 | 日韩欧美中文字幕在线观看 | 久久99精品久久久久子伦 | 亚洲日日操 | 午夜影院网站 | 丝袜一区二区三区 | 国产69精品久久久久777 | 久久久www成人免费无遮挡大片 | 爱爱视频在线观看 | 一级黄色片网址 | 亚洲美女在线视频 | 狠狠婷婷综合久久久久久妖精 | 久久久久久国模大尺度人体 | 成人在线播放网址 | 色综合欧美 |