程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 51單片機中斷系統

51單片機中斷系統

編輯:關於C語言
 

概念:引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務A,轉去處理事件B。對事件B處理完畢後,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現上述中斷功能的部件稱為中斷系統(中斷機構)。

80C51的中斷系統有5個中斷源 ,2個優先級,可實現二級中斷嵌套(就是可以在嵌套過程中再次響應嵌套) 。

中斷源

1、INT0(P3.2),外部中斷1。可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.2引腳上出現有效的中斷信號時,中斷標志IE0(TCON.1)置1,向CPU申請中斷。

2、INT1(P3.3),外部中斷2。可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現有效的中斷信號時,中斷標志IE1(TCON.3)置1,向CPU申請中斷。

3、TF0(TCON.5),片內定時/計數器T0溢出中斷請求標志。當定時/計數器T0發生溢出時,置位TF0,並向CPU申請中斷。

4、TF1(TCON.7),片內定時/計數器T1溢出中斷請求標志。當定時/計數器T1發生溢出時,置位TF1,並向CPU申請中斷。

5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標志。當串行口接收完一幀串行數據時置位RI或當串行口發送完一幀串行數據時置位TI,向CPU申請中斷。

中斷請求標志

1、TCON的中斷標志

TCON

IT0(TCON.0):外部中斷0觸發方式控制位。

  • 當IT0=0時:為電平觸發方式。
  • 當IT0=1時:為邊沿觸發方式(下降沿有效)。

IE0(TCON.1):外部中斷0中斷請求標志位。

IT1(TCON.2):外部中斷1觸發方式控制位。

IE1(TCON.3):外部中斷1中斷請求標志位。

TF0(TCON.5):定時/計數器T0溢出中斷請求標志位。

TF1(TCON.7):定時/計數器T1溢出中斷請求標志位。

單片機TCON輔助設置工具

2、SCON的中斷標志

SCON

RI(SCON.0),串行口接收中斷標志位。當允許串行口接收數據時,每接收完一個串行幀,由硬件置位RI。同樣,RI必須由軟件清除。

TI(SCON.1),串行口發送中斷標志位。當CPU將一個發送數據寫入串行口發送緩沖器時,就啟動了發送過程。每發送完一個串行幀,由硬件置位TI。CPU響應中斷時,不能自動清除TI,TI必須由軟件清除。

80C51中斷的控制

中斷允許控制

CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。

單片機中斷系統(轉帖) - 火熱的心 - 火熱的心的博客

  • EX0(IE.0):外部中斷0允許位;
  • ET0(IE.1):定時/計數器T0中斷允許位;
  • EX1(IE.2):外部中斷0允許位;
  • ET1(IE.3):定時/計數器T1中斷允許位;
  • ES(IE.4):串行口中斷允許位;
  • EA (IE.7): CPU中斷允許(總允許)位。

單片機IE自動設計工具

中斷優先級控制

80C51單片機有兩個中斷優先級,即可實現二級中斷服務嵌套。每個中斷源的中斷優先級都是由中斷優先級寄存器IP中的相應位的狀態來規定的 。

IP

  • PX0(IP.0),外部中斷0優先級設定位;
  • PT0(IP.1),定時/計數器T0優先級設定位;
  • PX1(IP.2),外部中斷0優先級設定位;
  • PT1(IP.3),定時/計數器T1優先級設定位;
  • PS? (IP.4),串行口優先級設定位;
  • PT2(IP.5),定時/計數器T2優先級設定位。

單片機IP自動設計工具

中斷優先級規則:

  • CPU同時接收到幾個中斷時,首先響應優先級別最高的中斷請求。
  • 正在進行的中斷過程不能被新的同級或低優先級的中斷請求所中斷。
  • 正在進行的低優先級中斷服務,能被高優先級中斷請求所中斷。

中斷系統總結:

TCON和SCON是中斷請求,以及控制外部中斷的有效方式。IE控制是否允許CPU響應中斷,是否允許響應某一個中斷。IP控制中斷的優先級。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved