單片機(jī)設(shè)計(jì)技術(shù):第4章ATmega8的中斷系統(tǒng)_第1頁(yè)
單片機(jī)設(shè)計(jì)技術(shù):第4章ATmega8的中斷系統(tǒng)_第2頁(yè)
單片機(jī)設(shè)計(jì)技術(shù):第4章ATmega8的中斷系統(tǒng)_第3頁(yè)
單片機(jī)設(shè)計(jì)技術(shù):第4章ATmega8的中斷系統(tǒng)_第4頁(yè)
單片機(jī)設(shè)計(jì)技術(shù):第4章ATmega8的中斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第4章 ATmega8的中斷系統(tǒng) 中斷的基本概念 ATmega8的中斷源 外部中斷有關(guān)I/O寄存器 外部中斷的初始化2一、中斷的基本概念主程序、中斷、中斷服務(wù)主程序初始化循環(huán)程序中斷服務(wù)程序中斷服務(wù)中斷3二、ATmega8的中斷源 ATmega8單片機(jī)有18個(gè)中斷源每個(gè)中斷源有一個(gè)對(duì)應(yīng)的中斷服務(wù)程序入口地址(中斷矢量/中斷向量Interrupt Vectors)復(fù)位入口地址和所有中斷源的中斷入口地址排列成表格形式中斷矢量表(p.137表4-1)復(fù)位入口地址為0 x000,向量號(hào)為1;外部中斷0的入口地址為0 x001,向量號(hào)為2;4二、ATmega8的中斷源 ATmega8單片機(jī)有18個(gè)中斷

2、源外部中斷1的入口地址為0 x002,向量號(hào)為3;定時(shí)器T0溢出中斷入口地址為0 x009,向量號(hào)為10;5Table 4-1 Reset and Interrupt VectorsNo. Program Address Source1 0 x000 RESET20 x001 INT0 30 x002 INT140 x003 TIMER2 COMP5 0 x004 TIMER2 OVF60 x005 TIMER1 CAPT70 x006 TIMER1 COMPA80 x007 TIMER1 COMPB90 x008 TIMER1 OVF10 0 x009 TIMER0 OVF6Table 4-

3、1 Reset and Interrupt VectorsNo. Program Address Source11 0 x00A SPI, STC12 0 x00B USART, RXC13 0 x00C USART, UDRE14 0 x00D USART, TXC15 0 x00E ADC16 0 x00F EE_RDY17 0 x010 ANA_COMP18 0 x011 TWI19 0 x012 SPM_RDY7二、ATmega8的中斷源ATmega8單片機(jī)有18個(gè)中斷源每個(gè)中斷源的中斷優(yōu)先級(jí)是固定的(表中從高到低排列),INT0優(yōu)先級(jí)最高,SPM_RDY(Store Program

4、Memory Ready)優(yōu)先級(jí)最低編程時(shí)在中斷入口一般安排相對(duì)轉(zhuǎn)移指令,參見p.1388 中斷源的分類外部中斷2個(gè): INT0, INT1定時(shí)器中斷7個(gè):T0溢出;T1溢出、比較匹配A、比較匹配B、捕獲;T2溢出、比較匹配SPI串行傳輸結(jié)束:SPI_STCUSART中斷3個(gè):UART_RX, UART_UDRE, UART_TXADC轉(zhuǎn)換結(jié)束: ADCEEPROM準(zhǔn)備好:EE_RDY模擬比較器: ANA_COMPTWI狀態(tài)中斷: TWI寫FLASH準(zhǔn)備好:SPM_RDY9三、外部中斷有關(guān)I/O寄存器1、 MCU控制寄存器MCUCR(MCU Control Register)SE: 休眠使能(

5、Sleep Enable)SM2SM0:休眠模式(Sleep Mode Select)SESM2SM1SM0ISC11ISC10ISC01ISC0010三、外部中斷有關(guān)I/O寄存器1、 MCU控制寄存器MCUCR(MCU Control Register)SESM2SM1SM0ISC11ISC10ISC01ISC00ISC11,ISC10:外部中斷1檢測(cè)控制(觸發(fā)控制)ISC (interrupt sense control)=00 低電平中斷01 上升沿和下降沿都中斷10 下降沿中斷11 上升沿中斷11三、外部中斷有關(guān)I/O寄存器1、 MCU控制寄存器MCUCR(MCU Control Re

6、gister)SESM2SM1SM0ISC11ISC10ISC01ISC00ISC01,ISC00:外部中斷0檢測(cè)控制(觸發(fā)控制)ISC (interrupt sense control)=00 低電平中斷01 上升沿和下降沿都中斷10 下降沿中斷11 上升沿中斷12三、外部中斷有關(guān)I/O寄存器2、通用中斷控制寄存器 GICR(General Interrupt Control Register)INT11:外部中斷1允許,0:禁止INT01:外部中斷0允許,0:禁止INT1INT0IVSELIVCE最低2位用于選擇中斷向量的位置,AT90S系列(Flash不分用戶區(qū)和引導(dǎo)區(qū))沒有這2位,且該

7、寄存器稱為通用中斷屏蔽寄存器GIMSK 13三、外部中斷有關(guān)I/O寄存器3、通用中斷標(biāo)志寄存器 GIFR(General Interrupt Flag Register)INTF11:外部中斷1有中斷請(qǐng)求INTF01:外部中斷0有中斷請(qǐng)求INTF1INTF014與其它中斷有關(guān)的I/O寄存器定時(shí)器/計(jì)數(shù)器(第6章)T/C中斷標(biāo)志寄存器 TIFRT/C中斷屏蔽寄存器 TIMSKUSART串行口(第7章)USART控制和狀態(tài)寄存器A UCSRAUSART控制和狀態(tài)寄存器B UCSRBSPI串行口(第7章)SPI狀態(tài)寄存器 SPSRSPI控制寄存器 SPCR15其它中斷有關(guān)I/O寄存器ADC(第8章)

8、ADC控制和狀態(tài)寄存器 ADCSR模擬比較器(第8章)模擬比較器控制和狀態(tài)寄存器 ACSRTWI串行口(第7章)TWI控制寄存器 TWCREEPROM(第2章)EEPROM控制寄存器 EECR16四、外部中斷的初始化外部中斷初始化的步驟:(1)設(shè)置中斷觸發(fā)方式MCUCR(2)清0中斷標(biāo)志位GIFR(3)中斷源開中斷(4)CPU開中斷17四、外部中斷的初始化例 INT0下降沿觸發(fā)中斷的初始化程序 LDIR16, 0 x02OUTMCUCR, R16;下降沿觸發(fā) LDIR16, 0 x40OUTGIFR, R16;清中斷標(biāo)志位OUTGICR, R16;INT0開中斷SEI;CPU開中斷18p.14

9、3例4-1 ATmega8主頻8MHz,利用外部中斷INT0觸發(fā)B口LED依次發(fā)光PB0PB1PB2PB3PB4PB5PB6PB7ATmega8PD2(INT0)Vcc10k19;應(yīng)用程序設(shè)計(jì).include “m8def.inc”.org 0 x000;復(fù)位入口RESET: RJMP MAIN.org 0 x001;INT0中斷入口RJMP EX_INT0.org 0 x013;跳過中斷矢量區(qū)MAIN: LDI R16, low(RAMEND)OUTSPL,R16LDIR16,high(RAMEND)OUTSPH,R1620LDIR16,0 xFF ; port B as an output

10、 portOUTDDRB, R16LDIR16,0 x00; shut-down all LEDsOUTPORTB, R16LDIR16, 0 x02 ; INT0 falling edge interruptOUTMCUCR, R16 LDI R16, 0 x40; 或 CLRR16OUTGIFR, R16; 清除中斷標(biāo)志OUTGICR, R16; 允許INT0中斷CBI DDRD, 3 ;應(yīng)該為CBI DDRD, 2 (可以省略)SEIHERE: RJMP HERE21;書上中斷服務(wù)程序采用查表的方法依次點(diǎn)亮LED;修改如下(比書上容易理解)EX_INT0: IN R1, SREG ; 保

11、存SREGLDIR16,0 xFF; LED全亮,沒有必要OUTPORTB, R16LDI R16, 0 x01LDI R25, 8LOOP: OUTPORTB, R16RCALL DELAYLSLR16DECR25BRNELOOPOUTSREG,R1RETI22;延時(shí)0.5S子程序DELAY: LDI R20, 100DEL1: LDIR19,200DEL2: LDIR18, 200DEL3: DECR18BRNEDEL3 DECR19BRNEDEL2 DECR20BRNEDEL1RET23程序要求:采用中斷方式把SRAM中 0 x100 開始的14個(gè)數(shù)據(jù)打印輸出。 PB0 PB7ATmeg

12、a8 PD0 PD2 (INT0) GNDDB0 DB7 打印機(jī)STBBUSYGND打印機(jī)接口電路 例2 打印機(jī)接口24例2采用中斷方式打印輸出.include “m8def.inc”.org 0 x000;復(fù)位入口RJMP RESET.org 0 x001;INT0中斷入口RJMP EXT_INT0.org 0 x013;跳過中斷矢量區(qū)RESET: LDI R16, low(RAMEND)OUTSPL,R16LDIR16,high(RAMEND)OUTSPH,R1625例2采用中斷方式打印輸出LDIR16,0 xFF ; port B as an output portOUTDDRB, R1

13、6LDIR16,0 x01 ; PD0 as output, PD2 as inputOUTDDRD, R16SBIPORTD, 0 ; set PD0 ; INT0 falling edge interruptLDIR16, 0 x02OUTMCUCR, R16 LDI R16, 0 x40; 或 CLRR16OUTGIFR, R16; 清除中斷標(biāo)志26例2采用中斷方式打印輸出LDI XH, 0 x01LDI XL, 0 x00LDI R25, 13; output the first dataLD R24, XOUT PORTB, R24CBI PORTD, 0; clear PD0RCALL Delay_1usSBI PORTD, 0; set PD027例2采用中斷方式打印輸出; INT0 interrupt enableLDI R16, 0 x40OUT GICR, R16 SEIHERE:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論