




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1 第五章1單片機的中斷系統(tǒng) 第一節(jié)中斷的基本概念第二節(jié)mcs 51單片機中斷系統(tǒng)第三節(jié)中斷系統(tǒng)的應用 2 第一節(jié)中斷的基本概念 1 數(shù)據(jù)傳送方式程序控制方式無條件傳送方式 輸入輸出操作完全取決于程序的安排 而不管外設的狀態(tài) 程序查詢方式 先查詢外設的當前狀態(tài) 獲得端口信息 i o操作完全由cpu控制 缺點 浪費cpu時間 效率低 中斷傳送方式cpu不必定時查詢接口狀態(tài) 接口在數(shù)據(jù)發(fā)送或接收數(shù)據(jù)準備好后通知cpu cpu通過執(zhí)行一個中斷服務程序來完成數(shù)據(jù)傳送 接口沒有準備好時 cpu繼續(xù)執(zhí)行主程序 提高cpu工作效率 dma directmemoryaccess 直接存儲器存取方式i o設備在dma接口控制下直接把成塊信息送到主存儲器 或從主存儲器取出成塊信息送給i o設備 中間不經(jīng)cpu參與 比中斷 查詢方式更加提高了cpu的利用率 3 第一節(jié)中斷的基本概念 2 中斷概念 cpu在正常運行程序時 由于cpu以外某一事件的發(fā)生 引起cpu暫停正在運行的程序 而轉(zhuǎn)到為該事件的發(fā)生預先安排好的服務程序中去執(zhí)行 4 3 中斷源 可由硬件或軟件引起 引起中斷的事件 msc 51具有多個中斷源 51子系列有5個中斷源 2個外部中斷 2個定時中斷和1個串行中斷 a 外中斷 外部信號引起 共2個 即 外部中斷 0 中斷請求信號由引腳int0 p3 2 引入 外部中斷 1 中斷請求信號由引腳int1 p3 3 引入 外部中斷請求有兩種信號形式 低電平觸發(fā)方式和負跳脈沖觸發(fā)方式 負跳脈沖觸發(fā)方式 負跳信號有效 即cpu在連續(xù)兩個周期對引入端intx采樣 如果前周期為高電平 后一周期為低電平 則為有效的負跳脈沖觸發(fā)方式的外中斷申請 低電平觸發(fā)方式 低電平有效 只要cpu在每機器周期s5p2期間從引入端intx采樣到低電平 就進入外中斷 第一節(jié)中斷的基本概念 5 b 定時器 計數(shù)器中斷 內(nèi)部計數(shù)器計數(shù)溢出 溢出標志位tfx作為單片機接受中斷請求標志 信號來源 內(nèi)部 定時 和外部 計數(shù) 芯片內(nèi)部有兩個定時器 計數(shù)器 tf0 tf1 發(fā)生計數(shù)溢出就可以達到申請中斷請求 c 串行中斷 串行數(shù)據(jù)傳送 發(fā)送和接收 的需要而設置 串行口接收或發(fā)送 ti ri 完一組串行數(shù)據(jù)時 就可以產(chǎn)生一個中斷請求 第一節(jié)中斷的基本概念 6 中斷源入口地址 7 ie 中斷允許控制寄存器 tcon 定時控制寄存器 scon 串行口控制寄存器 ip 中斷優(yōu)先級控制寄存器 第二節(jié)mcs 51單片機的中斷系統(tǒng) 與中斷控制有關(guān)的控制寄存器有四個 8 1 中斷允許控制寄存器ie用戶軟件設置寄存器地址為a8h 2 ex0 exl 外部中斷允許控制位 int0 int1 ex0 exl 0禁止外中斷ex0 exl l允許外中斷 1 ea 中斷允許總控制位 ea 0中斷總禁止 禁止所有中斷 即不響應任何中斷請求 ea 1中斷總允許 總允許后中斷的禁止或允許由各中斷源的中斷允許控制位進行設置 通過設置相關(guān)寄存器 達到控制中斷工作的目的 一 中斷控制寄存器 9 4 es 串行中斷允許控制位es 0禁止串行中斷es 1允許串行中斷 結(jié)論 mcs 51通過中斷允許控制寄存器對中斷的允許實行兩級控制 以ea位作為總控制位 以各中斷源的中斷允許位作為分控制位 mcs 51單片機復位后 ie 00h 因此中斷系統(tǒng)處于禁止狀態(tài) 單片機在中斷響應后不會自動關(guān)閉中斷 因此在轉(zhuǎn)中斷服務程序后 應使用有關(guān)指令禁止中斷 即以軟件方式關(guān)閉中斷 3 et0 etl 定時 計數(shù)中斷允許控制位 t0 t1 et0 etl 0禁止定時 或計數(shù) 中斷et0 etl 1允許定時 或計數(shù) 中斷 10 1 ie0 ie1 外部中斷請求標志 硬件自動設置cpu采樣到intx端有效的中斷請求后 iex位由硬件自動置 1 在中斷響應期間 要轉(zhuǎn)向中斷服務程序時 由硬件自動清零 2 定時器控制寄存器tcon寄存器地址為88h 11 2 定時器控制寄存器tcon寄存器地址為88h 4 tr0 tr1 定時器啟動標志位 12 3 串行口控制寄存器scon 只有兩位與中斷有關(guān) 寄存器地址為98h 1 ti 串行口發(fā)送中斷標志位 當cpu將一個數(shù)據(jù)寫入發(fā)送緩沖器時 就啟動發(fā)送 當最后一個數(shù)據(jù)位發(fā)送完后 ti由硬件自動置位 向cpu發(fā)中斷申請 進行中斷服務程序時 ti要由軟件清0 軟件查詢時 ti可作為狀態(tài)位使用 2 ri 串行口接收中斷標志位 cpu接收數(shù)據(jù)時 當接收到最后一個數(shù)據(jù)位后 ri由硬件自動置位 并向cpu發(fā)中斷申請 進行中斷服務程序時 ri要由軟件清0 軟件查詢時 ri可作為狀態(tài)位使用 13 4 中斷優(yōu)先級控制寄存器ip用戶軟件設置寄存器地址為b8h px0 外部中斷0優(yōu)先級設定位pxl 外部中斷l(xiāng)優(yōu)先級設定位pt0 定時中斷0優(yōu)先級設定位ptl 定時中斷l(xiāng)優(yōu)先級設定位ps 串行中斷優(yōu)先級設定位對應位置1 優(yōu)先級為高 置0 優(yōu)先級為低 14 5 中斷優(yōu)先級控制原則和控制邏輯具有兩級優(yōu)先級 其中斷優(yōu)先級的控制原則是 1 低優(yōu)先級中斷請求不能打斷高優(yōu)先級的中斷服務 但高優(yōu)先級中斷可以中斷低優(yōu)先級的中斷服務 從而實現(xiàn)中斷嵌套 2 如果一個中斷請求已被響應 則同級的其他中斷服務將被禁止 即同級不能嵌套 3 如果同級的多個中斷請求同時出現(xiàn) 則按cpu查詢次序確定哪個中斷請求被響應 其查詢次序為 外部中斷0 定時中斷0 外部中斷1 定時中斷1 串行中斷 15 中斷嵌套流程圖 中斷優(yōu)先級 當多個中斷源請求中斷服務 那么cpu響應這些中斷就有一個先后順序 稱之為中斷優(yōu)先級 優(yōu)先級高 則cpu先響應 優(yōu)先級低 則cpu不影響高級中斷 平級 平級 16 8051的中斷系統(tǒng) 17 6 中斷初始化和中斷控制寄存器狀態(tài)邏輯設置 用戶通過tcon scon ie和ip四個控制寄存器來使用中斷系統(tǒng) 這四個控制寄存器都是既可進行字節(jié)尋址又可進行位尋址的 因此對位狀態(tài)的設置既可以使用字節(jié)操作指令又可以使用位操作指令 字節(jié)操作指令 movie 81h ea es et1 ex1 et0 ex0位操作指令 setbeasetbex0 對中斷的使用是在程序初始化時設置的 如果不包括優(yōu)先級控制 外中斷初始化共有3項內(nèi)容 中斷總允許 外中斷允許和中斷方式設定 定時中斷則只有兩項內(nèi)容 沒有中斷方式控制 18 二 中斷響應過程 中斷響應 在滿足cpu中斷響應條件后 cpu對中斷源中斷請求的回答 1 中斷響應基本條件 來中斷 開中斷 a 有中斷源發(fā)出中斷申請 中斷采樣s5p2 中斷查詢s6 中斷采樣 采樣主要針對外中斷請求信號進行 對芯片引腳 int0和 int1進行采樣 電平方式或是脈沖方式 中斷查詢 由cpu測試tcon和scon中各標志位的狀態(tài) 以確定有沒有中斷請求發(fā)生以及是哪一個中斷請求 中斷請求是隨機發(fā)生 要求cpu不停地重復進行查詢 b 中斷總允許位ea 1c 各個中斷源相應的允許位置1 即es et1 ex1 et0 ex0 19 中斷響應可能會被阻止或被延遲 中斷響應是有條件的 并不是查詢到的所有中斷請求都能被立即響應 當存在下列情況之一時 中斷響應被封鎖 a cpu正處在為一個同級或高級的中斷服務中 b 查詢中斷請求的機器周期不是當前指令的最后一個機器周期 即當前指令完成前 不會響應任何中斷請求 c 當前指令是返回指令 ret retl 或訪問ie ip的指令 mcs 5l中斷系統(tǒng)規(guī)定 在執(zhí)行完這些指令之后 還應再繼續(xù)執(zhí)行一條指令 然后才能響應中斷 以上三個條件稱為中斷封鎖條件 20 3 中斷響應過程 如果滿足中斷響應條件且不存在中斷封鎖情況 則cpu進入中斷響應周期 完成以下工作 a 將響應的優(yōu)先級狀態(tài)觸發(fā)器置1 b 由硬件清除相應的中斷請求標志位 tfx iex 但串行中斷標志位必須手動清除 c 執(zhí)行一條由硬件生成的長調(diào)用指令lcall 其格式為lcalladdrl6 這里的addrl6就是程序存儲器中相應中斷區(qū)的入口地址 該指令將自動把斷點地址 當前pc值 壓入堆棧保護起來 然后將對應的中斷入口地址裝入pc 使程序轉(zhuǎn)向該中斷入口地址 去執(zhí)行中斷服務程序 注意 中斷服務程序入口地址僅間隔8個字節(jié) 因此通常在這些入口地址處存放一條無條件轉(zhuǎn)移指令 以控制程序轉(zhuǎn)到用戶安排好的中斷服務程序地址去執(zhí)行 21 4 中斷響應時間 從中斷請求產(chǎn)生到cpu轉(zhuǎn)到相應的中斷服務程序的入口地址所需的時間 1 基本響應時間 3個機器周期 1 查詢中斷標志 1個機器周期 2 轉(zhuǎn)去執(zhí)行中斷服務程序 2個機器周期 2 額外的處理時間 0 5個機器周期 reti指令 2個機器周期 mul或div指令 4個機器周期 b 最長響應時間為8個機器周期查詢中斷標志位時 剛好開始執(zhí)行 ret retl 或訪問ie ip的指令 最長需要2個機器周期 單片機要求必須再繼續(xù)執(zhí)行一條指令 然后才能響應中斷 若再執(zhí)行的最長是4個機器周期的指令 mulab 再加上執(zhí)行l(wèi)call的2個機器周期 總共是8個機器周期 a mcs 51單片機所需最短響應時間為3個機器周期 中斷請求標志位請求占1個機器周期 每個機器周期的s5p2期間查詢中斷標志位 若此時恰好是正在執(zhí)行指令的最后一個機器周期 中斷立即會在該機器周期結(jié)束后被響應 硬件自動產(chǎn)生lcall指令 耗費2個機器周期 因此總共3個機器周期 22 結(jié)論 一般的中斷響應時間都是3 8個機器周期 但是如果出現(xiàn)同級或是高級中斷正在響應或是服務中 則響應時間無法計算 一般應用中 中斷響應時間無需計算 只有在精確定時的應用場合 才需要計入中斷響應時間 保證定時的精確 23 三中斷服務程序中斷都是在運行主程序時發(fā)生的 是主程序的隨機事件 是否允許發(fā)生以及如何發(fā)生 都應該在主程序中預先設置 這就是中斷初始化 中斷服務程序 從入口地址開始執(zhí)行一直到返回指令reti為止 需注意的問題 2 開中斷和關(guān)中斷a 在中斷處理程序中 關(guān)中斷 禁止響應其他一切中斷 無中斷嵌套b 要保持中斷嵌套 就要分別在現(xiàn)場保護和現(xiàn)場恢復前后 加上關(guān)中斷和開中斷 避免現(xiàn)場被破壞 1 現(xiàn)場保護和現(xiàn)場恢復所謂現(xiàn)場 指中斷時刻 單片機存儲單元中的數(shù)據(jù)或狀態(tài) 一定是主程序和中斷程序都用到的且不能被修改的存儲單元 現(xiàn)場保護 位于中斷處理程序首部 push操作數(shù)現(xiàn)場恢復 位于中斷處理程序尾部 pop操作數(shù) 24 org0000hljmpmainorg0013hljmpexint1org0050hexint1 clrea 關(guān)中斷pushaccpushpsw 現(xiàn)場保護setbea 開中斷中斷服務程序clrea 關(guān)中斷poppswpopacc 現(xiàn)場恢復setbea 開中斷reti 中斷返回org0100hmain 25 3 中斷返回中斷處理程序后最后一條指令必須是中斷返回指令reti 執(zhí)行該指令時 a 將 優(yōu)先級狀態(tài)觸發(fā)器 復位為0 b 從堆棧棧頂彈出斷點地址 裝入pc 從而返回主程序 org0000hljmpmainorg0050hmain lcallsub sjmp sub reti 能正確運行嗎 org0000hljmpmainorg0003hljmpsubmain sjmp sub ret 能正確運行嗎 26 中斷服務程序與子程序調(diào)用的區(qū)別 27 四 中斷請求的撤消 中斷響應后 tcon和scon中的中斷請求標志應該及時清除 否則就意味著中斷請求繼續(xù)存在 處理不當 會造成中斷的重復查詢和響應 因此就存在一個中斷請求的撤消的問題 負脈沖方式外部中斷請求的撤消 兩項內(nèi)容 a 外中斷標志位iex清 0 中斷響應后 硬件自動把標志位iex清 0 b 外中斷請求信號的撤消 對于脈沖方式 脈沖信號過后就消失 因此 負脈沖方式外部中斷請求的撤消是自動的 定時中斷請求的撤消 一項內(nèi)容 定時溢出標志位tfx清 0 中斷響應后 硬件自動把標志位tfx清 0 即定時中斷請求的撤消是自動的 28 串行中斷軟件撤消 一項內(nèi)容 標志位清 0 中斷響應后 需要先分別測試ti和ri的狀態(tài) 只有一個串行中斷入口地址 判斷完是接收操作還是發(fā)送操作后 再軟件清 0 低電平方式外部中斷請求的撤消 電平方式外部中斷 中斷標志的撤消是自動的 但中斷請求信號的低電平可能繼續(xù)存在 在以后的機器周期采樣時 又會把清 0 的iex標志位置 1 因此其中斷請求撤消也分為兩項內(nèi)容 a 外中斷標志位iex清 0 中斷響應后 硬件自動把標志位iex清 0 b 外中斷請求信號的撤消 把中斷信號引腳從低電平強制改為高 為此需要增加硬件電路和軟件程序 29 第三節(jié)中斷系統(tǒng)的應用 中斷控制就是對4個與中斷有關(guān)的專用寄存器tcon scon ie和ip進行管理和控制 管理和控制的項目有 1 cpu中斷的開放與關(guān)閉 2 某中斷源中斷請求的允許與禁止 3 各中斷源優(yōu)先級別的設定 4 外部中斷請求的觸發(fā)方式 中斷管理與控制程序一般包含在主程序當中 在中斷響應過程中 斷點的保護是由硬件電路來實現(xiàn)的 用戶在編寫中斷服務程序時 主要需考慮現(xiàn)場的保護與恢復 當存在中斷嵌套時 在保護和恢復現(xiàn)場前要關(guān)中斷 在保護和恢復現(xiàn)場后要根據(jù)需要開中斷 30 中斷服務程序的一般格式 clrea 關(guān)中斷pushpsw pusha 保護現(xiàn)場 setbea 開中斷 中斷服務程序 clrea 關(guān)中斷 popa 恢復現(xiàn)場poppsw setbea 開中斷reti 返回 31 例 硬件電路如圖 通過8051單片機的p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文言文詳解|《資治通鑒·漢紀》《資治通鑒·唐紀》
- 2025年婦圣康茵行業(yè)深度研究報告
- 2025年中國麻滌項目投資可行性研究報告
- 溫州市澤雅水庫增設泄放洞工程環(huán)境影響報告表
- 四種不同香料微膠囊的制備及在煙草中的應用
- 2025幼兒園自然災害防范安全計劃
- 以四氧化三錳制備尖晶石錳酸鋰正極材料及其改性的研究
- 基于用戶體驗的寵物貓犬出行產(chǎn)品設計研究
- 納米淀粉包埋肉桂精油微膠囊的制備及特性研究
- 軌道新開線背景下常規(guī)公交站點客流特征變化及影響因素研究
- 城市園林綠化養(yǎng)護方案
- 人民幣收藏培訓知識
- 籍貫對照表完整版
- 中興基站設備故障處理指導書
- 公路工程地質(zhì)試卷A
- 渤海大學在線自助繳費平臺操作流程
- 2023年山東省大學生朋輩心理輔導技能大賽筆試題庫
- 聯(lián)合利華POSM展策劃案
- 中國石油成品油銷售業(yè)務介紹
- 13-3飛速發(fā)展的通信世界 教案
- 下第四單元 崇尚法治精神 復習學案
評論
0/150
提交評論