



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機中斷服務函數寫法總結廣東陽西福達名苑梁智鈞(電子工程師)一、在開始寫中斷函數之前,我們來一起回顧一下,單片機的中斷系統。(1)中斷源:中斷請求信號的來源。(8051有3個內部中斷源T0,T1,串行口, 2個外部中斷源INT0,INT1 (這兩個低電平有效。(2)中斷響應與返回:CPU采集到中斷請求信號,怎樣轉向特定的中斷服務子程 序,并在執行完之后返回被中斷程序繼續執行。期間涉及到CPU響應中斷的條件,現 場保護,現場恢復。(3)優先級控制:中斷優先級的控制就形成了中斷嵌套(8051允許有兩級的中 斷嵌套,優先權順序為INT0,T0,INT1,T1,串行口),同一個優先級的中斷,還 存在
2、優先權的高低。優先級是可以編程的,而優先權是固定的。80C51的原則是同優先級,先響應高優先權低優先級能被高優先級中斷正 在進行的中斷不能被同一級的中斷請求或低優先級的中斷請求中斷。80C51的中斷系統涉及到的中斷控制有中斷請求,中斷允許,中斷優先級控制(1)3個內部中斷源T0,T1,串行口,2個外部中斷源INT0,INT1(2)中斷控制寄存器:定時和外中斷控制寄存器TCON (包括T0、T1,INT0、 INT1),串行控制寄存器SCON,中斷允許寄存器IE,中斷優先級寄存器IP具體的是什么,包括哪些標志位,在這里不講了,所有書上面都會講。在這里我們講下注意的事項(1)CPU響應中斷后,TF
3、0(T0中斷標志位)和TF1由硬件自動清0。(2)CPU響應中斷后,在邊沿觸發方式下,IE0 (外部中斷INT0請求標志位)和IE1由硬件自動清零;在電平觸發方式下,不能自動清楚IE0和IE1。所以在中斷 返回前必須撤出INT0和INT1引腳的低電平,否則就會出現一次中斷被CPU多次響 應。(3)串口中斷中,CPU響應中斷后,TI (串行口發送中斷請求標志位)和RI(接 收中斷請求標志位)必須由軟件清零。(4)單片機復位后,TCON,SCON給位清零。C51語言允許用戶自己寫中斷服務子程序(中斷函數)首先來了解程序的格式:void 函數名()interrupt m using n關鍵字inte
4、rrupt m using n表示這是一個中斷函數m為中斷源的編號,有五個中斷源,取值為0,1,2,3,4,中斷編號會告訴編譯器中斷 程序的入口地址,執行該程序時,這個地址會傳個程序計數器PC,于是CPU開始從 這里一條一條的執行程序指令。n為單片機工作寄存器組(又稱通用寄存器組)編號,共四組,取值為0,1,2,3中斷號中斷源0外部中斷0定時器0外部中斷1定時器1中斷串行口中斷這5個中斷源的中斷入口地址為:(在上一篇文章中講到的ROM前43個存儲單元就 是他們,這40個地址用來存放中斷處理程序的地址單元,每一個類中斷的存儲單元只 有8B,顯然不是中斷處理的程序,而是存放著中斷處理程序的真正地址
5、) TOC o 1-5 h z INT0: 0003H0T0:000BH1INT1: 0013H2T1:001BH3串口: 0023H4中斷向量(中斷入口地址)=中斷號x8 +3前面m意思很清楚,不同的m值表示這個函數是針對不同的中斷源,比如m為 1是表示它是定時器0的中斷函數,如 void time0()interrupt 1那么后面的using n又是什么意思呢?在正在執行一個特定任務時,有更緊急的 事情需要CPU來處理,涉及到中斷優先權。高優先權中斷低優先權正在處理的程序, 所以最好給每個優先程序分配不同的寄存器組。CPU正在處理某個事件,突然另外一個事件需要處理,于是進入中斷后,而你不
6、 想將現在執行的程序的各寄存器狀態入棧,那么可以把這個中斷程序放入另一個寄存 器組,如切換到1組,然后退出中斷時,再切回到0組(原來的程序在0組)。為了更好的了解這里意思,你可以看看工作寄存器組的作用是什么。下面的注意事項轉自網絡上其他朋友的文章(整理下,重復的去掉了,寫的非常好):(1)中斷函數不能進行參數傳遞(2)中斷函數沒有返回值(3)在任何情況下都不能直接調用中斷函數(4)中斷函數使用浮點運算要保存浮點寄存器的狀態。(5)如果在中斷函數中調用了其它函數,則被調用函數所使用的寄存器必須與中斷函 數相同,被調函數最好設置為可重入的。(6)C51編譯器對中斷函數編譯時會自動在程序開始和結束處
7、加上相應的內容,具體 如下:在程序開始處對ACC、B、DPH、DPL和PSW入棧,結束時出棧。中斷函數 未加using n修飾符的,開始時還要將R0R1入棧,結束時出棧。如中斷函數加using n修飾符,則在開始將PSW入棧后還要修改PSW中的工作寄存器組選擇位。(7)C51編譯器從絕對地址8m + 3處產生一個中斷向量,其中m為中斷號,也即 interrupt后面的數字。該向量包含一個到中斷函數入口地址的絕對跳轉。(8)中斷函數最好寫在文件的尾部,并且禁止使用extern存儲類型說明。防止其它 程序調用。(9)在設計中斷時,要注意的是哪些功能應該放在中斷程序中,哪些功能應該放在主 程序中。一般來說中斷服務程序應該做最少量的工作,這樣做有很多好處。首先系統 對中斷的反應面更寬了,有些系統如果丟失中斷或對中斷反應太慢將產生十分嚴重的 后果,這時有充足的時間等待中斷是十分重要的。其次它可使中斷服務程序的結構簡 單,不容易出錯。中斷程序中放入的東西越多,他們之
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 志愿者協會管理
- 家電行業資金管理居間協議
- 住宅區景觀設計合同模板
- 2024珠海市新思維中等職業學校工作人員招聘考試及答案
- 2024沅江市職業中等專業學校工作人員招聘考試及答案
- 2024清遠市新科職業技術學校工作人員招聘考試及答案
- 2024淶源縣職業技術教育中心工作人員招聘考試及答案
- 人工智能技術使用授權協議
- 普及憲法知識
- 汽車保險理賠服務合作合同
- 2023年復合型膠粘劑項目安全評價報告
- DZ∕T 0215-2020 礦產地質勘查規范 煤(正式版)
- 【初中+語文】中考語文一輪專題復習+《名著閱讀+女性的力量》課件
- 2024年強基計劃解讀 課件-2024屆高三下學期主題班會
- 城市道路橋梁工程施工質量驗收規范 DG-TJ08-2152-2014
- 響應面分析軟件DesignExpert使用教程
- 《新病歷書寫規范》課件
- 2024城鎮燃氣管道非開挖修復更新工程技術規范
- 腸胃消化健康的知識講座
- 新概念英語第二冊-Lesson-56-Faster-than-sound-課件
- 美的社會責任報告2023
評論
0/150
提交評論