51單片機中斷系統概念及結構

来源:http://www.cnblogs.com/hughdong/archive/2017/05/19/6878684.html
-Advertisement-
Play Games

———————————————————————————————————————————— 中斷的過程: 對於單片機來講,中斷是指CPU在處理某一時間A時,發生了另一事件B請求CPU立刻去處理(中斷發生);CPU暫時停止當前的工作(中斷響應),轉而去處理事件B(中斷服務),待CPU處理事件B完成後,再 ...


————————————————————————————————————————————

中斷的過程:

對於單片機來講,中斷是指CPU在處理某一時間A時,發生了另一事件B請求CPU立刻去處理(中斷發生);CPU暫時停止當前的工作(中斷響應),轉而去處理事件B(中斷服務),待CPU處理事件B完成後,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回)

中斷源 // 5個中斷源都有一個中斷入口地址,當某個中斷源產生中斷時,CPU響應中斷便到相應的中斷入口地址執行中斷服務程式

中斷的嵌套與優先順序處理

中斷的響應過程

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

中斷系統結構

  • 外部中斷請求源:INT0、INT1

    外部中斷0(INT0)由外部引腳P3.2引入,外部中斷1(INT1)由外部引腳P3.3引入

  • 內部中斷請求源:T0、T1、串口中斷

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

程式定義方式

  • 定義中斷函數的一般形式

    void 函數名() interrupt 中斷號 using 寄存器工作組

    p.s.如果中斷函數中調用了其他函數,則被調用函數所使用的寄存器組必須與中斷函數相同。中斷函數不能參數傳遞,沒有返回值,不能直接被調用。

  • 中斷序號

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

中斷優先順序

   

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

中斷系統寄存器

  • TCON:低4位給外部中斷請求源使用,高4位給內部中斷請求源定時器T0 T1使用

    外部請求源

    • IT0:INT0觸發方式控制位,可由軟體進行置位和複位。IT0=0時,INT0為低電平觸發方式。IT0=1時,INT0為負跳變觸發方式。
    • IE0:INT0中斷請求標誌位。當有外部的中斷請求時,該位置1(這由硬體來完成),在CPU響應中斷後,由硬體將IE0清0。
    • IT1、IE1的用途和IT0、IE0相似。

    內部請求源

    • TF0:定時/計數器T0溢出中斷標記,當T0產生溢出時,TF0置位。當CPU響應中斷後,硬體將TF0複位
    • TR0:T0的開閉控制位,TR0=1時定時計數器打開,TR0=0時定時計數器關閉
    • TF1、TR1與TF0、TR0相似。
  • SCON:低2位與串口中斷相關

    內部請求源

    • TI、RI:串列口發送、接收中斷
  • IE:中斷允許寄存器

    • EA:中斷總控制位。EA=1,CPU開放所有中斷;EA=0,CPU禁止所有中斷。
    • ES:串列口中斷控制位。ES=1,允許串列口中斷;ES=0,屏蔽串列口中斷。
    • ET1:定時/計數器TI中斷控制位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。
    • EX1:外部中斷1中斷控制位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。
    • ET0:定時/計數器T0中斷控制位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。
    • EX0:外部中斷0中斷控制位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0斷。
  • IP:中斷優先順序寄存器

    在該寄存器中,優先順序分為1 0兩級,對應的位置為1則為高優先順序,位置為0則為低優先順序。執行時先將高優先順序的中斷執行完後才會執行低優先順序(同樣高優先順序情況下,按預設優先順序排)。

    • PS:串列口中斷優先順序控制位
    • PT1:定時器1優先順序控制位
    • PX1:外部中斷1優先順序控制位
    • PT0:定時器0優先順序控制位
    • PX0:外部中斷0優先順序控制位

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

補充:

外部中斷的觸發方式選擇

  • 電平觸發方式(低電平觸發)

    CPU在每個機器周期採樣到的外部中斷輸入線的電平。在中斷服務程式返回之前,外部中斷請求輸入必須無效(即變為高電平),否則CPU返回主程式後會再次響應中斷。

    適於外中斷以低電平輸入且中斷服務程式能清除外部中斷請求(即外部中斷輸入電平又變為高電平)的情況。

  • 跳沿觸發方式

    連續兩次採樣,一個機器周期採樣到外部中斷輸入為高,下一個機器周期採樣為低,則置"1"中斷請求標誌,直到CPU響應此中斷時,該標誌才清0。這樣不會丟失中斷,但輸入的負脈衝寬度至少保持1個機器周期。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 首先安裝Scala插件,File->Settings->Plugins,搜索出Scla插件,點擊Install安裝; 2. File->New Project->maven,新建一個Maven項目,填寫GroupId和ArtifactId; 3. 編輯pom.xml文件,添加項目所需要的依賴: ...
  • 今天用navcat往一個表添加外鍵的時候報錯: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to u ...
  • 數據進位: 1bit = 1位 1byte =8bit 1k=1024b 1m=1024k 1g=1024m 1t=1024g 1p=1024t 1e=1024p 1z=1024e 1y=1024z 存儲 1、分割 分散式 :dfs 2、運算 mapreduce : map (映射) reduce( ...
  • 話說BIT類型欄位之前,先看“詭異”的一幕,執行Update成功,但是查詢出來的結果依然是1,而不是Update的2 當別人問起我來的時候,本人當時也是處於懵逼狀態的,後面聯想具體的業務突然想起來這個欄位是bit類型的 如果把這個現象跟BIT類型欄位連續起來就不覺得奇怪了。 廢話不多,直接上代碼看結 ...
  • 用了兩個的centos之後,也想看看它的腳本,我們知道shell這個東西就像windows里的批處理,它可以將一些語句進行組合,然後統一去執行,感覺挺方便的。 shell文件的組成 shell語言環境 說明 使用#開頭的一行表示為“註釋”,它不會被執行,只是起到說明的作用 文件許可權 r(Read,讀 ...
  • 為何要有操作系統 程式員無法把所有的硬體操作細節都瞭解到,因為管理這些硬體並加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是操作系統來乾的,有了他,程式員就從這些繁瑣的工作中解脫出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用操作系統提供的功能來間接使用硬體 操作系統的位置 操作系統位 ...
  • 線上環境集群storage節點啟動腳本 !/bin/bash chkconfig: 2345 15 85 description:fastdfs storage node start/stop . /etc/init.d/functions uid= cmd=/usr/local/sandai/tf ...
  • pwd 當前工作目錄 cd(不加參數) 進root cd(folder) 進入文件夾 cd .. 上級目錄 cd ~ 返回root cd - 返回上一個訪問的目錄 rm 文件名 刪除 cat 文件名(|less) 在終端下查看文件 ls 列出目錄下所有文件 cp 文件名 目標目錄 將文件拷貝到目標目 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...