chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

對于單片機中斷的詳細解析

m3eY_edn_china ? 2017-12-25 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單片機CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生);CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。

例如

當你正在洗衣時,突然手機響了(中斷發(fā)生),你暫時中斷洗衣的工作,轉去接電話(中斷響應和中斷服務),待你接完后,再回來繼續(xù)洗衣(中斷返回),這一過程就是中斷。

單片機中斷分為內(nèi)部中斷和外部中斷兩大類,外部中斷由單片機外部設備產(chǎn)生,中斷產(chǎn)生后通過單片機的外部管腳傳遞給單片機,傳遞這個中斷信號最簡單的方法就是規(guī)定單片機的管腳在什么狀態(tài)下有外部中斷產(chǎn)生,這樣單片機通常是有一個或多個IO口當在輸入狀態(tài)時可以用來檢測外部中斷信號。有外部中斷產(chǎn)生的條件通常也就是這五種:IO口輸入為高、IO口輸入為低、IO口輸入由高變?yōu)榈汀O口輸入由低變?yōu)楦?、IO口輸入由高變低或者由低變高。一個連接到單片機的外部設備,如果想要使用單片機的外部中斷,就必須在自己請求單片機中斷響應的時候給單片機提供單片機在這五種信號中所支持的類型來觸發(fā)單片機中斷。程序運轉中,一個中斷不是只產(chǎn)生一次,一般都會間隔持續(xù)產(chǎn)生,這五種外部中斷觸發(fā)信號前四種都有一個問題,就是外設發(fā)出請求中斷信號后如果信號請求線狀態(tài)不改變,外設會無法向單片機提供下一次中斷請求信號。讓我們來看看以單片機和外部設備采用負跳變觸發(fā)中斷為例的觸發(fā)情況。外部設備以負跳變觸發(fā)單片機中斷,第一次中斷請求外部設備的中斷請求輸出腳可以從高變低,觸發(fā)單片機中斷,第一次中斷請求發(fā)生后中斷請求腳保持輸出低,外部設備無法產(chǎn)生第二次中斷的觸發(fā)負跳變信號。

圖1 外設只能產(chǎn)生一次中斷請求信號示意圖將外部設備的中斷請求信號做出修改,原來為需要中斷時只是輸出從高到低變化,現(xiàn)在改為輸出先從高變到低,經(jīng)過一小段時間后自己從低變回高,這樣就可以每次需要中斷時都能向單片機輸出負跳變觸發(fā)信號。

