ATmega88 中断向量

发布者:SereneSoul55最新更新时间:2021-12-14 来源: eefocus关键字:ATmega88  中断向量  复位 手机看文章 扫描二维码
随时随地手机看文章

本节描述 ATmega88 的中断处理。更一般的 AVR 中断处理请参见 P11” 复位与中断处理 ” 。


(点击图片放大)

Notes: 1. 熔丝位BOOTRST被编程时,MCU复位后程序跳转到Boot Loader。请参见 P241”Boot Loader 支持RWW自编程,ATmega88 与 ATmega168” 2. 当寄存器MCUCR的IVSEL置位时,中断向量转移到Boot区的起始地址。此时各个中断 向量的实际地址为表中地址与Boot 区起始地址之和。

Table29 给出了不同的BOOTRST IVSEL设置条件下的复位和中断向量的位置。如果程序 没有使用中断,中断向量就没有意义。用户可以在此直接写程序。同样,如果复位向量位 于应用区,而其他中断向量位于 Boot 区,则复位向量之后可以直接写程序。反过来亦是 如此。

ATmega88复位和中断向量的确定

ATmega88 典型的复位和中断设置如下:
地址···代码 ···代码说明
0x000 rjmp RESET ; 复位处理
0x001 rjmp EXT_INT0 ; IRQ0处理
0x002 rjmp EXT_INT1 ; IRQ1处理
0x003 rjmp PCINT0 ; PCINT0处理
0x004 rjmp PCINT1 ; PCINT1处理
0x005 rjmp PCINT2 ; PCINT2处理
0x006 rjmp WDT ;看门狗定时器处理
0x007 rjmp TIM2_COMPA ; 定时器 2 比较 A处理
0x008 rjmp TIM2_COMPB ; 定时器 2比较 B处理
0x009 rjmp TIM2_OVF ; 定时器 2溢出处理
0x00A rjmp TIM1_CAPT ; 定时器 1捕获处理
0x00B rjmp rjmp TIM1_COMPA ; 定时器 1比较 A处理
0x00C rjmp TIM1_COMPB ; 定时器 1比较 B处理
0x00D rjmp TIM1_OVF ; 定时器 1溢出处理
0x00E rjmp TIM0_COMPA ; 定时器 0比较 A处理
0x00F rjmp TIM0_COMPB ; 定时器 0比较 B处理
0x010 rjmp TIM0_OVF ; 定时器 0溢出处理
0x011 rjmp SPI_STC ; SPI 传输结束处理
0x012 rjmp rjmp USART_RXC ; USART, RX结束处理
0x013 rjmp USART_UDRE ; USART, UDR空处理
0x014 rjmp USART_TXC ; USART, TX Complete 处理
0x015 rjmp ADC ; ADC转换结束处理
0x016 rjmp EE_RDY ; EEPROM就绪处理
0x017 rjmp ANA_COMP ; 模拟比较器处理
0x018 rjmp TWI ; 两线串行接口处理
0x019 rjmp SPM_RDY ; SPM 就绪处理

0x01A RESET: ldi r16, high(RAMEND); 主程序
0x01B out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0x01C ldi r16, low(RAMEND)
0x01D out SPL,r16
0x01E sei ; 使能中断
0x01F  xxx
、、、、 、、、、 、、、、

当熔丝位 BOOTRST 未编程, Boot 区为 2K 字节,且寄存器 MCUCR 的 IVSEL 在使能 任何中断之前得到置位时, ATmega88 典型的复位和中断设置如下:
地址 标号 代码 说明
0x000 RESET: ldi r16,high(RAMEND) ; 主程序
0x001 out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0x002 ldi r16,low(RAMEND)
0x003 out SPL,r16
0x004 sei ; 使能中断
0x005 xxx
;
.org 0xC01
0xC01 rjmp EXT_INT0 ; IRQ0处理
0xC02 rjmp EXT_INT1 ; IRQ1处理
... ... ... ; 

0xC19 rjmp SPM_RDY ; SPM 就绪处理 
当熔丝位 BOOTRST被编程,且 Boot 区为 2K 字节时,ATmega88 典型的复位和中断设 置如下:
地址 标号代码 解释
.org 0x001
0x001 rjmp EXT_INT0 ; IRQ0处理
0x002 rjmp EXT_INT1 ; IRQ1处理
... ... ... ; 

0x019 rjmp SPM_RDY ; SPM 就绪处理
;
.org 0xC00
0xC00 RESET: ldi r16,high(RAMEND) ; 主程序
0xC01 out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0xC02 ldi r16,low(RAMEND)
0xC03 out SPL,r16
0xC04 sei ; 使能中断
0xC05 xxx


关键字:ATmega88  中断向量  复位 引用地址:ATmega88 中断向量

上一篇:ATmega88 SPI数据模式与时序
下一篇:ATmega88 看门狗定时器

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved