速推微控制器原理和應用:中斷
中斷
中斷概念
CPU與外設交換一批資料時,CPU工作速度遠遠高於外設工作速度,所以每傳輸一組資料,CPU需要等待一段時間才能傳送下一組資料。造成CPU資源浪費。
中斷技術目的是為了提高計算機輸入輸出效率,改善計算機整體效能。
所謂中斷是指計算機在執行其他程式的過程中,當出現某些異常事件或某種請求時,CPU暫時中止正在執行的程式,而轉去執行對異常事件或某種請求的服務程式。當服務完畢後,CPU再回到被暫時中止的程式繼續執行。
CPU提高效率主要體現在:
(1)CPU與外設並行工作
(2)可及時處理控制系統中許多隨機引數和資訊
(3)具備了故障處理能力,提高計算機自身可靠性
中斷產生是隨機的,既保護斷點,又保護現場,為外設和處理各種事件服務。
8051中斷系統及其管理
中斷源以及優先順序
1. 中斷源
TCON(定時/計數器T0和T1的控制暫存器)
IT0:外部中斷觸發方式控制位。由軟體控制,0表示電平觸發方式,1表示邊沿觸發方式。
IE0:外部中斷INT0請求標誌位。 IT0=0是電平觸發方式,每個機器週期的S5P2取樣INT0,若INT0為低電平,直接觸發外部中斷; 若IT0=1是邊沿觸發,當第一個機器週期取樣為高電平,第二個機器週期取樣到低電平時,由硬體置位IE0(為1),並由其向CPU請求中斷。CPU響應中斷,則由硬體清0.
TF0:定時/計數器T0溢位中斷標誌位,啟動T0後,T0從初值開始加1,當最高位產生溢位,硬體置TF0為1,向CPU申請中斷,CPU響應TF0中斷時清0該標誌位。TF0也可用軟體清0(查詢方式)
IE1和IT1以及TF1與上面類似
2. 中斷開放、禁止及優先順序
中斷的開放和禁止是通過對中斷允許暫存器IE的相應位設定實現的。
EA:中斷允許總控制位。0為關閉,1為開放,下同
ES(serial):序列口中斷允許控制位
ET1、ET0(timer):定時器1和0中斷允許控制位
EX1、EX0:外部中斷1和0允許控制位
優先順序
微控制器具有2個優先順序:高優先順序和低優先順序。
優先順序的通過中斷優先順序暫存器IP完成。
1為高優先順序、0為低優先順序
1) PS:序列口中斷優先順序控制位
2) PT1、PT0:定時\計數器1和0
3) PX1、PX0:外部中斷1和0
中斷優先順序處理原則:
- 不同級的中斷源同時申請中斷:先高後低
- 處理低階中斷又收到高階中斷:停低轉高
- 處理高階中斷又收到低階中斷:高不睬低
- 同一級中斷源同時申請中斷:事先規定
事先規定:
IE0 > TF0 > IE1 > TF1 > RI/TI
中斷處理過程
1.中斷響應條件及過程
滿足響應條件:
1) 中斷源有請求
2) IE=1
3) EA=1
過程:
S5P2期間,CPU對中斷源取樣,設定相應中斷標誌位。
S6期間,CPU按優先順序順序查詢各中斷標誌,如果某個標誌為1,則在S1期間按優先順序順序處理。
CPU響應中斷,相應的優先順序狀態觸發器置1,由硬體LCALL(首先將斷點地址壓入堆疊保護,再將中斷服務程式入口送入PC),通常在入口再來一個LJMP
中斷源 | 入口 | 中斷號 |
---|---|---|
INT0 | 0003H | 0 |
T0 | 000BH | 1 |
INT1 | 0013H | 2 |
T1 | 001BH | 3 |
序列口中斷 | 0023H | 4 |
下列情況不會產生請求:
- EA=0或對應中斷允許控制位=0
- CPU正在執行一個同級或高一級中斷服務程式
- 當前正在執行的機器週期不是指令週期的最後一個機器週期
- 正在執行的指令是RETI或訪問IE或IP指令時,CPU至少要再執行一條指令才可以響應中斷請求
中斷服務
指令RETI
表示中斷服務結束,既清除中斷響應時置位的優先順序有效觸發器,又將棧頂彈出的地址送回PC,返回主程式。
中斷服務由4部分組成:
保護現場、中斷服務、恢復現場、中斷返回
一般需要保護的是累加器A和狀態字暫存器PSW,其他視情況而定。在中斷程式中若不希望中斷巢狀可以EA=0。
中斷請求撤除
中斷源向CPU發出請求後,中斷請求被鎖存在TCON和SCON中.中斷服務程式結束後應該將這些請求標誌清除否則CPU會進入dead loop
-
T0 T1的中斷請求清除
Cleared automatically by hardware -
外部中斷請求撤除
邊沿觸發(IT0 =1),同上
電平觸發(IT0 = 0),同上,但是外部中斷源不能及時撤回它在INT0或1上的低電平,在下一個週期仍會使IE為1。所以當CPU請求響應後,必須使外部中斷請求輸入端INT0或INT1置為1.由硬體和軟體共同完成。
相關文章
- 十速微控制器應用筆記筆記
- 應廣微控制器-外部中斷demo
- 因果推斷在騰訊遊戲中的應用遊戲
- 微控制器中volatile的應用
- rabbitmq原理和應用MQ
- 微控制器中斷有什麼作用
- websocket原理和應用入門Web
- WebView快取原理分析和應用WebView快取
- Roguelike機制的原理和應用
- Session工作原理和典型應用分析Session
- STM32F103 高階應用(2)——中斷應用
- 因果推斷與中介效應
- ESP8266和雙向可控矽在調速調光中的應用
- 紅豆Live推薦演算法中召回和排序的應用和策略演算法排序
- 聯合體在微控制器程式設計中的應用程式設計
- 數字簽名的原理和應用
- Android中mmap原理及應用簡析Android
- 中斷和中斷處理程式
- Java動態代理—框架中的應用場景和基本原理Java框架
- Java動態代理——框架中的應用場景和基本原理Java框架
- AutoML 在推薦系統中的應用TOML
- 一文講透自適應熔斷的原理和實現
- 個推異常值檢測和實戰應用
- 加推時序系統RTS實現原理及應用簡介
- 機器學習 | 詳解GBDT在分類場景中的應用原理與公式推導機器學習公式
- 微控制器學習(十)紅外遙控與外部中斷
- git 和 gitlub 中應用整理Git
- influxdb 原理與應用UX
- 時間輪原理及其在框架中的應用框架
- 微控制器CPU執行原理
- 5 個開源的速讀應用
- 差分陣列原理與其字首和的應用陣列
- MySQL Binlog 技術原理和業務應用案例分析MySql
- Dubbo底層原理分析和分散式實際應用分散式
- 異常和中斷
- 資料型別第2篇「字典和集合的原理和應用」資料型別
- Spring中註解大全和應用Spring
- 微控制器工作原理的認識