圖2 外設可連續(xù)產(chǎn)生中斷請求信號示意圖一或者是由外部設備提供某種接口,單片機通過該接口可以對外部設備進行中斷清除操作,中斷清除操作可以讓外部設備的中斷請求輸出腳恢復到高。
圖3 外設可連續(xù)產(chǎn)生中斷請求信號示意圖二外部中斷觸發(fā)還有一些特殊方式,比如外部脈沖寬度測量、外部脈沖計數(shù)等,這些方式都是在前面幾種基本觸發(fā)方式上進行功能擴展得來的,外部脈沖寬度測量就是當中斷信號線跳變時會啟動內(nèi)部一個計時器,到下一次中斷信號線跳變時通過計時器得到脈沖寬度并重新啟動計時器,這些方式很少會使用到,不做詳述。內(nèi)部中斷是指單片機內(nèi)部的功能模塊產(chǎn)生中斷信號,只要是單片機內(nèi)部在CPU外圍能獨立工作的功能模塊都會提供中斷功能,常見的內(nèi)部中斷類型有時鐘Timer、串口UART、模數(shù)轉換ADC等。內(nèi)部中斷的工作流程和外部中斷沒太多區(qū)別,只是中斷請求信號是在單片機內(nèi)部進行傳輸,中斷信號不是管腳上的電平狀態(tài),而是一個寄存器里面的相應標志位,通常當某個內(nèi)部中斷產(chǎn)生中斷請求時就會將相應標志位置為1,CPU響應中斷時將這個標志位清0。
圖4 內(nèi)部中斷觸發(fā)示意圖單片機對中斷標志位的處理方法沒有統(tǒng)一標準,具體的約定方法要看單片機文檔。大部分是標志位為1有中斷產(chǎn)生,但有少數(shù)單片機是標志位為0有中斷產(chǎn)生;有的單片機對中斷標志位是CPU寫入什么就是給改寫成什么,有的則是規(guī)定必須通過寫1或寫0來實現(xiàn)清除操作,還有少數(shù)只要讀一下中斷標志位就會自動清除掉該標志位。如果單片機不想被外部中斷觸發(fā),大不了將用于連接外部中斷觸發(fā)信號的管腳接成不會觸發(fā)中斷的電壓狀態(tài)就可以,但內(nèi)部中斷無法去改變內(nèi)部連線,所以單片機為了可以選擇中斷是否可以被除法,在其內(nèi)部會有相關的寄存器來進行選擇,通過里面的控制標志位開發(fā)人員可以根據(jù)實際情況決定是否使用中斷。通常單片機里面有一個總控制位,這個位可以控制所有中斷的開與關,然后每一種中斷自己還有一個獨立的控制位決定自己的開與關,如果想使用某個中斷,就需要將總中斷開關和對應中斷的開關都打開。當單片機有中斷信號產(chǎn)生時,就會觸發(fā)對應中斷,不同的中斷源會需要不同的響應方法,也就是說不同的中斷產(chǎn)生的時候,需要單片機程序依照不同的中斷源做出不同的響應,這就是中斷服務程序。如果是UART收到新數(shù)據(jù)產(chǎn)生中斷,應該是UART中斷服務程序將數(shù)據(jù)讀回來并做處理,如果是ADC轉換完成產(chǎn)生的中斷,需要的則是ADC中斷服務程序將數(shù)據(jù)讀回來并做處理。如果需要清中斷標志位動作,一般都是在中斷服務程序里面完成。不同的中斷源需要與之對應的中斷服務程序,實際開發(fā)中并不是所有的中斷都會被用到,開發(fā)人員為了節(jié)約程序代碼空間會只寫出自己要使用到的中斷服務程序,也就是說會有一些中斷沒有與之對應的中斷服務程序,如果觸發(fā)了這樣的中斷,單片機程序會運行出錯,前面中斷各自獨立的控制位就排上用場,將這些控制位關掉,相應中斷就不會被觸發(fā)。單片機開始上電的時候,如果控制中斷是否被打開的寄存器控制標志位被打開,可能會出現(xiàn)中斷被誤觸發(fā)的情況,而這個中斷如果沒有與之相對應的中斷服務程序的話程序就會跑飛,所以單片機上電的時候一般會自動將這些寄存器里面的標志位都關掉,以免誤觸發(fā)。中斷服務程序是單片機程序的一部分,具體內(nèi)容由開發(fā)人員決定,這樣中斷服務程序的大小在單片機程序中的位置就不固定,當單片機的中斷被觸發(fā)后,單片機需要知道中斷服務程序在什么位置才能執(zhí)行它,單片機通過中斷跳轉表(中斷向量表)來解決這個問題。雖然中斷服務程序的大小和在整個程序中的位置會不固定,但程序只要被燒進單片機系統(tǒng),對于這個程序來說其中斷服務程序的大小和在整個程序中的位置就會被固定下來,如果對單片機程序空間分配我們做出一些約定,將一個絕對固定地址專門分配給中斷使用,程序編譯時會將中斷服務程序的起始地址(或者是跳轉到中斷服務程序的指令)填到這個絕對固定地址所在的空間,當中斷產(chǎn)生時候,單片機先將絕對固定地址所在位置里面的內(nèi)容讀出,根據(jù)所讀內(nèi)容就可以跳轉到中斷服務程序。對于單片機中斷的詳細解析
圖5 中斷響應示意圖簡單的單片機所提供的中斷種類有限,為了簡化程序,會給每一個中斷分配一個用來存放中斷服務程序地址的地址空間,這種方法其實沒什么不好的地方,只是單片機技術發(fā)展到現(xiàn)在遇到了瓶頸,高端單片機越來越復雜,于是一些專業(yè)廠商開始合作共享技術資源,例如ARM公司利用他們在CPU架構體系上的技術優(yōu)勢專門給另外的廠商提供CPU內(nèi)核,另外的廠商在ARM內(nèi)核的CPU外圍增加功能模塊,這些功能模塊大都支持中斷。

圖6 ARM內(nèi)核單片機架構圖不同廠家在相同CPU內(nèi)核基礎上設計出來的單片機外圍的功能模塊會各不相同,從而中斷的種類和個數(shù)也各不相同,而CPU處理中斷的方法是一樣的,如果延續(xù)簡單的單片機給每個中斷都分配一個地址空間的做法顯然有問題,CPU無法知道到底有多少種中斷需要支持,這些中斷又分別對應什么模塊,于是采用另外一種中斷處理方法,將所有中斷地址都指向同一個,并將所有中斷依次編號,中斷產(chǎn)生時候CPU會告訴中斷服務程序當前中斷編號是多少,然后中斷服務程序根據(jù)中斷編號做出相應響應。

圖7 公用中斷入口中斷響應流程圖

圖8 獨立中斷入口中斷響應流程圖所有中斷使用同一個中斷向量地址然后通過中斷號判斷中斷類別的方法雖然解決了通用CPU內(nèi)核中斷不能直接對應中斷向量地址的問題,但把它中斷處理的流程和具有獨立中斷向量表的單片機相比就會發(fā)現(xiàn)中斷的響應速度會變慢。具有獨立中斷向量表的單片機只要一條跳轉指令就可以直接進入中斷程序,而沒有獨立中斷向量表的單片機需要先跳轉到中斷公共入口,然后通過代碼判定中斷類別,確定中斷類別后才跳轉到真正的中斷程序中去。C語言的代碼會讓這種情況更加惡化,所以如果是沒有獨立中斷向量表的單片機一般采用匯編查表的方法加快中斷響應速度。
圖9 匯編中斷快速跳轉表中斷程序執(zhí)行完畢后回返回繼續(xù)執(zhí)行主程序,這樣就要求中斷不改變主程序的運行狀態(tài),所以中斷響應時需要將程序當前運行的狀態(tài)信息保存起來,比如程序運行到什么位置、當前CPU狀態(tài)寄存器的狀態(tài)等信息。當中斷程序執(zhí)行完畢,可以通過這些信息將CPU狀態(tài)寄存器恢復原來狀態(tài),并能返回原程序繼續(xù)執(zhí)行。不同的單片機對此的處理方式也會有不同,一種是完全由硬件來完成,并不需要程序來進行管理;另外一種是將狀態(tài)信息用相應指令保存在特定位置,返回時再用相應指令恢復原來狀態(tài)。

單片機中斷還有中斷優(yōu)先級和中斷嵌套的概念,但不是所有的單片機都會支持這兩種功能。中斷優(yōu)先級是不同的中斷會有不同的優(yōu)先級別,如果同時有兩個中斷產(chǎn)生,單片機會先響應優(yōu)先級高的中斷。中斷嵌套是指在中斷響應當中又有新的中斷產(chǎn)生,單片機可以暫停當前的中斷程序執(zhí)行去響應新的中斷,新中斷程序執(zhí)行完以后在接著執(zhí)行當前中斷程序。一般中斷嵌套是高優(yōu)先級的中斷可以插入低優(yōu)先級中斷響應程序,同級或低級的中斷不能插入當前中斷響應程序。


圖10 中斷嵌套示意圖

中斷步驟說明:

步驟①保存主程序現(xiàn)場,執(zhí)行中斷1服務程序

步驟②保存中斷1服務程序現(xiàn)場,執(zhí)行中斷2服務程序

步驟③恢復中斷1服務程序現(xiàn)場,繼續(xù)執(zhí)行中斷1服務程序

步驟④恢復主程序現(xiàn)場,準備繼續(xù)執(zhí)行主程序,有新中斷不能繼續(xù)執(zhí)行主程序

步驟⑤保存主程序現(xiàn)場,執(zhí)行中斷3服務程序

步驟⑥恢復主程序現(xiàn)場,準備繼續(xù)執(zhí)行主程序,有新中斷不能繼續(xù)執(zhí)行主程序

步驟⑦保存主程序現(xiàn)場,執(zhí)行中斷4服務程序

步驟⑧恢復主程序現(xiàn)場,無中斷產(chǎn)生繼續(xù)執(zhí)行主程序有的單片機一進入中斷函數(shù)就會自動將中斷的總控制位關掉,需要開發(fā)人員在中斷程序中用程序再次打開,否則一次中斷后所有的中斷就不能繼續(xù)使用。對于中斷標志位,在寫單片機程序的時候要依據(jù)單片機文檔進行清除標志為操作,不然有可能會一旦產(chǎn)生某個中斷就會連續(xù)不停的反復響應這個中斷,導致主程序不能繼續(xù)運行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6074

    文章

    45322

    瀏覽量

    662893
  • 中斷
    +關注

    關注

    5

    文章

    912

    瀏覽量

    43537

原文標題:不懂中斷你就別玩單片機

文章出處:【微信號:edn-china,微信公眾號:EDN電子技術設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    單片機中斷優(yōu)先級應用案例

    單片機同時接收到幾個中斷請求時,單片機中斷請求的響應順序是如何確定的?實際上,單片機是通過中斷
    發(fā)表于 10-31 14:42 ?3413次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>中斷</b>優(yōu)先級應用案例

    吳鑒鷹單片機項目詳細解析系列(連載)之基于單片機的.....

    本帖最后由 吳鑒鷹 于 2014-6-14 11:10 編輯 吳鑒鷹單片機項目詳細解析系列(連載)之基于單片機的實戰(zhàn)項目Hi!大家好,我叫吳鑒鷹,100%年中國制造,長181cm
    發(fā)表于 03-27 22:07

    單片機教程十七:單片機中斷系統(tǒng)

    單片機教程十七:單片機中斷系統(tǒng) 單片機中斷系統(tǒng)的概念:什么是中斷,我們從一個生活中的例程引入
    發(fā)表于 05-15 23:11 ?5145次閱讀
    <b class='flag-5'>單片機</b>教程十七:<b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>系統(tǒng)

    單片機中斷系統(tǒng)如何使用?基本概念和應用詳細講解

    本文檔的主要內(nèi)容詳細介紹的的是單片機中斷系統(tǒng)如何使用?基本概念和應用詳細講解內(nèi)容包括了:一中斷的基本概念,二MCS-51
    發(fā)表于 09-29 11:08 ?11次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>系統(tǒng)如何使用?基本概念和應用<b class='flag-5'>詳細</b>講解

    51單片機教程之51單片機中斷系統(tǒng)的詳細資料概述

    本文檔的主要內(nèi)容詳細介紹的是51單片機教程之51單片機中斷系統(tǒng)的詳細資料概述主要內(nèi)容介紹的是中斷
    發(fā)表于 11-19 09:56 ?17次下載
    51<b class='flag-5'>單片機</b>教程之51<b class='flag-5'>單片機</b><b class='flag-5'>中斷</b>系統(tǒng)的<b class='flag-5'>詳細</b>資料概述

    51單片機中斷系統(tǒng)詳細資料總結

    本文檔的詳細介紹的是51單片機中斷系統(tǒng)詳細資料總結。主要內(nèi)容包括了:1 中斷的概念,2 中斷
    發(fā)表于 03-07 16:37 ?3次下載
    51<b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>系統(tǒng)<b class='flag-5'>詳細</b>資料總結

    單片機中斷序號詳細說明

    單片機中斷序號決定該中斷中斷向量的位置(即中斷服務程序的入口地址)即 中斷序號就是
    發(fā)表于 08-19 17:31 ?5次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>序號<b class='flag-5'>詳細</b>說明

    51單片機中斷系統(tǒng)詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是51單片機中斷系統(tǒng)詳細資料說明。
    發(fā)表于 06-14 17:45 ?3次下載
    51<b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>系統(tǒng)<b class='flag-5'>詳細</b>資料說明

    51單片機中斷系統(tǒng)的原理和結構詳細說明

    本文檔的主要內(nèi)容詳細介紹的是51單片機中斷系統(tǒng)的原理和結構詳細說明。
    發(fā)表于 11-19 08:00 ?2次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>中斷</b>系統(tǒng)的原理和結構<b class='flag-5'>詳細</b>說明

    單片機中斷系統(tǒng)詳細課件說明

    本文檔的主要內(nèi)容詳細介紹的是單片機中斷系統(tǒng)詳細課件說明包括了:1、什么是中斷,2、中斷的執(zhí)行過
    發(fā)表于 12-26 15:59 ?18次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>系統(tǒng)<b class='flag-5'>詳細</b>課件說明

    單片機學習筆記————51單片機實現(xiàn)在串口接收中斷里即時解析數(shù)據(jù)頭的特殊程序框架

    單片機學習筆記————51單片機實現(xiàn)在串口接收中斷里即時解析數(shù)據(jù)頭的特殊程序框架
    發(fā)表于 11-23 17:06 ?16次下載
    <b class='flag-5'>單片機</b>學習筆記————51<b class='flag-5'>單片機</b>實現(xiàn)在串口接收<b class='flag-5'>中斷</b>里即時<b class='flag-5'>解析</b>數(shù)據(jù)頭的特殊程序框架

    STM32單片機外部中斷簡介 STM32單片機外部中斷的配置過程

    STM32 單片機是一款高性能、低功耗的 32 位微控制器,具有強大的計算能力、靈活的外設模塊以及優(yōu)秀的擴展性,開發(fā)周期短、成本低。在單片機應用中,外部中斷是一種重要的硬件觸發(fā)方式,本文將對 STM32
    發(fā)表于 08-15 18:21 ?3957次閱讀

    單片機用按鈕中斷函數(shù)

    的功能,如播放音樂、啟動燈光等等。本文將對單片機使用按鈕中斷函數(shù)做詳細的闡述,包括實現(xiàn)過程、原理以及相關的編程技巧,以期幫助讀者深入了解單片機中斷
    的頭像 發(fā)表于 09-01 10:17 ?2305次閱讀

    單片機中斷功能及其應用

    單片機中斷功能及其應用? 單片機中斷是指在程序執(zhí)行過程中,根據(jù)特定的條件或事件自動暫時中斷當前程序的執(zhí)行,轉而執(zhí)行特定的
    的頭像 發(fā)表于 01-30 14:45 ?7609次閱讀

    單片機中斷機制

    單片機中斷機制是一種重要的處理方式,它允許單片機在執(zhí)行主程序的過程中,能夠暫停當前任務,轉而處理外部或內(nèi)部緊急事件。這種機制極大地提高了系統(tǒng)的響應速度和處理能力,使得單片機在各種應用
    的頭像 發(fā)表于 10-17 18:03 ?2474次閱讀