




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第7章 AVR中斷系統與基本應用2一、中斷概念n中斷:指計算機(MCU)自動響應一個“中斷請求”信號,暫時停止(中斷)了當前程 序的執行,轉而執行為外部設備服務的程序(中斷服務程序),并在執行完服務程序后自動 返回原程序執行的過程3中斷的優點n實現實時處理n實現分時操作,提高了MCU的效率n進行故障處理n待機狀態的喚醒4中斷處理過程5中斷相關的概念中斷源n什么可以引起中斷?n有人按了門鈴了n電話鈴響了n你的鬧鐘鬧響了n你燒的水開了n等等諸如此類的事件,我們把可以引起中斷的稱之為中斷源,n專業術語:指能夠向指能夠向 MCU 發出中斷請發出中斷請求信號的部件和設備。求信號的部件和設備。 6中斷相
2、關的概念中斷源n單片機中也有一些可以引起中斷的事件,如:定時器溢出、外部中斷、串口接收到數據等nAVR Mega16 一共有21個中斷源n3個外部中斷 INT0、INT1、INT2n8個定時器中斷n3個串口中斷 RXC、TXC、UDREnSPI、AD、EEPROM、模擬比較、TWI、SPM各一個nRESET中斷7中斷相關的概念中斷信號n中斷信號是指內部或外部中斷源產生的中斷申請信號 n分類如下: 脈沖的上跳沿或下降沿(上升沿觸發型或下降沿觸發型) 高電平或低電平(電平觸發型) 電平的變化(狀態變化觸發型) 8中斷相關的概念中斷向量n中斷源發出的請求信號被 CPU 檢測到之后,如果單片機的中斷控
3、制系統允許響應中斷, CPU 會自動轉移,執行一個固定的程序空間地址中的指令。這個固定的地址稱作中斷入口地 址,也叫做中斷向量。 9中斷相關的概念中斷優先級n我們正在看書,電話鈴響了,同時又有人按了門鈴,你該先做那樣呢?n如果你正是在等一個很重要的電話,你一般不會去理會門鈴的,而反之,你正在等一個重要的客人,則可能就不會去理會電話了。n如果不是這兩者(即不等電話,也不是等人上門),你可能會按你通常的習慣去處理。n單片機中也有優先級的問題n優先級的問題不僅僅發生在兩個中斷同時產生的情況,也發生在一個中斷已產生,又有一個中斷產生的情況,n比如你正接電話,有人按門鈴的情況,或你正開門與人交談,又有電
4、話響了情況。考慮一下我們會怎么辦吧。 10中斷相關的概念中斷優先級nAVR M16 21個中斷源的優先級向量號向量號程序地程序地址址中斷源中斷源中斷定義中斷定義向量向量號號程序地址程序地址中斷源中斷源中斷定義中斷定義1 1$000 $000 RESET RESET 外部引腳電平引發的復位,上電復位,外部引腳電平引發的復位,上電復位,掉電檢測復位,看門狗復位,以及掉電檢測復位,看門狗復位,以及JTAG AVR JTAG AVR 復位復位1212$016 $016 USART, USART, RXC RXC USARTUSART, Rx Rx 結束結束2 2$002 $002 INT0 INT0
5、外部中斷請求外部中斷請求0 0 1313$018 $018 USART, USART, UDRE UDRE USART USART 數據寄存器空數據寄存器空3 3$004 $004 INT1 INT1 外部中斷請求外部中斷請求1 1 1414$01A $01A USART, USART, TXC TXC USARTUSART, Tx Tx 結束結束4 4$006 $006 TIMER2 TIMER2 COMP COMP 定時器定時器/ / 計數器計數器2 2 比較匹配比較匹配1515$01C $01C ADC ADC ADC ADC 轉換結束轉換結束5 5$008 $008 TIMER2 TI
6、MER2 OVF OVF 定時器定時器/ / 計數器計數器2 2 溢出溢出1616$01E $01E EE_RDY EE_RDY EEPROM EEPROM 就緒就緒6 6$00A $00A TIMER1 TIMER1 CAPT CAPT 定時器定時器/ / 計數器計數器1 1 事件捕捉事件捕捉1717$020 $020 ANA_COMP ANA_COMP 模擬比較器模擬比較器7 7$00C $00C TIMER1 TIMER1 COMPA COMPA 定時器定時器/ / 計數器計數器1 1 比較匹配比較匹配 A A 1818$022 $022 TWI TWI 兩線串行接口兩線串行接口8 8$
7、00E $00E TIMER1 TIMER1 COMPB COMPB 定時器定時器/ / 計數器計數器1 1 比較匹配比較匹配B B 1919$024 $024 INT2 INT2 外部中斷請求外部中斷請求2 2 9 9$010 $010 TIMER1 TIMER1 OVF OVF 定時器定時器/ / 計數器計數器1 1 溢出溢出2020$026 $026 TIMER0 TIMER0 COMP COMP 定時器定時器/ / 計數器計數器0 0 比較比較匹配匹配1010$012 $012 TIMER0 TIMER0 OVF OVF 定時器定時器/ / 計數器計數器0 0 溢出溢出2121$028
8、 $028 SPM_RDY SPM_RDY 保存程序存儲器內容就保存程序存儲器內容就緒緒1111$014 $014 SPI, STC SPI, STC SPI SPI 串行傳輸結束串行傳輸結束中斷相關的概念中斷屏蔽n非屏蔽中斷n可屏蔽中斷n軟件中斷1112中斷相關的概念中斷響應n當有事件產生,進入中斷之前我們必須先記住現在看書的第幾頁了,或拿一個書簽放在當前頁的位置,然后去處理不同的事情(因為處理完了,我們還要回來繼續看書)n電話鈴響我們要到放電話的地方去,門鈴響我們要到門那邊去,也說是不同的中斷,我們要在不同的地點處理,而這個地點通常還是固定的。n每個中斷產生后都到一個固定的地方去找處理這個
9、中斷的程序13中斷相關的概念中斷響應過程n中斷響應可以分為以下幾個步驟:n1、保護斷點,即保存下一將要執行的指令的地址,就是把這個地址送入堆棧。n2、尋找中斷入口,根據21個不同的中斷源所產生的中斷,查找21個不同的入口地址。在這21個入口地址處存放有中斷處理程序n3、執行中斷處理程序。n4、中斷返回:執行完中斷指令后,就從中斷處返回到主程序,繼續執行。 14中斷相關的概念中斷響應條件n我們人可以響應外界的事件,是因為我們有多種“傳感器“眼、耳可以接受不同的信息nAVR工作時,在每個機器周期中都會去查詢一下各個中斷標記,看他們是否是“1“,如果是1,就說明有中斷請求了,所以所謂中斷,其實也是查
10、詢,不過是每個周期都查一下而已。n相當于你在看書的時候,每一秒鐘都會抬起頭來看一看,查問一下,是不是有人按門鈴,是否有電話15中斷相關的概念中斷響應條件n允許AVR響應中斷n使能全局中斷允許位I(SREG)n使能中斷源對應中斷控制位n中斷源請求中斷,即置位相應的中斷標志位n硬件置位、清零n軟件置位、清零AVR中斷控制nAVR一般擁有數十個中斷源,每個中斷源都有獨立的中斷向量。缺省情況下,AVR的程序存儲區的最低端,即從Flash地址的0 x0000開始用于放置中斷向量,稱作中斷向量區。n各種型號的AVR中斷向量區的大小是不同的,由下式決定:n中斷向量區大小 = 中斷源個數 * 每個中斷向量占據
11、字數 16AVR中斷控制n對于Flash比較小的AVR處理器,每個中斷向量占據一個字的空間,用于放置一條相對轉移指令rjmp(跳轉范圍-2k+2k),而Flash較大的AVR,每個中斷向量占據兩個字空間,用于放置一條絕對轉移指令jmp,用于跳轉到相應中斷的中斷服務程序的起始地址。 17n系統復位RESET中斷,也被稱作系統復位源。RESET是一個特殊的中斷源,是AVR中唯一的不可屏蔽的中斷。當ATmega16由于各種原因被復位后,程序將跳到復位向量(缺省為0 x0000)處,在該地址處通常放置一條跳轉指令,跳轉到主程序繼續執行18nINT0、INT1和INT2是3個外部中斷源,它們是分別由芯片
12、外部引腳PD2、PD3、PB2上的電平的變化或狀態觸發的。通過對控制寄存器MCUCR和控制與狀態寄存器MCUCSR的配置,外部中斷可以定義為由PD2、PD3、PB2引腳上的電平的下降沿、上升沿、邏輯電平變化,或者低電平(INT2僅支持電平變化的邊沿觸發)觸發,這為外部硬件電路和設備向AVR申請中斷服務提供了很大方便。nTIMER2 COMP、TIMER2 OVF、TIMER1 CAPT、TIMER1 COMPA、TIMER1 COMPB、TIMER1 OVF、TIMER0 OVF、TIMER0 COMP這8個中斷是來自于ATmega16內部的3個定時計數器觸發的內部中斷。 19nUSART R
13、XC、USART TXC、USART UDRE是來自于ATmega16內部的通用同步/異步串行接收和轉發器USART的3個內部中斷。當USART串口完整接收一個字節、成功發送一個字節以及發送數據寄存器為空時,這3個中斷會分別被觸發。n還有其它6個中斷也是來自ATmega16內部,它們分別由芯片內部集成的各個功能模塊產生,其中:SPI STC為內部SPI串行接口傳送結束中斷,ADC為ADC單元完成一次A/D轉換的中斷,EE_RDY是片內的EEPROM就緒(對EEPROM的操作完成)中斷,ANA_COMP是由內置的模擬比較器輸出引發的中斷,TWI為內部兩線串行接口的中斷,SPM_RDY是對片內的F
14、lash寫操作完成中斷。20ATmega16的中斷控制 n中斷優先級的確定 n中斷標志 nAVR有兩種機制不同的中斷:帶有中斷標志的中斷(可掛起)和不帶中斷標志的中斷(不能掛起)。n中斷屏蔽與管理 n中斷嵌套 2122中斷相關的概念AVR中斷響應過程nMCU響應中斷時:n將當前PC指針指向地址(中斷返回地址)由硬件自動壓入系統堆棧n硬件自動關閉全局中斷,I位清零n硬件清對應中斷標志位n執行中斷服務程序(用戶程序)n返回時執行RETI中斷返回指令n硬件置位全局中斷In從堆棧彈出返回地址給PC指針23中斷相關的概念-中斷服務程序n每個中斷源對應一個固定的地址,又稱中斷入口地址n當滿足中斷條件時,P
15、C指針自動指向對應的中斷入口地址,該地址處的指令被執行n在中斷入口處放置一條跳轉到對應中斷服務程序的指令即可實現中斷服務程序與中斷源的對應24中斷相關的概念-中斷服務程序n進入中斷服務程序,必須先保護中斷現場,保存R0R31及SREG等重要寄存器內容,一般是將其壓入堆棧n中斷返回時,要恢復中斷現場,即將其彈出堆棧n上述幾點,在匯編程序設計是要特別注意中斷相關的概念-中斷服務程序n在CVAVR中,中斷服務程序必須定義成一個特殊的函數,稱為中斷服務函數。中斷服務函數按以下格式定義: ninterrupt 中斷向量號 void 函數名 (void) n n /函數體 n n其中,關鍵字interru
16、pt聲明了該函數為中斷服務函數,用以區別于一般軟件調用的函數。方括號和方括號中的中斷向量號則進一步說明該函數是哪一個中斷的服務函數。由于中斷函數是MCU響應中斷時通過硬件自動調用,因此中斷函數的返回值和參數均為void(不能返回函數值,以及帶參數)。中斷函數的命名規則與一般函數相同。 25ninterrupt EXT_INT1 void ext_int1_isr(void) / 外部中斷INT1的中斷服務函數 n n; / 中斷服務函數 n n/ 主程序 nvoid main(void) n n; n/ 中斷源的初始化 nGICR|=0 x80; / External Interrupt(s)
17、 initialization nMCUCR=0 x08; / INT0: Off nMCUCSR=0 x00; / INT1: On nGIFR=0 x80; / INT2: Off 26n/ 開放全局中斷 n#asm(sei) n/ 正常程序開始 nwhile (1) n n; n; n 27中斷相關的概念-中斷服務程序n中斷服務函數只能在中斷發生時由硬件自動調用,不能像其他函數一樣可以通過軟件調用。同時,由于程序中不會出現調用語句,因此中斷服務函數只需要定義語句,不需要進行說明nCVAVR在缺省方式下,在生成中斷服務函數時,會自動把R0、 R1、 R15、 R22、 R23、 R24、
18、R25、 R26、 R27、 R30、 R31、SREG,以及用戶程序中使用的所有通用寄存器保護起來。如果用戶要編寫效率更高或特殊的中斷服務程序,可以采用關閉編譯系統的自動產生中斷現場保護和恢復代碼功能,嵌入匯編代碼等方式自己編寫相關的程序。此時需要程序員對CVAVR開發環境有更深的了解和掌握,并具備較高的軟件設計能力。讀者可以通過下面一個簡單的例子,體會如何在CVAVR中編寫效率更高的中斷程序。 2829中斷相關的概念-中斷服務程序n在ICC AVR中,可以通過一下語句定義一個中斷服務程序,并自動完成現場保護#pragma interrupt_handle :如:#pragma interr
19、upt_handler timer0_ovf_isr:iv_TIMER0_OVFvoid timer0_ovf_isr(void) TCNT0 = tcount;30中斷相關的概念-AVR外部中斷nM16 有3個外部中斷 INT0、INT1和INT2n對應PD2、PD3和PB2n只要使能外部中斷,對應引腳的電平變化就會引起中斷31中斷相關的概念-AVR外部中斷n工作模式n低電平觸發模式n電平變化觸發模式n下降沿觸發模式n上升沿觸發模式中斷相關的概念-AVR外部中斷n低電平觸發是不帶中斷標志類型的,即只要中斷輸入引腳PD2或PD3保持低電平,那么將一直會產生中斷申請nMCU對INT0和INT1的
20、引腳上的上升沿或下降沿變化的識別(觸發),需要I/O時鐘信號的存在(由I/O時鐘同步檢測),屬于同步邊沿觸發的中斷類型。n MCU對INT2的引腳上的上升沿或下降沿變化的識別(觸發),以及低電平的識別(觸發)是通過異步方式檢測的,不需要I/O時鐘信號的存在。因此,這類觸發類型的中斷經常作為外部喚醒源,用于將處在Idle休眠模式,以及處在各種其它休眠模式的MCU喚醒。這是由于除了在空閑(Idel)模式時,I/O時鐘信號還保持繼續工作,在其它各種休眠模式下,I/O時鐘信號均是處在暫停狀態的。 32n如果使用低電平觸發方式的中斷作為喚醒源,將MCU從掉電模式(Power-down)中喚醒時,電平拉低
21、后仍需要維持一段時間才能將MCU喚醒,這是為了提高了MCU的抗噪性能。拉低的觸發電平將由看門狗的時鐘信號采樣兩次(在通常的5V電源和25時,看門狗的時鐘周期為1s)。如果電平拉低保持2次采樣周期的時間,或者一直保持到MCU啟動延時(start-up time)過程之后,MCU將被喚醒并進入中斷服務。如果該電平的保持時間能夠滿足看門狗時鐘的兩次采樣,但在啟動延時(start-up time)過程完成之前就消失了,那么MCU仍將被喚醒,但不會觸發中斷進入中斷服務程序。所以,為了保證既能將MCU喚醒,又能觸發中斷,中斷觸發電平必須維持足夠長的時間。33n如果設置了允許響應外部中斷的請求,那么即便是引
22、腳PD2、PD3、PB2設置為輸出方式工作,引腳上的電平變化也會產生外部中斷觸發請求。這一特性為用戶提供了使用軟件產生中斷的途徑。3435AVR外部中斷方式選擇nMCU 控制寄存器 INT0、INT1ISCx1 ISCx1 ISCx0 ISCx0 說明說明0 0 INTx 為低電平時產生中斷請求為低電平時產生中斷請求0 1 INTx引腳上任意的邏輯電平變化都將引發中斷引腳上任意的邏輯電平變化都將引發中斷1 0 INTx 的下降沿產生異步中斷請求的下降沿產生異步中斷請求1 1 INTx 的上升沿產生異步中斷請求的上升沿產生異步中斷請求nMCU對INT0、INT1引腳上電平值的采樣在邊沿檢測前。如
23、果選擇脈沖邊沿觸發或電平變化中斷的方式,那么在INT0、INT1引腳上的一個脈寬大于一個時鐘周期的脈沖變化將觸發中斷,過短的脈沖則不能保證觸發中斷。如果選擇低電平觸發中斷,那么低電平必須保持到當前指令執行完成才觸發中斷。如果是低電平觸發方式的話,中斷請求將一直保持到引腳上的低電平消失為止。 3637AVR外部中斷方式選擇nMCU 控制與狀態寄存器INT2ISC2 ISC2 說明說明0 INT2下降沿產生中斷請求下降沿產生中斷請求1 INT2上升沿產生中斷請求上升沿產生中斷請求38AVR外部中斷方式選擇nINT0、INT1若工作在邊沿觸發模式,要求IO時鐘工作nINT0、INT1若工作在低電平觸發模式,只要外部低電平存在,就一直處于觸發狀態nINT2是異步邊沿觸發,不要求IO時鐘,但脈沖最小寬度不能小于50nS39AVR外
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微生物檢測與公眾健康研究試題及答案
- 項目管理資格考試參考資料試題及答案
- 項目隨機事件應對相關題目及答案
- 項目管理認證考試難度試題及答案
- 初中政治共建“一帶一路”倡議:進展貢獻與展望素材
- 關注項目管理專業人士的職業素養提升試題及答案
- 理解2025年證券從業資格證考試的評估標準試題及答案
- 2025年證券從業資格證考試觀點探討與試題答案
- 證券從業資格分析與解題試題及答案
- 理解不同行業投資的特點試題及答案
- GB/T 40090-2021儲能電站運行維護規程
- 產業經濟學教材(第三版) 王俊豪14.產業結構政策
- 《智慧城市概論》課程教學大綱
- 2023年河南測繪職業學院單招綜合素質考試筆試題庫及答案解析
- 無機保溫砂漿外墻外保溫系統施工工藝課件
- 產品追溯記錄表
- 高三二輪復習:產業轉移以富士康的企業轉移為例課件
- 政府信息資源管理
- 中小微企業劃型證明
- 西南交大區段站工作組織課程設計2018
- 《監察機關監督執法工作規定》測試題試題含答案
評論
0/150
提交評論