版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1第7章 AVR中斷系統(tǒng)與基本應(yīng)用2一、中斷概念n中斷:指計算機(MCU)自動響應(yīng)一個“中斷請求”信號,暫時停止(中斷)了當(dāng)前程 序的執(zhí)行,轉(zhuǎn)而執(zhí)行為外部設(shè)備服務(wù)的程序(中斷服務(wù)程序),并在執(zhí)行完服務(wù)程序后自動 返回原程序執(zhí)行的過程3中斷的優(yōu)點n實現(xiàn)實時處理n實現(xiàn)分時操作,提高了MCU的效率n進行故障處理n待機狀態(tài)的喚醒4中斷處理過程5中斷相關(guān)的概念中斷源n什么可以引起中斷?n有人按了門鈴了n電話鈴響了n你的鬧鐘鬧響了n你燒的水開了n等等諸如此類的事件,我們把可以引起中斷的稱之為中斷源,n專業(yè)術(shù)語:指能夠向指能夠向 MCU 發(fā)出中斷請發(fā)出中斷請求信號的部件和設(shè)備。求信號的部件和設(shè)備。 6中斷相
2、關(guān)的概念中斷源n單片機中也有一些可以引起中斷的事件,如:定時器溢出、外部中斷、串口接收到數(shù)據(jù)等nAVR Mega16 一共有21個中斷源n3個外部中斷 INT0、INT1、INT2n8個定時器中斷n3個串口中斷 RXC、TXC、UDREnSPI、AD、EEPROM、模擬比較、TWI、SPM各一個nRESET中斷7中斷相關(guān)的概念中斷信號n中斷信號是指內(nèi)部或外部中斷源產(chǎn)生的中斷申請信號 n分類如下: 脈沖的上跳沿或下降沿(上升沿觸發(fā)型或下降沿觸發(fā)型) 高電平或低電平(電平觸發(fā)型) 電平的變化(狀態(tài)變化觸發(fā)型) 8中斷相關(guān)的概念中斷向量n中斷源發(fā)出的請求信號被 CPU 檢測到之后,如果單片機的中斷控
3、制系統(tǒng)允許響應(yīng)中斷, CPU 會自動轉(zhuǎn)移,執(zhí)行一個固定的程序空間地址中的指令。這個固定的地址稱作中斷入口地 址,也叫做中斷向量。 9中斷相關(guān)的概念中斷優(yōu)先級n我們正在看書,電話鈴響了,同時又有人按了門鈴,你該先做那樣呢?n如果你正是在等一個很重要的電話,你一般不會去理會門鈴的,而反之,你正在等一個重要的客人,則可能就不會去理會電話了。n如果不是這兩者(即不等電話,也不是等人上門),你可能會按你通常的習(xí)慣去處理。n單片機中也有優(yōu)先級的問題n優(yōu)先級的問題不僅僅發(fā)生在兩個中斷同時產(chǎn)生的情況,也發(fā)生在一個中斷已產(chǎn)生,又有一個中斷產(chǎn)生的情況,n比如你正接電話,有人按門鈴的情況,或你正開門與人交談,又有電
4、話響了情況??紤]一下我們會怎么辦吧。 10中斷相關(guān)的概念中斷優(yōu)先級nAVR M16 21個中斷源的優(yōu)先級向量號向量號程序地程序地址址中斷源中斷源中斷定義中斷定義向量向量號號程序地址程序地址中斷源中斷源中斷定義中斷定義1 1$000 $000 RESET RESET 外部引腳電平引發(fā)的復(fù)位,上電復(fù)位,外部引腳電平引發(fā)的復(fù)位,上電復(fù)位,掉電檢測復(fù)位,看門狗復(fù)位,以及掉電檢測復(fù)位,看門狗復(fù)位,以及JTAG AVR JTAG AVR 復(fù)位復(fù)位1212$016 $016 USART, USART, RXC RXC USARTUSART, Rx Rx 結(jié)束結(jié)束2 2$002 $002 INT0 INT0
5、外部中斷請求外部中斷請求0 0 1313$018 $018 USART, USART, UDRE UDRE USART USART 數(shù)據(jù)寄存器空數(shù)據(jù)寄存器空3 3$004 $004 INT1 INT1 外部中斷請求外部中斷請求1 1 1414$01A $01A USART, USART, TXC TXC USARTUSART, Tx Tx 結(jié)束結(jié)束4 4$006 $006 TIMER2 TIMER2 COMP COMP 定時器定時器/ / 計數(shù)器計數(shù)器2 2 比較匹配比較匹配1515$01C $01C ADC ADC ADC ADC 轉(zhuǎn)換結(jié)束轉(zhuǎn)換結(jié)束5 5$008 $008 TIMER2 TI
6、MER2 OVF OVF 定時器定時器/ / 計數(shù)器計數(shù)器2 2 溢出溢出1616$01E $01E EE_RDY EE_RDY EEPROM EEPROM 就緒就緒6 6$00A $00A TIMER1 TIMER1 CAPT CAPT 定時器定時器/ / 計數(shù)器計數(shù)器1 1 事件捕捉事件捕捉1717$020 $020 ANA_COMP ANA_COMP 模擬比較器模擬比較器7 7$00C $00C TIMER1 TIMER1 COMPA COMPA 定時器定時器/ / 計數(shù)器計數(shù)器1 1 比較匹配比較匹配 A A 1818$022 $022 TWI TWI 兩線串行接口兩線串行接口8 8$
7、00E $00E TIMER1 TIMER1 COMPB COMPB 定時器定時器/ / 計數(shù)器計數(shù)器1 1 比較匹配比較匹配B B 1919$024 $024 INT2 INT2 外部中斷請求外部中斷請求2 2 9 9$010 $010 TIMER1 TIMER1 OVF OVF 定時器定時器/ / 計數(shù)器計數(shù)器1 1 溢出溢出2020$026 $026 TIMER0 TIMER0 COMP COMP 定時器定時器/ / 計數(shù)器計數(shù)器0 0 比較比較匹配匹配1010$012 $012 TIMER0 TIMER0 OVF OVF 定時器定時器/ / 計數(shù)器計數(shù)器0 0 溢出溢出2121$028
8、 $028 SPM_RDY SPM_RDY 保存程序存儲器內(nèi)容就保存程序存儲器內(nèi)容就緒緒1111$014 $014 SPI, STC SPI, STC SPI SPI 串行傳輸結(jié)束串行傳輸結(jié)束中斷相關(guān)的概念中斷屏蔽n非屏蔽中斷n可屏蔽中斷n軟件中斷1112中斷相關(guān)的概念中斷響應(yīng)n當(dāng)有事件產(chǎn)生,進入中斷之前我們必須先記住現(xiàn)在看書的第幾頁了,或拿一個書簽放在當(dāng)前頁的位置,然后去處理不同的事情(因為處理完了,我們還要回來繼續(xù)看書)n電話鈴響我們要到放電話的地方去,門鈴響我們要到門那邊去,也說是不同的中斷,我們要在不同的地點處理,而這個地點通常還是固定的。n每個中斷產(chǎn)生后都到一個固定的地方去找處理這個
9、中斷的程序13中斷相關(guān)的概念中斷響應(yīng)過程n中斷響應(yīng)可以分為以下幾個步驟:n1、保護斷點,即保存下一將要執(zhí)行的指令的地址,就是把這個地址送入堆棧。n2、尋找中斷入口,根據(jù)21個不同的中斷源所產(chǎn)生的中斷,查找21個不同的入口地址。在這21個入口地址處存放有中斷處理程序n3、執(zhí)行中斷處理程序。n4、中斷返回:執(zhí)行完中斷指令后,就從中斷處返回到主程序,繼續(xù)執(zhí)行。 14中斷相關(guān)的概念中斷響應(yīng)條件n我們?nèi)丝梢皂憫?yīng)外界的事件,是因為我們有多種“傳感器“眼、耳可以接受不同的信息nAVR工作時,在每個機器周期中都會去查詢一下各個中斷標(biāo)記,看他們是否是“1“,如果是1,就說明有中斷請求了,所以所謂中斷,其實也是查
10、詢,不過是每個周期都查一下而已。n相當(dāng)于你在看書的時候,每一秒鐘都會抬起頭來看一看,查問一下,是不是有人按門鈴,是否有電話15中斷相關(guān)的概念中斷響應(yīng)條件n允許AVR響應(yīng)中斷n使能全局中斷允許位I(SREG)n使能中斷源對應(yīng)中斷控制位n中斷源請求中斷,即置位相應(yīng)的中斷標(biāo)志位n硬件置位、清零n軟件置位、清零AVR中斷控制nAVR一般擁有數(shù)十個中斷源,每個中斷源都有獨立的中斷向量。缺省情況下,AVR的程序存儲區(qū)的最低端,即從Flash地址的0 x0000開始用于放置中斷向量,稱作中斷向量區(qū)。n各種型號的AVR中斷向量區(qū)的大小是不同的,由下式?jīng)Q定:n中斷向量區(qū)大小 = 中斷源個數(shù) * 每個中斷向量占據(jù)
11、字數(shù) 16AVR中斷控制n對于Flash比較小的AVR處理器,每個中斷向量占據(jù)一個字的空間,用于放置一條相對轉(zhuǎn)移指令rjmp(跳轉(zhuǎn)范圍-2k+2k),而Flash較大的AVR,每個中斷向量占據(jù)兩個字空間,用于放置一條絕對轉(zhuǎn)移指令jmp,用于跳轉(zhuǎn)到相應(yīng)中斷的中斷服務(wù)程序的起始地址。 17n系統(tǒng)復(fù)位RESET中斷,也被稱作系統(tǒng)復(fù)位源。RESET是一個特殊的中斷源,是AVR中唯一的不可屏蔽的中斷。當(dāng)ATmega16由于各種原因被復(fù)位后,程序?qū)⑻綇?fù)位向量(缺省為0 x0000)處,在該地址處通常放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到主程序繼續(xù)執(zhí)行18nINT0、INT1和INT2是3個外部中斷源,它們是分別由芯片
12、外部引腳PD2、PD3、PB2上的電平的變化或狀態(tài)觸發(fā)的。通過對控制寄存器MCUCR和控制與狀態(tài)寄存器MCUCSR的配置,外部中斷可以定義為由PD2、PD3、PB2引腳上的電平的下降沿、上升沿、邏輯電平變化,或者低電平(INT2僅支持電平變化的邊沿觸發(fā))觸發(fā),這為外部硬件電路和設(shè)備向AVR申請中斷服務(wù)提供了很大方便。nTIMER2 COMP、TIMER2 OVF、TIMER1 CAPT、TIMER1 COMPA、TIMER1 COMPB、TIMER1 OVF、TIMER0 OVF、TIMER0 COMP這8個中斷是來自于ATmega16內(nèi)部的3個定時計數(shù)器觸發(fā)的內(nèi)部中斷。 19nUSART R
13、XC、USART TXC、USART UDRE是來自于ATmega16內(nèi)部的通用同步/異步串行接收和轉(zhuǎn)發(fā)器USART的3個內(nèi)部中斷。當(dāng)USART串口完整接收一個字節(jié)、成功發(fā)送一個字節(jié)以及發(fā)送數(shù)據(jù)寄存器為空時,這3個中斷會分別被觸發(fā)。n還有其它6個中斷也是來自ATmega16內(nèi)部,它們分別由芯片內(nèi)部集成的各個功能模塊產(chǎn)生,其中:SPI STC為內(nèi)部SPI串行接口傳送結(jié)束中斷,ADC為ADC單元完成一次A/D轉(zhuǎn)換的中斷,EE_RDY是片內(nèi)的EEPROM就緒(對EEPROM的操作完成)中斷,ANA_COMP是由內(nèi)置的模擬比較器輸出引發(fā)的中斷,TWI為內(nèi)部兩線串行接口的中斷,SPM_RDY是對片內(nèi)的F
14、lash寫操作完成中斷。20ATmega16的中斷控制 n中斷優(yōu)先級的確定 n中斷標(biāo)志 nAVR有兩種機制不同的中斷:帶有中斷標(biāo)志的中斷(可掛起)和不帶中斷標(biāo)志的中斷(不能掛起)。n中斷屏蔽與管理 n中斷嵌套 2122中斷相關(guān)的概念A(yù)VR中斷響應(yīng)過程nMCU響應(yīng)中斷時:n將當(dāng)前PC指針指向地址(中斷返回地址)由硬件自動壓入系統(tǒng)堆棧n硬件自動關(guān)閉全局中斷,I位清零n硬件清對應(yīng)中斷標(biāo)志位n執(zhí)行中斷服務(wù)程序(用戶程序)n返回時執(zhí)行RETI中斷返回指令n硬件置位全局中斷In從堆棧彈出返回地址給PC指針23中斷相關(guān)的概念-中斷服務(wù)程序n每個中斷源對應(yīng)一個固定的地址,又稱中斷入口地址n當(dāng)滿足中斷條件時,P
15、C指針自動指向?qū)?yīng)的中斷入口地址,該地址處的指令被執(zhí)行n在中斷入口處放置一條跳轉(zhuǎn)到對應(yīng)中斷服務(wù)程序的指令即可實現(xiàn)中斷服務(wù)程序與中斷源的對應(yīng)24中斷相關(guān)的概念-中斷服務(wù)程序n進入中斷服務(wù)程序,必須先保護中斷現(xiàn)場,保存R0R31及SREG等重要寄存器內(nèi)容,一般是將其壓入堆棧n中斷返回時,要恢復(fù)中斷現(xiàn)場,即將其彈出堆棧n上述幾點,在匯編程序設(shè)計是要特別注意中斷相關(guān)的概念-中斷服務(wù)程序n在CVAVR中,中斷服務(wù)程序必須定義成一個特殊的函數(shù),稱為中斷服務(wù)函數(shù)。中斷服務(wù)函數(shù)按以下格式定義: ninterrupt 中斷向量號 void 函數(shù)名 (void) n n /函數(shù)體 n n其中,關(guān)鍵字interru
16、pt聲明了該函數(shù)為中斷服務(wù)函數(shù),用以區(qū)別于一般軟件調(diào)用的函數(shù)。方括號和方括號中的中斷向量號則進一步說明該函數(shù)是哪一個中斷的服務(wù)函數(shù)。由于中斷函數(shù)是MCU響應(yīng)中斷時通過硬件自動調(diào)用,因此中斷函數(shù)的返回值和參數(shù)均為void(不能返回函數(shù)值,以及帶參數(shù))。中斷函數(shù)的命名規(guī)則與一般函數(shù)相同。 25ninterrupt EXT_INT1 void ext_int1_isr(void) / 外部中斷INT1的中斷服務(wù)函數(shù) n n; / 中斷服務(wù)函數(shù) 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中斷相關(guān)的概念-中斷服務(wù)程序n中斷服務(wù)函數(shù)只能在中斷發(fā)生時由硬件自動調(diào)用,不能像其他函數(shù)一樣可以通過軟件調(diào)用。同時,由于程序中不會出現(xiàn)調(diào)用語句,因此中斷服務(wù)函數(shù)只需要定義語句,不需要進行說明nCVAVR在缺省方式下,在生成中斷服務(wù)函數(shù)時,會自動把R0、 R1、 R15、 R22、 R23、 R24、
18、R25、 R26、 R27、 R30、 R31、SREG,以及用戶程序中使用的所有通用寄存器保護起來。如果用戶要編寫效率更高或特殊的中斷服務(wù)程序,可以采用關(guān)閉編譯系統(tǒng)的自動產(chǎn)生中斷現(xiàn)場保護和恢復(fù)代碼功能,嵌入?yún)R編代碼等方式自己編寫相關(guān)的程序。此時需要程序員對CVAVR開發(fā)環(huán)境有更深的了解和掌握,并具備較高的軟件設(shè)計能力。讀者可以通過下面一個簡單的例子,體會如何在CVAVR中編寫效率更高的中斷程序。 2829中斷相關(guān)的概念-中斷服務(wù)程序n在ICC AVR中,可以通過一下語句定義一個中斷服務(wù)程序,并自動完成現(xiàn)場保護#pragma interrupt_handle :如:#pragma interr
19、upt_handler timer0_ovf_isr:iv_TIMER0_OVFvoid timer0_ovf_isr(void) TCNT0 = tcount;30中斷相關(guān)的概念-AVR外部中斷nM16 有3個外部中斷 INT0、INT1和INT2n對應(yīng)PD2、PD3和PB2n只要使能外部中斷,對應(yīng)引腳的電平變化就會引起中斷31中斷相關(guān)的概念-AVR外部中斷n工作模式n低電平觸發(fā)模式n電平變化觸發(fā)模式n下降沿觸發(fā)模式n上升沿觸發(fā)模式中斷相關(guān)的概念-AVR外部中斷n低電平觸發(fā)是不帶中斷標(biāo)志類型的,即只要中斷輸入引腳PD2或PD3保持低電平,那么將一直會產(chǎn)生中斷申請nMCU對INT0和INT1的
20、引腳上的上升沿或下降沿變化的識別(觸發(fā)),需要I/O時鐘信號的存在(由I/O時鐘同步檢測),屬于同步邊沿觸發(fā)的中斷類型。n MCU對INT2的引腳上的上升沿或下降沿變化的識別(觸發(fā)),以及低電平的識別(觸發(fā))是通過異步方式檢測的,不需要I/O時鐘信號的存在。因此,這類觸發(fā)類型的中斷經(jīng)常作為外部喚醒源,用于將處在Idle休眠模式,以及處在各種其它休眠模式的MCU喚醒。這是由于除了在空閑(Idel)模式時,I/O時鐘信號還保持繼續(xù)工作,在其它各種休眠模式下,I/O時鐘信號均是處在暫停狀態(tài)的。 32n如果使用低電平觸發(fā)方式的中斷作為喚醒源,將MCU從掉電模式(Power-down)中喚醒時,電平拉低
21、后仍需要維持一段時間才能將MCU喚醒,這是為了提高了MCU的抗噪性能。拉低的觸發(fā)電平將由看門狗的時鐘信號采樣兩次(在通常的5V電源和25時,看門狗的時鐘周期為1s)。如果電平拉低保持2次采樣周期的時間,或者一直保持到MCU啟動延時(start-up time)過程之后,MCU將被喚醒并進入中斷服務(wù)。如果該電平的保持時間能夠滿足看門狗時鐘的兩次采樣,但在啟動延時(start-up time)過程完成之前就消失了,那么MCU仍將被喚醒,但不會觸發(fā)中斷進入中斷服務(wù)程序。所以,為了保證既能將MCU喚醒,又能觸發(fā)中斷,中斷觸發(fā)電平必須維持足夠長的時間。33n如果設(shè)置了允許響應(yīng)外部中斷的請求,那么即便是引
22、腳PD2、PD3、PB2設(shè)置為輸出方式工作,引腳上的電平變化也會產(chǎn)生外部中斷觸發(fā)請求。這一特性為用戶提供了使用軟件產(chǎn)生中斷的途徑。3435AVR外部中斷方式選擇nMCU 控制寄存器 INT0、INT1ISCx1 ISCx1 ISCx0 ISCx0 說明說明0 0 INTx 為低電平時產(chǎn)生中斷請求為低電平時產(chǎn)生中斷請求0 1 INTx引腳上任意的邏輯電平變化都將引發(fā)中斷引腳上任意的邏輯電平變化都將引發(fā)中斷1 0 INTx 的下降沿產(chǎn)生異步中斷請求的下降沿產(chǎn)生異步中斷請求1 1 INTx 的上升沿產(chǎn)生異步中斷請求的上升沿產(chǎn)生異步中斷請求nMCU對INT0、INT1引腳上電平值的采樣在邊沿檢測前。如
23、果選擇脈沖邊沿觸發(fā)或電平變化中斷的方式,那么在INT0、INT1引腳上的一個脈寬大于一個時鐘周期的脈沖變化將觸發(fā)中斷,過短的脈沖則不能保證觸發(fā)中斷。如果選擇低電平觸發(fā)中斷,那么低電平必須保持到當(dāng)前指令執(zhí)行完成才觸發(fā)中斷。如果是低電平觸發(fā)方式的話,中斷請求將一直保持到引腳上的低電平消失為止。 3637AVR外部中斷方式選擇nMCU 控制與狀態(tài)寄存器INT2ISC2 ISC2 說明說明0 INT2下降沿產(chǎn)生中斷請求下降沿產(chǎn)生中斷請求1 INT2上升沿產(chǎn)生中斷請求上升沿產(chǎn)生中斷請求38AVR外部中斷方式選擇nINT0、INT1若工作在邊沿觸發(fā)模式,要求IO時鐘工作nINT0、INT1若工作在低電平觸發(fā)模式,只要外部低電平存在,就一直處于觸發(fā)狀態(tài)nINT2是異步邊沿觸發(fā),不要求IO時鐘,但脈沖最小寬度不能小于50nS39AVR外部中斷中斷使能n外部中斷控制通用中斷控制寄存器nGICR的INTx置位為允許INTx中斷nGICR的INTx清零為禁止INTx中斷40AVR外部中斷中斷請求標(biāo)志位n外部中斷產(chǎn)生時,硬件自動置位對應(yīng)的中斷請求標(biāo)志位n中斷響應(yīng)時,硬件自動清除中斷請求標(biāo)志位n中斷請求標(biāo)志位可以通過軟件寫“1”實現(xiàn)清零n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人財產(chǎn)抵押借款簡易協(xié)議文本版A版
- 二零二四全新石灰石環(huán)保綜合利用合同3篇
- 2024版特種設(shè)備吊裝運輸合同3篇
- 個人房產(chǎn)買賣規(guī)范協(xié)議2024版A版
- 2024年04月中國建設(shè)銀行北京市分行度社會招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年農(nóng)業(yè)科技推廣合同會簽紀要3篇
- 2024版輪胎承包合同協(xié)議書
- 二零二五年度物流并購保密及市場共享協(xié)議2篇
- 專業(yè)節(jié)電器產(chǎn)品銷售協(xié)議規(guī)范2024版A版
- 2024年03月貴州貴州銀行六盤水分行招考筆試歷年參考題庫附帶答案詳解
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓(xùn)
- 家庭教養(yǎng)方式問卷(含評分標(biāo)準(zhǔn))
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設(shè)計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論