AVR單片機(jī)新手入門必看ppt教程6ppt課件_第1頁
AVR單片機(jī)新手入門必看ppt教程6ppt課件_第2頁
AVR單片機(jī)新手入門必看ppt教程6ppt課件_第3頁
AVR單片機(jī)新手入門必看ppt教程6ppt課件_第4頁
AVR單片機(jī)新手入門必看ppt教程6ppt課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、祝賀他:選擇了正確的AVR學(xué)習(xí)資料ATmega16的中斷系統(tǒng) ATmega16的中斷源和中斷向量 AVR普通擁有數(shù)十個中斷源,每個中斷源都有獨(dú)立的中斷向量。 AVR的程序存儲區(qū)的最低端,即從Flash地址的0 x0000開場用于放置中斷向量,稱作中斷向量區(qū)。 各種型號的AVR中斷向量區(qū)的大小是不同的,由下式?jīng)Q議:中斷向量區(qū)大小 = 中斷源個數(shù) 每個中斷向量占據(jù)字?jǐn)?shù) AVR的21個中斷中,包含1個非屏蔽中斷RESET3個外部中斷INT0、INT1、INT2和17個內(nèi)部中斷, .1.外部中斷 INT0、INT1和INT2是3個外部中斷源,它們是分別由芯片外部引腳PD2、PD3、PB2上的電平的變化

2、或形狀觸發(fā)的。經(jīng)過對控制存放器MCUCR和控制與形狀存放器MCUCSR的配置,外部中斷可以定義為由PD2、PD3、PB2引腳上的電平的下降沿、上升沿、邏輯電平變化,或者低電平INT2僅支持電平變化的邊沿觸發(fā)觸發(fā)。.3個定時計數(shù)器觸發(fā)的內(nèi)部中斷 MER2 COMP TIMER2 OVF 定時溢出2TIMER1 CAPT 撲捉溢出1TIMER1 COMPA 定時比較ATIMER1 COMPB 定時比較BTIMER1 OVF 定時溢出2TIMER0 OVF 定時溢出0TIMER0 COMP 定時比較0同步/異步串行接納和轉(zhuǎn)發(fā)器USART的內(nèi)部中斷USART RXC 接納一個字節(jié)USART TXC 發(fā)

3、送一個字節(jié)USART UDRE 發(fā)送數(shù)據(jù)存放器為空 .其它內(nèi)部中斷SPI STC為內(nèi)部SPI串行接口傳送終了中斷ADC為ADC單元完成一次A/D轉(zhuǎn)換的中斷EE_RDY是片內(nèi)的EEPROM就緒對EEPROM的操作完成中斷ANA_COMP是由內(nèi)置的模擬比較器輸出引發(fā)的中斷TWI為內(nèi)部兩線串行接口的中斷SPM_RDY是對片內(nèi)的Flash寫操作完成中斷.ATmega16的中斷控制中斷優(yōu)先級確實定1.在AVR單片機(jī)中,一個中斷在中斷向量區(qū)中的位置決議了 它的優(yōu)先級,位于低地址的中斷優(yōu)先級高于位于高地址的中斷。2AVR單片機(jī)采用固定的硬件優(yōu)先級方式,不支持經(jīng)過軟件對中斷優(yōu)先級的重新設(shè)定。 AVR有兩種機(jī)制

4、不同的中斷:帶有中斷標(biāo)志的中斷可掛起不帶中斷標(biāo)志的中斷不能掛起。中斷標(biāo)志在AVR中,大多數(shù)的中斷都屬于帶中斷標(biāo)志的中斷。 .中斷標(biāo)志概念 每個中斷源在其I/O空間存放器中具有本人的一個中斷標(biāo)志位。AVR的硬件系統(tǒng)在每個時鐘周期內(nèi)都會檢測接受外部內(nèi)部中斷源的中斷條件。一旦中斷條件滿足,AVR的硬件就會將置位相應(yīng)的中斷標(biāo)志位置為“1,表示向MCU提起中斷懇求。中斷標(biāo)志去除中斷標(biāo)志位普通在MCU呼應(yīng)該中斷時,由硬件自動去除,或在中斷效力程序中經(jīng)過讀/寫專門數(shù)據(jù)存放器的方式自動去除。中斷標(biāo)志位除了由硬件自動去除外也可以運(yùn)用軟件指令去除,留意:如用軟件方法去除,去除的方法是對其寫“1。 不帶不設(shè)置中斷標(biāo)

5、志的中斷:如配置為低電平觸發(fā)的外部中斷即為此類型的中斷低電平中斷的重要運(yùn)用是喚醒處于休眠任務(wù)方式的MCU。 .三、中斷屏蔽與管理 為全局中斷允許控制位:中斷允許的總控制位I標(biāo)志存放器SREG中的I標(biāo)志位SREG.7每一個中斷源都設(shè)置了獨(dú)立的中斷允許位 AVR對中斷采用兩級控制方式。這些中斷允許位分散位于各中斷源所屬模塊的控制存放器中。AVR呼應(yīng)一個可屏蔽中斷源假定為A中斷的中斷的條件是:1.呼應(yīng)A中斷 = 全局中斷允許標(biāo)志 AND 中斷A允許標(biāo)志 AND 中斷A標(biāo)志2.AVR復(fù)位后,各個中斷允許位以及全局中斷允許位均被清零,這保證了程序在開場執(zhí)行時普通程序開頭是對芯片內(nèi)部以及外圍系統(tǒng)的初始化配

6、置不會遭到中斷的干擾。3.在AVR復(fù)位后的用戶初始化程序中,需求先對需求運(yùn)用的中斷源進(jìn)展必要的配置。待系統(tǒng)初始化過程終了后再置位I,使系統(tǒng)進(jìn)入正常的任務(wù)形狀,開場呼應(yīng)中斷懇求。.由于AVR在呼應(yīng)一個中斷的過程中經(jīng)過硬件將I標(biāo)志位自動清零,這樣就阻止了MCU呼應(yīng)其它中斷。因此通常情況下,AVR是不能自動實現(xiàn)中斷嵌套的。如要系統(tǒng)中必需求實現(xiàn)中斷嵌套的運(yùn)用,用戶可在中斷效力程序中運(yùn)用指令將全局中斷允許位開放,經(jīng)過間接的方式實現(xiàn)中斷的嵌套處置。四、中斷嵌套 .外部中斷觸發(fā)方式和特點(diǎn) INT0、INT1、INT2的中斷觸發(fā)方式取決于用戶程序?qū)CU控制存放器MCUCR以及MCU控制與形狀存放器MCUCS

7、R的設(shè)定。其中,INT0和INT1支持4種中斷觸發(fā)方式,INT2支持2種。 恣意電平變化觸發(fā)表示只需引腳上有邏輯電平的變化就會產(chǎn)生中斷懇求不論是上升沿還是下降沿都引起中斷觸發(fā) .4種觸發(fā)方式中,還有以下的一些不同的特點(diǎn):低電平觸發(fā)是不帶中斷標(biāo)志類型的,即只需中斷輸入引腳PD2或PD3堅持低電平,那么將不斷會產(chǎn)生中斷懇求。2.MCU對INT0和INT1的引腳上的上升沿或下降沿變化的識別觸發(fā),需求I/O時鐘信號的存在由I/O時鐘同步檢測,屬于同步邊沿觸發(fā)的中斷類型。3.MCU對INT2的引腳上的上升沿或下降沿變化的識別觸發(fā),以及低電平的識別觸發(fā)是經(jīng)過異步方式檢測的,不需求I/O時鐘信號的存在。因此

8、,這類觸發(fā)類型的中斷經(jīng)常作為外部喚醒源,用于將處在Idle休眠方式,以及處在各種其它休眠方式的MCU喚醒。這是由于除了在空閑Idel方式時,I/O時鐘信號還堅持繼續(xù)任務(wù),在其它各種休眠方式下,I/O時鐘信號均是處在暫停形狀的。.4.假設(shè)運(yùn)用低電平觸發(fā)方式的中斷作為喚醒源,將MCU從掉電方式Power-down中喚醒時,電平拉低后仍需求維持一段時間才干將MCU喚醒,這是為了提高了MCU的抗噪性能。拉低的觸發(fā)電平將由看門狗的時鐘信號采樣兩次在通常的5V電源和25時,看門狗的時鐘周期為1s。假設(shè)電平拉低堅持2次采樣周期的時間,或者不斷堅持到MCU啟動延時start-up time過程之后,MCU將被

9、喚醒并進(jìn)入中斷效力。假設(shè)該電平的堅持時間可以滿足看門狗時鐘的兩次采樣,但在啟動延時start-up time過程完成之前就消逝了,那么MCU仍將被喚醒,但不會觸發(fā)中斷進(jìn)入中斷效力程序。所以,為了保證既能將MCU喚醒,又能觸發(fā)中斷,中斷觸發(fā)電平必需維持足夠長的時間。5.假設(shè)設(shè)置了允許呼應(yīng)外部中斷的懇求,那么即使是引腳PD2、PD3、PB2設(shè)置為輸出方式任務(wù),引腳上的電平變化也會產(chǎn)生外部中斷觸發(fā)懇求。這一特性為用戶提供了運(yùn)用軟件產(chǎn)生中斷的途徑。.與外部中斷相關(guān)的存放器和標(biāo)志位 在ATmega16中,與外部中斷有關(guān)的存放器有4個,共有11個標(biāo)志位。其作用分別是3個外部中斷各自的中斷標(biāo)志位,中斷允許控

10、制位,和用于定義外部中斷的觸發(fā)類型。 1 MCU中斷方式控制存放器MCUCR MCU控制存放器MCUCR的低4位為INT0ISC01、ISC00和INT1ISC11、ISC10中斷觸發(fā)類型控制位 . MCU對INT0、INT1引腳上電平值的采樣在邊沿檢測前。1.假設(shè)選擇脈沖邊沿觸發(fā)或電平變化中斷的方式,那么在INT0、INT1引腳上的一個脈寬大于一個時鐘周期的脈沖變化將觸發(fā)中斷,過短的脈沖那么不能保證觸發(fā)中斷。2.假設(shè)選擇低電平觸發(fā)中斷,那么低電平必需堅持到當(dāng)前指令執(zhí)行完成才觸發(fā)中斷。假設(shè)是低電平觸發(fā)方式的話,中斷懇求將不斷堅持到引腳上的低電平消逝為止。.2MCU控制和形狀存放器MCUCSR

11、MCU控制和形狀存放器MCUCSR中的第6位ISC2為INT2的中斷觸發(fā)類型控制位 .3通用中斷允許控制存放器 GICR 通用中斷控制存放器GICR的高3位為INT0、INT1和INT2的中斷允許控制位 。GICR存放器中相應(yīng)的中斷允許位被置為“1,當(dāng)外部引腳INT0或INT1、或INT2上的電平變化時,MCU將會呼應(yīng)相應(yīng)的中斷懇求。 .4 通用中斷標(biāo)志存放器GIFR中斷標(biāo)志存放器GIFR的高3位為INT0、INT1和INT2的中斷標(biāo)志位 當(dāng)INT2.0引腳上的有效事件滿足中斷觸發(fā)條件后,INTF2.0位會變成“1。假設(shè)此時SREG存放器中I = 1,以及GICR存放器中的INTn被置為“1,

12、MCU將呼應(yīng)中斷懇求,跳至相應(yīng)的中斷向量處開場執(zhí)行中斷效力程序,同時硬件自動將INTFn標(biāo)志位清零。 用戶可以運(yùn)用指令將INTFn去除,去除的方式是寫邏輯“1到INTFn,將標(biāo)志清零。當(dāng)INT0INT1設(shè)置為低電平觸發(fā)方式時,標(biāo)志位INTF0INTF1一直為“0,這并不意味著不產(chǎn)生中斷懇求,而是低電平觸發(fā)方式是不帶中斷標(biāo)志類型的中斷觸發(fā)。 . 在系統(tǒng)程序的初始化部分中對外部中斷進(jìn)展設(shè)置時定義或改動觸發(fā)方式,應(yīng)先將GICR存放器中該中斷的中斷允許位清零,制止MCU呼應(yīng)該中斷后再設(shè)置ISCn位。 而在開放中斷允許前,普通應(yīng)經(jīng)過向GIFR存放器中的中斷標(biāo)志位INTFn寫入邏輯“1,將該中斷的中斷標(biāo)志

13、位去除,然后開放中斷。這樣可以防止在改動ISCn的過程中誤觸發(fā)中斷。.中斷效力程序的編寫中斷效力程序的編寫編寫中斷效力程序的兩個根本原那么: 1.全面、仔細(xì)思索中斷現(xiàn)場的維護(hù)和恢復(fù)。2.中斷效力程序應(yīng)盡能夠的短 不同高級言語開發(fā)環(huán)境中對編寫中斷效力程序的語法規(guī)那么和處置方法是不同的。用戶在編寫中斷效力程序前,應(yīng)對所運(yùn)用開發(fā)平臺,中斷程序的編寫方法,中斷的處置方法等有較好的了解。 運(yùn)用ICCAVR等高級言語編寫中斷效力程序時,用戶通常不用思索中斷現(xiàn)場維護(hù)和恢復(fù)的處置,這是由于編譯器在編譯中斷效力程序的源代碼時,會在生成的目的代碼中自動參與相應(yīng)的中斷現(xiàn)場維護(hù)和恢復(fù)的指令,同時自動采用RETI指令作

14、為中斷效力的前往指令。 . 在ICCAVRR中,只需用#pragma 偽指令和中斷向量闡明中斷效力程序的入口地址。中斷效力函數(shù)按以下格式定義:#pragma interrupt_handler : 如:INT0中斷效力程序#pragma interrupt_handler int0_isr:2void int0_isrvoid 中斷效力程序 C編譯器會自動協(xié)助用戶產(chǎn)生正確的中斷向量處的以及初始化堆棧指針的代碼,同時在中斷效力程序中自動生成中斷現(xiàn)場維護(hù)和恢復(fù)函數(shù)中用到的全部存放器維護(hù)及運(yùn)用RETI指令前往。.圖中運(yùn)用了兩個按鍵K1、K2,按鍵的一端分別與PD2INT0、PD3INT1銜接。INT

15、0和INT1作為外部中斷的輸入,采用電平變化的下降沿觸發(fā)方式,當(dāng)K1K2按下時,會在PD2PD3引腳上產(chǎn)生一個高電平到低電平的跳變,觸發(fā)INT0或INT1中斷。外部中斷運(yùn)用實例硬件電路 .運(yùn)用中斷應(yīng)舉例:定時掃描數(shù)碼管,INT0、INT1按鍵下降沿出發(fā)中斷,使鍵值分別加減1/* 功 能: INT0中斷函數(shù),使鍵值加1 */#pragma interrupt_handler Int0_isr:2void Int0_isr(void) delay_nms(20); /延時大約20毫秒,去抖if(KEY0=0) /再次判別按鍵能否按下 while(KEY0=0); /等待按鍵釋放Key_Number

16、+; /鍵值加1 ./* 功 能: INT1中斷函數(shù),使鍵值減1 */#pragma interrupt_handler Int1_isr:3void Int1_isr(void) delay_nms(20); /延時大約20毫秒,去抖if(KEY1=0) /再次判別按鍵能否按下 while(KEY1=0);/等待按鍵釋放Key_Number-;/鍵值減1 ./* 功 能: Timer0溢出中斷,數(shù)碼管掃描 */#pragma interrupt_handler Timer0_ovf_isr:10void Timer0_ovf_isr(void) Display_One_SMG(2,Key_Number/100); /在第三位數(shù)碼管顯示百位Display_One_SMG(1,Key_Number%100/10); /在第二位數(shù)碼管顯示十位Display_One_SMG(0,Key_Number%100%10); /在第一位數(shù)碼管顯示個位./* 功 能: Timer0初始化程序 */void Timer0_Init(void) TCCR0 = 0 x00; /停頓Timer0任務(wù) TCNT0 = 0 x00;/清TCNT0 TCCR0|=(1CS02);/啟動Timer0,系統(tǒng)時鐘256分頻./主函數(shù)稱號: main()

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論