单片机设计技术:第4章ATmega8的中断系统_第1页
单片机设计技术:第4章ATmega8的中断系统_第2页
单片机设计技术:第4章ATmega8的中断系统_第3页
单片机设计技术:第4章ATmega8的中断系统_第4页
单片机设计技术:第4章ATmega8的中断系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第4章 ATmega8的中断系统 中断的基本概念 ATmega8的中断源 外部中断有关I/O寄存器 外部中断的初始化2一、中断的基本概念主程序、中断、中断服务主程序初始化循环程序中断服务程序中断服务中断3二、ATmega8的中断源 ATmega8单片机有18个中断源每个中断源有一个对应的中断服务程序入口地址(中断矢量/中断向量Interrupt Vectors)复位入口地址和所有中断源的中断入口地址排列成表格形式中断矢量表(p.137表4-1)复位入口地址为0 x000,向量号为1;外部中断0的入口地址为0 x001,向量号为2;4二、ATmega8的中断源 ATmega8单片机有18个中断

2、源外部中断1的入口地址为0 x002,向量号为3;定时器T0溢出中断入口地址为0 x009,向量号为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单片机有18个中断源每个中断源的中断优先级是固定的(表中从高到低排列),INT0优先级最高,SPM_RDY(Store Program

4、Memory Ready)优先级最低编程时在中断入口一般安排相对转移指令,参见p.1388 中断源的分类外部中断2个: INT0, INT1定时器中断7个:T0溢出;T1溢出、比较匹配A、比较匹配B、捕获;T2溢出、比较匹配SPI串行传输结束:SPI_STCUSART中断3个:UART_RX, UART_UDRE, UART_TXADC转换结束: ADCEEPROM准备好:EE_RDY模拟比较器: ANA_COMPTWI状态中断: TWI写FLASH准备好:SPM_RDY9三、外部中断有关I/O寄存器1、 MCU控制寄存器MCUCR(MCU Control Register)SE: 休眠使能(

5、Sleep Enable)SM2SM0:休眠模式(Sleep Mode Select)SESM2SM1SM0ISC11ISC10ISC01ISC0010三、外部中断有关I/O寄存器1、 MCU控制寄存器MCUCR(MCU Control Register)SESM2SM1SM0ISC11ISC10ISC01ISC00ISC11,ISC10:外部中断1检测控制(触发控制)ISC (interrupt sense control)=00 低电平中断01 上升沿和下降沿都中断10 下降沿中断11 上升沿中断11三、外部中断有关I/O寄存器1、 MCU控制寄存器MCUCR(MCU Control Re

6、gister)SESM2SM1SM0ISC11ISC10ISC01ISC00ISC01,ISC00:外部中断0检测控制(触发控制)ISC (interrupt sense control)=00 低电平中断01 上升沿和下降沿都中断10 下降沿中断11 上升沿中断12三、外部中断有关I/O寄存器2、通用中断控制寄存器 GICR(General Interrupt Control Register)INT11:外部中断1允许,0:禁止INT01:外部中断0允许,0:禁止INT1INT0IVSELIVCE最低2位用于选择中断向量的位置,AT90S系列(Flash不分用户区和引导区)没有这2位,且该

7、寄存器称为通用中断屏蔽寄存器GIMSK 13三、外部中断有关I/O寄存器3、通用中断标志寄存器 GIFR(General Interrupt Flag Register)INTF11:外部中断1有中断请求INTF01:外部中断0有中断请求INTF1INTF014与其它中断有关的I/O寄存器定时器/计数器(第6章)T/C中断标志寄存器 TIFRT/C中断屏蔽寄存器 TIMSKUSART串行口(第7章)USART控制和状态寄存器A UCSRAUSART控制和状态寄存器B UCSRBSPI串行口(第7章)SPI状态寄存器 SPSRSPI控制寄存器 SPCR15其它中断有关I/O寄存器ADC(第8章)

8、ADC控制和状态寄存器 ADCSR模拟比较器(第8章)模拟比较器控制和状态寄存器 ACSRTWI串行口(第7章)TWI控制寄存器 TWCREEPROM(第2章)EEPROM控制寄存器 EECR16四、外部中断的初始化外部中断初始化的步骤:(1)设置中断触发方式MCUCR(2)清0中断标志位GIFR(3)中断源开中断(4)CPU开中断17四、外部中断的初始化例 INT0下降沿触发中断的初始化程序 LDIR16, 0 x02OUTMCUCR, R16;下降沿触发 LDIR16, 0 x40OUTGIFR, R16;清中断标志位OUTGICR, R16;INT0开中断SEI;CPU开中断18p.14

9、3例4-1 ATmega8主频8MHz,利用外部中断INT0触发B口LED依次发光PB0PB1PB2PB3PB4PB5PB6PB7ATmega8PD2(INT0)Vcc10k19;应用程序设计.include “m8def.inc”.org 0 x000;复位入口RESET: RJMP MAIN.org 0 x001;INT0中断入口RJMP EX_INT0.org 0 x013;跳过中断矢量区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; 清除中断标志OUTGICR, R16; 允许INT0中断CBI DDRD, 3 ;应该为CBI DDRD, 2 (可以省略)SEIHERE: RJMP HERE21;书上中断服务程序采用查表的方法依次点亮LED;修改如下(比书上容易理解)EX_INT0: IN R1, SREG ; 保

11、存SREGLDIR16,0 xFF; LED全亮,没有必要OUTPORTB, R16LDI R16, 0 x01LDI R25, 8LOOP: OUTPORTB, R16RCALL DELAYLSLR16DECR25BRNELOOPOUTSREG,R1RETI22;延时0.5S子程序DELAY: LDI R20, 100DEL1: LDIR19,200DEL2: LDIR18, 200DEL3: DECR18BRNEDEL3 DECR19BRNEDEL2 DECR20BRNEDEL1RET23程序要求:采用中断方式把SRAM中 0 x100 开始的14个数据打印输出。 PB0 PB7ATmeg

12、a8 PD0 PD2 (INT0) GNDDB0 DB7 打印机STBBUSYGND打印机接口电路 例2 打印机接口24例2采用中断方式打印输出.include “m8def.inc”.org 0 x000;复位入口RJMP RESET.org 0 x001;INT0中断入口RJMP EXT_INT0.org 0 x013;跳过中断矢量区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; 清除中断标志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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论