一、中斷系統
1.1、概念
cpu在處理某一事件A時,發生了另外一事件B請求cpu迅速去處理(中斷發生);
cup暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);
待cup將事件B處理完畢后,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回);
這一過程稱為中斷。
引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。cup暫時中斷原來的事務A,轉去處理事件B。對事件B
處理完畢后,再回到原來被中斷的地方(即:斷點)稱為中斷返回,實現上述中斷功能的部件稱為中斷系統。
1.2、中斷系統的功能與優點
解決了快速主機與慢速i/o設備的數據傳送問題。
分時操作:cpu可以為多個io設備服務,提供計算機的利用率。
實時操作:cpu能夠及時處理應用系統的隨機事件,系統實時性大大增強。
可靠性高:cpu具有處理設備故障及掉電等突發性事件的能力,從而使系統可靠性提高。
1.3、89C52單片機中斷系統的結構
89C52的中斷系統有5個中斷源,2個優先級,可實現二級中斷嵌套。
二級中斷嵌套:在一個中斷里面還可以實現一個中斷
TF0,TF1:T1溢出(外部)中斷請求標志 TF0=1溢出 TF0不等于1 計數器、定時器正常工作
RI:接收完成標志 RI =1 一幀數據接受完成 向cpu發送中斷請求
TI:發送完成標志 TI=1 一幀數據發送完成 向cpu發送中斷請求
IE0、IE1:中斷標志位
二、中斷允許控制
CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。
EX0(IE,0):外部中斷0允許位; 置1允許外部中斷 置0不允許外部中斷
ET0(IE,1):定時/計數器T0中斷允許位 置1允許定時器計數器中斷 置0 不允許打開中斷
EX1(IE,2):外部中斷1允許位; 置1允許外部中斷 置0不允許外部中斷
ET1(IE,3);定時計數器T1中斷允許位 置1允許定時器計數器中斷 置0 不允定時器計數器中斷
ES(IE,4);串行口中斷允許位 置1允許串行口中斷 置0不允許串行口中斷
EA(IE,7);CPU中斷允許位(總允許)位 ; 如果EA不置1,上述如EX1,ET1置1也效
三、中斷請求標志
3.1、TCON的中斷標志
ITO(TCON.0):外部中斷0觸發控制位。
當IT0=0時,為電平觸發方式 低電平
當IT0=1時,為邊沿觸發方式(下降沿有效)
IE0(TCON.1):外部中斷0中斷請求標志位。
IT1(TCON.2):外部中斷1觸發方式控制位。
IE1(TCON.3):外部中斷1中斷請求標志位。
TF0(TCON.5):定時/計數器T0溢出中斷請求標志位。 置1溢出
TF1(TCON.7):定時/計數器T1溢出中斷請求標志位。
2.2、優先級問題
同一優先級中的中斷申請不止一個時,則有中斷優先權排隊問題,同一優先級的中斷優先排隊,由
中斷系統的硬件確定的自然優先級形成,排列如下
2.3、51單片機的中斷優先級的三條原則
CPU同時收到幾個中斷時,首先響應優先級別最高的中斷請求。
正在進行的中斷過程不能被新的同級或低優先級的中斷請求所中斷
正在進行的優先級中斷服務,能被高優先級中斷請求所中斷
為了實現上述后兩條原則,中斷系統內部設有兩個用戶不能尋址的優先級狀態觸發器,其中一個置1,表示正在響應高優先級的中斷,他將阻斷后來所有的中斷請求:另外一個置1,表示正在響應低優先級中斷,他將阻斷后來所有的低優先級中斷請求。
四、51單片機中斷處理過程
4.1、中斷響應條件
中斷源有中斷請求
此中斷的中斷允許為1;
CPU開中斷(即EA=1)
同時滿足以上三條件,cpu才可能響應中斷
4.2、使用中斷的注意事項
你想使用的是那個中斷是那個,選擇相應的中斷號;
你希望觸發中斷的條件是什么?
你希望中斷之后干什么
五、代碼示例
5.1、k3按鍵點亮LED模塊的第一個LED燈
#include typedef unsigned int u16; typedef unsigned char u8; sbit k3=P3^2; // 定義按鍵k3 sbit led = P2^0; // 定義 P20口是led /* 1,單片機-->LED&交通燈模塊 P20-->D1 2,單片機-->獨立按鍵模塊 P32-->K3 */ void delay(u16 i) // 延時函數 { while(i--); } void IntoInit() // 外部中斷函數 { //設置 INT0 IT0=1;//跳變沿觸發方式(下降沿) EX0=1;//打開 INT0 的中斷允許。 EA=1;//打開總中斷 } void main() { IntoInit(); // 設置外部中斷 while(1); } void into() interrupt 0 { delay(1000); // 延時消抖 if(k3==0) { led=~led; } } 5.2、k4點亮led #include typedef unsigned int u16; // 宏定義 數據類型的聲明 typedef unsigned char u8; sbit k4=P3^3; // 定義按鍵k4 sbit led = P2^0; // 定義 P20口是led /* 1,單片機-->LED&交通燈模塊 P20-->D1 2,單片機-->獨立按鍵模塊 P33-->K4 */ void delay(u16 i) // 延時函數 { while(i--); } void IntoInit() // 外部中斷函數 { //設置 INT0 IT1=1;//跳變沿觸發方式(下降沿) EX1=1;//打開 INT0 的中斷允許。 EA=1;//打開總中斷 } void main() { IntoInit(); // 設置外部中斷 while(1); } /* 中斷0 外部知中斷0 interrupt 0 中斷道1 定時器1中斷 interrupt 1 中斷2 外部中斷1 interrupt 2 中斷3 定時器2中斷 interrupt 3 中斷4 串口中斷 interrupt 4 */ void into() interrupt 2 // interrupt 一個中斷處理函數 { delay(1000); // 延時消抖 if(k4==0) { led=~led; } } 中斷0 外部知中斷0 interrupt 0 中斷1 定時器1中斷 interrupt 1 中斷2 外部中斷1 interrupt 2 中斷3 定時器2中斷 interrupt 3 中斷4 串口中斷 interrupt 4
上一篇:STC89C52之直流電機 ----自學筆記
下一篇:4*4矩陣 ---- 學習筆記
推薦閱讀
史海拾趣
在成功建立DRAM產品線后,晶豪科技又進一步進軍閃存市場。公司成功完成了多種容量及接口類型的NOR Flash及NAND Flash的開發,滿足了各種特定應用系統的需求。特別是NOR Flash產品,以其更快的速度、更高的安全性、低功耗高存儲密度和不斷降低的成本等優質特性,在市場上取得了顯著成果。
晶豪科技(ESMT)于1998年由趙瑚博士創立,公司自初創時就立志成為客戶各類型內存產品及技術的供應者。經過數年的努力,公司在DRAM產品研發上取得了顯著成果,廣泛應用于PC外圍、信息家電、消費性電子產品及通訊系統等領域。2002年3月,晶豪科技在臺灣證券交易所成功掛牌上市(代號3006),這一里程碑事件為公司后續的發展奠定了堅實基礎。
品質是超音一直以來的追求。公司注重產品質量管理,建立了完善的質量檢測體系,確保每一件產品都符合高標準的質量要求。同時,超音還加強了品牌建設,通過廣告宣傳、贊助活動等方式提升品牌知名度和美譽度。這些努力使得超音在消費者心中樹立了良好的品牌形象,為公司的長期發展奠定了堅實的基礎。
為了提高生產效率和產品質量,Alpha Industries決定引入數字化生產線。通過與電子設備制造商合作,公司成功建立起一條自動化生產線,實現了從設計到生產的無縫對接。數字化生產線的建立不僅提高了生產效率,還降低了生產成本,使得Alpha Industries的產品更具市場競爭力。
Comus International深知,要想在競爭激烈的電子行業中立足,除了不斷創新外,還需要注重產品質量和服務。因此,公司一直將質量和服務作為核心競爭力,不斷提升產品質量和服務水平。正是這種對質量和服務的執著追求,使得Comus International在市場上贏得了客戶的廣泛認可和信賴。
DT-1在線液體密度測試變送器可對各種液體或液態混合物在線進行密度測量。故在石化行業可廣泛應用于煉油、調油、油水介面監測;在食品工業用于葡萄汁、番茄汁、果糖漿、植物油及軟飲料加工等生產現場;奶制品業;造紙業,黑漿、綠漿、白漿、堿溶液的 ...… 查看全部問答∨ |
External Medical and IT Power Supplies Meet Latest Energy Efficiency Standards XP Power has announced the launch of the AEF and AFM series of external AC/DC power supply units. Designed for a wide range of IT and portable medical equipment, the units provide single outputs with power output between 100 - 150 ...… 查看全部問答∨ |
寫過casio dt930手持機程序的朋友對日趨公司提供的rich_XXX 中間層函數了解多少? 我們公司以前開發casio dt930手持機程序都是用的這個日趨函數,但是因為不清楚其函數內部源碼,現在公司要求自己寫一個類似于這個日趨中間層函數庫的東西,其實現函數 ...… 查看全部問答∨ |
我把CxImage移植到EVC4.0的時候,編譯庫沒發現什么問題,但是鏈接到exe(exe是基于MFC的)的時候發現了如下的鏈接錯誤: ximapng.obj : error LNK2019: unresolved external symbol ___CxxLongjmpUnwind@4 referenced in function "public: bool __th ...… 查看全部問答∨ |
在將程序寫入單片機后,程序沒有運行(B口驅動的二極管沒有發光);用手一碰單片機的晶振輸入腿,單片機就能運行了。 奇怪!是晶振沒有七振嗎?… 查看全部問答∨ |
|
LED日光燈電源,今年非常火爆,有很多公司設計由于不懂規范,做出來的產品,往往在認證階段出現問題,花費大量的人力物力去整改, 下面我簡單介紹一下T8電源能滿足認證的的設計要求: 1.安全距離,由于電源是AC-DC的電源,有高壓存在,在UL里的安 ...… 查看全部問答∨ |
|
各位大神,小弟按VCA820 datasheet 23頁Figure84搭出來的圖檢測,Rf和Rg分別為1K與200,增益按道理應該是10倍,現在最大只有2~3倍,極度郁悶,求解中!!!… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 試用Vishay新型“IHLP磁芯損耗計算器”,搶樓贏好禮
- LPC4370重磅來襲 有獎問答贏好禮!
- 電子工程師,如何更好地擁抱GaN?參與問卷有好禮!
- 報名贏京東卡 | 國產FPGA安路科技2024線上新品發布會
- 兆易GD32450I-EVAL免費測評試用
- 追更有驚喜:解救被FSM折磨過的你,justd0解析LSM6DSOX有限狀態機官方例程
- 電路圖站2.0版上線,公開征集網友建議,填寫調查問卷贏積分!
- 全球首款Cortex-M23內核物聯網芯片SAML10和SAM L11系列 闖關獲取SAML10/SAML11法寶,拆除電子界安全危機,贏好禮!
- 邀請好友體驗WEBENCH,禮品豐厚你有他也有!