(精)atmega16寄存器笔记整理

2019-04-22 09:20

一、中断寄存器

中断

是指微处理器在程序执行期间响应外部的事务请求,暂停当前的处理器工作转而处理外部事件,外部事件处理完成之后返回原来工作暂停的地方继续执行程序。

Atmega16具有21个中断源,每个中断源都有独立的中断向量作为中断服务程序的入口地址,而且所有的中断源都有自己独立的使能位。如果中断位I和中断向量使能位都置位,则中断发生,中断标志位置位,并执行中断服务程序。中断向量表见表2,处于越低地址的中断具有更高优先级。

表2 中断向量表 向量号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

程序地址 中断源 描述 外部引脚电平引发的复位,上电复位,掉电 检测复位,看门狗复位,以及JTAG AVR 复位 外部中断请求0 外部中断请求1 定时器/计数器2比较匹配 定时器/计数器2溢出 定时器/计数器1事件捕捉 定时器/计数器1比较匹配 A 定时器/计数器1比较匹配B 定时器/计数器1溢出 定时器/计数器0溢出 SPI 串行传输结束 USART,Rx 结束 USART数据寄存器空 USART,Tx 结束 ADC 转换结束 EEPROM 就绪 模拟比较器 两线串行接口 外部中断请求2 定时器/ 计数器0 比较匹配 保存程序存储器内容就绪 0x00 0x02 0x04 0x06 0x08 0x0a 0x0c 0x0e 0x10 0x12 0x14 0x16 0x18 0x1a 0x1c 0x1e 0x20 0x22 0x24 0x26 0x28 RESET INT0 INT1 TIMER2 COMP TIMER2 OVF TIMER1 CAPT TIMER1 COMPA TIMER1 COMPB TIMER1 OVF TIMER0 OVF SPI,STC USART, RXC USART, UDRE USART, TXC ADC EE_RDY ANA_COMP TWI INT2 TIMER0 COMP SPM_RDY <一> 全局中断控制位 1、状态寄存器SREG

bit7 I bit6 T bit5 H bit4 S bit3 V bit2 N bit1 Z bit0 C I:全局中断使能位。 在I置位后,单独的中断使能由不同的中断寄存器控制。若I为0,则禁止中断。

<二>外部中断?

2.MCU控制寄存器MCUCR

bit7 SM2 bit6 SE bit5 SM1 bit4 SM0 bit3 ISC11 bit2 ISC10 bit1 ISC01 bit0 ISC00 SE:MCU休眠使能位

SM1~SM0:MCU休眠模式选择 SM2 0 0 0 0 1 1 1 1 SM1 0 0 1 1 0 0 1 1 SM0 0 1 0 1 0 1 0 1 休眠模式 空闲 ADC 噪声抑制模式 掉电模式 省电模式 保留 保留 Standby(1) 模式 扩展Standby(1) 模式 ISC11~ISC10:外部中断INT1的中断检测方式 ISC11 ISC10 0 0 1 1 ISC01~ISC00:外部中断INT0的中断检测方式 0 1 0 1 INT1中断 低电平中断 INT1 引脚上任意的逻辑电平变化都将引发中断 下降沿中断 上升沿中断 ISC01 0 0 1 1 ISC00 0 1 0 1 INT0中断 低电平中断 INT1 引脚上任意的逻辑电平变化都将引发中断 下降沿中断 上升沿中断 3.通用中断屏蔽寄存器GICR bit7 INT1 bit6 INT0 bit5 INT2 bit4 - bit3 - bit2 - bit1 IVSEL bit0 IVCE INT1:使能外部中断请求1 INT0:使能外部中断请求0 INT2:使能外部中断请求2

4.通用中断标志寄存器GIFR bit7 bit6 bit5 INTF1 INTF0 INTF2 bit4 - bit3 - bit2 - bit1 IVSEL bit0 IVCE INTF1:外部中断标志

INT1引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。如果SREG的位I以及GICR

寄存器相应的中断使能位INT1为‖1‖,MCU即跳转到相应的中断向量。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入‖1‖ 来清零。

INTF0:外部中断标志

INT0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF0。如果SREG的位I以及GICR寄存器相应的中断使能位INT0为‖1‖,MCU即跳转到相应的中断向量。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入‖1‖ 来清零。 INTF2:外部中断标志

INT2引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。如果SREG的位I以及GICR寄存器相应的中断使能位INT2为‖1‖,MCU即跳转到相应的中断向量。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入‖1‖ 来清零。

<三>定时器/计数器

AVR的三个定时/计数器。他们分别是T/C0、T/C1、T/C2,其中 T/C0和T/C2是8位定时/计数器, T/C1是16位定时/计数器。

如T/C0工作模式: 1、普通模式

2、CTC模式

3、快速PWM模式和

4、相位修正PWM模式

这4种工作模式,每种模式分别对应相应的功能。

普通模式: 这是较为简单的模式,在此模式中,计数器不停的累加,直到计数器溢出(0xff)。溢出之后的下一个指令周期里,计数器会回到最小值(0x00)开始累加,计数器标志位(TOV0)置位。此时的TOV0不会自动清零,只有在总中断和T/C0中断开启,进入中断服务子函数时,TOV0才会自动清零。 CTC模式: 所谓CTC模式也就是输出比较模式。在普通模式,计数器会一直累加到最大值256,而在输出比较模式(CTC),另一寄存器(OCR0)可以决定最大值的大小。在达到OCR0设定值后,还能产生中断,触发改变相应管脚(PB3:OC0)的逻辑电平。利用这一特点,多用来产生需要的波形。后面会编写一个方波产生的例子来说明。由于CTC模式没有双缓冲功能,在计数器以无预分频器或很低的预分频器工作的时候将TOP 更改为接近BOTTOM 的数值时要小心。如果写入的OCR0 数值小于当前TCNT0 的数值,计数器将丢失一次比较匹配。多小才要注意,要看代码的效率决定。

快速PWM模式: PWM翻译过来就是\脉宽调制模式\。此模式同样用于生成波形。与输出比较模式区别的是:在输出比较模式中,当TCNT0到达OCR0时,TCNT0清零,相应管脚逻辑电平改变,从而产生波形变化;在PWM模式中,TCNT0的值是从0X00到0XFF,管脚逻辑电平变化的地方是TCNT0的值与OCR0相等时,但此时并不对TCNT0进行清0操作。 相位修正PWM模式: 和\快速PWM模式\作用相似。不同是,计数器从0X00到0XFF,然后从0XFF到0X00计数,产生对称的双向斜波。


(精)atmega16寄存器笔记整理.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国润唇膏行业商业模式专项分析与企业投资环境研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: