<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機控制系統中不可缺少的“中斷”基礎知識

單片機控制系統中不可缺少的“中斷”基礎知識

作者: 時(shí)間:2017-10-14 來(lái)源:網(wǎng)絡(luò ) 收藏

  本連載講解作為嵌入式系統開(kāi)發(fā)技術(shù)人員所必需具備的單片機的基礎知識。繼《《嵌入式編程之單片機的基本構成、工作原理》、《嵌入式編程之單片機的外圍功能電路》、《單片機的編程語(yǔ)言和開(kāi)發(fā)環(huán)境》《單片機外圍功能電路控制的基礎知識》后,最后一期將為大家介紹在中不可缺少的處理方式--“中斷”的基礎知識。

本文引用地址:http://dyxdggzs.com/article/201710/366326.htm

  “中斷”與“輪詢(xún)”

  本期是連載的最后一期。本期我們將說(shuō)明在單片機編程過(guò)程中一定會(huì )遇到的、也是單片機控制中不可缺少的一種處理方式---“中斷”。

  “中斷”處理并非所特有的現象,在我們的日常生活中“中斷”的例子也隨處可見(jiàn)。 讓我們來(lái)看看身邊的例子吧。比如盡管您知道今天有快遞送到,但卻不知道快遞送來(lái)的具體時(shí)間,在這種情況下,也許您會(huì )選擇坐在客廳里邊看書(shū),邊等快遞送來(lái)。在您看書(shū)其間,門(mén)鈴響的時(shí)候就表明快遞到了(有事件發(fā)生)。這就是“中斷”的例子。

  

  圖1:“中斷”處理示意圖

  如果不用“中斷”處理等待方式的話(huà),在看書(shū)的過(guò)程中,您就不得不經(jīng)常走到門(mén)口去確認快遞是否到了。 像這樣頻繁地確認是否有“事件”發(fā)生的現象,在單片機控制中是通過(guò)軟件編程完成的。我們把這種處理方式稱(chēng)為“輪詢(xún)”(圖2)。

  

  圖2:“輪詢(xún)”處理示意圖

  單片機中的

  實(shí)際上單片機的更加復雜,還是以上述事例(邊看書(shū)邊等待快遞送來(lái))進(jìn)行說(shuō)明。

  邊看書(shū)邊等待快遞送來(lái)單片機中的處理

  1) 看書(shū)時(shí)主程序正在執行時(shí)

  2) 快遞送來(lái)的門(mén)鈴響了有事件發(fā)生,向單片機發(fā)送中斷信號通知

  3) 中斷看書(shū)過(guò)程單片機接收中斷信號,暫停正在執行的主程序

  4) 記錄正在看的頁(yè)碼保存當前單片機的狀態(tài)(保存到寄存器中)

  5) 接收快遞執行對應中斷源的處理(中斷程序)

  6) 確認剛才所作的記錄返回剛才所保存的單片機的狀態(tài)

  7) 繼續看書(shū)從暫停的地方開(kāi)始繼續執行程序

  現在,相信大家對“中斷” 已經(jīng)有所了解了。下面我們來(lái)看看在實(shí)際的“中斷”處理中,單片機內部是怎樣進(jìn)行的。

  在單片機中,通知事件發(fā)生的中斷信號一般來(lái)自于外部INT引腳的輸入信號,或是來(lái)自定時(shí)器、串行I/F等內部的外圍功能電路的信號。接收中斷信號的是中斷控制器。中斷控制器根據產(chǎn)生的中斷信號的優(yōu)先級,按優(yōu)先級順序發(fā)送給CPU。當然,被設定為無(wú)效的設備所傳送來(lái)的中斷信號是不會(huì )傳給CPU的,您也可以屏蔽或忽略它們。CPU根據從中斷控制器接收到的指示,執行相應的程序()。

  

  圖3:?jiǎn)纹瑱C內部的“中斷”處理

  實(shí)時(shí)處理中斷

  “中斷”與“輪詢(xún)”看起來(lái)好象可以進(jìn)行同樣的處理,實(shí)際上它們有很大的區別。區別在于當事件發(fā)生時(shí),中斷方式可以立刻執行對應事件的處理。中斷的這種處理方式被稱(chēng)為是實(shí)時(shí)處理。

  而在“輪詢(xún)”方式中,如果對發(fā)生事件的監視周期較短的話(huà)也可以實(shí)現實(shí)時(shí)處理,但是在通常情況下,總是有多個(gè)事件發(fā)生,有時(shí)主程序也不允許太短的循環(huán),所以,難以實(shí)現實(shí)時(shí)處理。

  當 “中斷” 發(fā)生時(shí),由于從檢測到事件發(fā)生到切換到中斷處理只需要幾十至幾百個(gè)時(shí)鐘,所以可以在短時(shí)間內對應事件進(jìn)行處理。

  例如,在鍵輸入或開(kāi)關(guān)輸入的情況下,對于單片機來(lái)說(shuō)開(kāi)關(guān)何時(shí)將被按下是不可預測的事件。所以,如果在主程序中以“輪詢(xún)”的方式監視的話(huà),將會(huì )無(wú)端浪費CPU的處理時(shí)間,而且,如果要進(jìn)行多個(gè)“輪詢(xún)”處理,則“輪詢(xún)”的周期將會(huì )變長(cháng)。

  如果不具備單片機的硬件知識,是很難理解和應用“中斷”的。“中斷”的內容也確實(shí)有些難度,但是它卻是單片機系統控制中無(wú)法避開(kāi)的一種處理。所以,大家一定要加深對單片機知識的理解,并熟練掌握“中斷”的基本知識和使用方法!



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>