AVR单片机新手入门必看ppt教程课件6_第1页
AVR单片机新手入门必看ppt教程课件6_第2页
AVR单片机新手入门必看ppt教程课件6_第3页
AVR单片机新手入门必看ppt教程课件6_第4页
AVR单片机新手入门必看ppt教程课件6_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、恭喜你:选择了正确的AVR学习资料ATmega16的中断系统 ATmega16的中断源和中断向量 AVR一般拥有数十个中断源,每个中断源都有独立的中断向量。 AVR的程序存储区的最低端,即从Flash地址的0 x0000开始用于放置中断向量,称作中断向量区。 各种型号的AVR中断向量区的大小是不同的,由下式决定:中断向量区大小 = 中断源个数 每个中断向量占据字数 AVR的21个中断中,包含1个非屏蔽中断(RESET)3个外部中断(INT0、INT1、INT2)和17个内部中断, 1.外部部中断INT0、INT1和和INT2是3个外部部中断源源,它们们是分别别由芯片片外部引引脚PD2、PD3、

2、PB2上的电电平的变变化或状状态触发发的。通通过对控控制寄存存器MCUCR和控制制与状态态寄存器器MCUCSR的配置置,外部部中断可可以定义义为由PD2、PD3、PB2引脚脚上的电电平的下下降沿、上升沿沿、逻辑辑电平变变化,或或者低电电平(INT2仅支持持电平变变化的边边沿触发发)触发发。3个定时时计数器器触发的的内部中中断MER2 COMPTIMER2OVF定定时时溢出2TIMER1CAPT扑扑捉捉溢出1TIMER1COMPA定定时时比较ATIMER1COMPB定定时时比较BTIMER1OVF定定时时溢出2TIMER0OVF定定时时溢出0TIMER0COMP定定时时比较0同步/异异步串行行接

3、收和和转发器器USART的的内部中中断USARTRXC接接收一个个字节USARTTXC发发送一个个字节USARTUDRE发发送数据据寄存器器为空其它内部部中断SPISTC为内部部SPI串行接接口传送送结束中中断ADC为为ADC单元完完成一次次A/D转换的的中断EE_RDY是是片内的的EEPROM就绪(对EEPROM的操操作完成成)中断断ANA_COMP是由由内置的的模拟比比较器输输出引发发的中断断TWI为为内部两两线串行行接口的的中断SPM_RDY是对片片内的Flash写操操作完成成中断ATmega16的中中断控制制中断优先先级的确确定1.在AVR单单片机中中,一个个中断在在中断向向量区中中的

4、位置置决定了了 它的的优先级级,位于于低地址址的中断断优先级级高于位位于高地地址的中中断。2AVR单片片机采用用固定的的硬件优优先级方方式,不不支持通通过软件件对中断断优先级级的重新新设定。AVR有有两种机机制不同同的中断断:带有中断断标志的的中断(可挂起起)不带中断断标志的的中断(不能挂挂起)。中断标志志在AVR中,大大多数的的中断都都属于带带中断标标志的中中断。中断标志志概念每个中断断源在其其I/O空间寄寄存器中中具有自自己的一一个中断断标志位位。AVR的硬硬件系统统在每个个时钟周周期内都都会检测测(接受受)外部部(内部部)中断断源的中中断条件件。一旦旦中断条条件满足足,AVR的硬硬件就会

5、会将置位位相应的的中断标标志位(置为“1”),表示示向MCU提起起中断请请求。中断标志志清除中断标志志位一般般在MCU响应应该中断断时,由由硬件自动动清除,或在中中断服务务程序中中通过读/写专专门数据据寄存器器的方式自自动清除除。中断标志志位除了了由硬件件自动清清除外也也可以使使用软件件指令清清除,注注意:如如用软件方法法清除,清除的的方法是是对其写写“1”。不带(不不设置)中断标标志的中中断:如配置为为低电平平触发的的外部中中断即为为此类型型的中断断低电平中中断的重重要应用用是唤醒醒处于休休眠工作作模式的的MCU。三、中断断屏蔽与与管理为全局中中断允许许控制位位:中断允许许的总控控制位I(标

6、志志寄存器器SREG中的的I标志志位SREG.7)每一个中中断源都都设置了了独立的的中断允允许位AVR对对中断采采用两级级控制方方式。这些中断断允许位位分散位位于各中中断源所所属模块块的控制制寄存器器中。AVR响响应一个个可屏蔽蔽中断源源(假定定为A中中断)的的中断的的条件是是:1.响应应A中断断 =全全局中中断允许许标志AND 中断断A允许许标志AND 中断断A标志志2.AVR复位位后,各各个中断断允许位位以及全全局中断断允许位位均被清清零,这这保证了了程序在在开始执执行时(一般程程序开头头是对芯芯片内部部以及外外围系统统的初始始化配置置)不会会受到中中断的干干扰。3.在AVR复复位后的的用

7、户初初始化程程序中,需要先先对需要要使用的的中断源源进行必必要的配配置。待待系统初初始化过过程结束束后再置置位I,使系统统进入正正常的工工作状态态,开始始响应中中断请求求。由于AVR在响响应一个个中断的的过程中中通过硬硬件将I标志位位自动清清零,这这样就阻阻止了MCU响响应其它它中断。因此通通常情况况下,AVR是是不能自自动实现现中断嵌嵌套的。如要系系统中必必须要实实现中断断嵌套的的应用,用户可可在中断断服务程程序中使使用指令令将全局局中断允允许位开开放,通通过间接接的方式式实现中中断的嵌嵌套处理理。四、中断断嵌套外部中断断触发方方式和特特点INT0、INT1、INT2的中中断触发发方式取取决

8、于用用户程序序对MCU控制制寄存器器MCUCR以以及MCU控制制与状态态寄存器器MCUCSR的设定定。其中中,INT0和和INT1支持持4种中中断触发发方式,INT2支持持2种。任意电平平变化触触发表示示只要引引脚上有有逻辑电电平的变变化就会会产生中中断申请请(不管管是上升升沿还是是下降沿沿都引起起中断触触发)4种触发发方式中中,还有有以下的的一些不不同的特特点:低电平触触发是不不带中断断标志类类型的,即只要要中断输输入引脚脚PD2或PD3保持持低电平平,那么么将一直直会产生生中断申申请。2.MCU对INT0和INT1的的引脚上上的上升升沿或下下降沿变变化的识识别(触触发),需要I/O时时钟信

9、号号的存在在(由I/O时时钟同步步检测),属于于同步边边沿触发发的中断断类型。3.MCU对INT2的引脚脚上的上上升沿或或下降沿沿变化的的识别(触发),以及及低电平平的识别别(触发发)是通通过异步步方式检检测的,不需要要I/O时钟信信号的存存在。因因此,这这类触发发类型的的中断经经常作为为外部唤唤醒源,用于将将处在Idle休眠模模式,以以及处在在各种其其它休眠眠模式的的MCU唤醒。这是由由于除了了在空闲闲(Idel)模式时时,I/O时钟钟信号还还保持继继续工作作,在其其它各种种休眠模模式下,I/O时钟信信号均是是处在暂暂停状态态的。4.如果果使用低低电平触触发方式式的中断断作为唤唤醒源,将MC

10、U从掉掉电模式式(Power-down)中唤醒醒时,电电平拉低低后仍需需要维持持一段时时间才能能将MCU唤醒醒,这是是为了提提高了MCU的的抗噪性性能。拉拉低的触触发电平平将由看看门狗的的时钟信信号采样样两次(在通常常的5V电源和和25时,看看门狗的的时钟周周期为1s)。如果果电平拉拉低保持持2次采采样周期期的时间间,或者者一直保保持到MCU启启动延时时(start-up time)过程之之后,MCU将将被唤醒醒并进入入中断服服务。如如果该电电平的保保持时间间能够满满足看门门狗时钟钟的两次次采样,但在启启动延时时(start-up time)过程完完成之前前就消失失了,那那么MCU仍将将被唤醒

11、醒,但不不会触发发中断进进入中断断服务程程序。所所以,为为了保证证既能将将MCU唤醒,又能触触发中断断,中断断触发电电平必须须维持足足够长的的时间。5.如果果设置了了允许响响应外部部中断的的请求,则即便便是引脚脚PD2、PD3、PB2设设置为输输出方式式工作,引脚上上的电平平变化也也会产生生外部中中断触发发请求。这一特特性为用用户提供供了使用用软件产产生中断断的途径径。与外部中中断相关关的寄存存器和标标志位在ATmega16中中,与外外部中断断有关的的寄存器器有4个个,共有有11个个标志位位。其作作用分别别是3个个外部中中断各自自的中断标志志位,中中断允许许控制位位,和用于定义外部部中断的的触

12、发类类型。1)MCU中中断方式式控制寄寄存器MCUCRMCU控控制寄存存器MCUCR的低4位为INT0(ISC01、ISC00)和INT1(ISC11、ISC10)中断触触发类型型控制位位MCU对对INT0、INT1引脚上上电平值值的采样样在边沿沿检测前前。1.如果果选择脉脉冲边沿沿触发或或电平变变化中断断的方式式,那么在在INT0、INT1引脚上上的一个个脉宽大大于一个个时钟周周期的脉脉冲变化化将触发发中断,过短的的脉冲则则不能保保证触发发中断。2.如果果选择低低电平触触发中断断,那么低电电平必须须保持到到当前指指令执行行完成才才触发中中断。如如果是低低电平触触发方式式的话,中断请请求将一一

13、直保持持到引脚脚上的低低电平消消失为止止。2)MCU控制制和状态态寄存器器MCUCSRMCU控控制和状状态寄存存器MCUCSR中的的第6位位(ISC2)为INT2的中断断触发类类型控制制位3)通用用中断允允许控制制寄存器器GICR通用中断断控制寄寄存器GICR的高3位为INT0、INT1和和INT2的中中断允许许控制位位 。GICR寄存器器中相应应的中断断允许位位被置为为“1”,当外外部引脚脚INT0(或或INT1、或或INT2)上上的电平平变化时时,MCU将会会响应相相应的中中断请求求。4)通通用中断断标志寄寄存器GIFR中断标志志寄存器器GIFR的高高3位为为INT0、INT1和INT2的

14、的中断标标志位当INT2.0引脚脚上的有有效事件件满足中中断触发发条件后后,INTF2.0位会变变成“1”。如如果此时时SREG寄存存器中I =1,以以及GICR寄寄存器中中的INTn被被置为“1”,MCU将将响应中中断请求求,跳至至相应的的中断向向量处开开始执行行中断服服务程序序,同时时硬件自自动将INTFn标志志位清零零。用户可以以使用指指令将INTFn清除除,清除除的方式式是写逻逻辑“1”到INTFn,将将标志清清零。当当INT0(INT1)设置置为低电电平触发发方式时时,标志志位INTF0(INTF1)始终终为“0”,这这并不意意味着不不产生中中断请求求,而是是低电平平触发方方式是不不

15、带中断断标志类类型的中中断触发发。在系统程程序的初初始化部部分中对对外部中中断进行行设置时时(定义义或改变变触发方方式),应先将将GICR寄存存器中该该中断的的中断允允许位清清零,禁禁止MCU响应应该中断断后再设设置ISCn位位。而在开放放中断允允许前,一般应应通过向向GIFR寄存存器中的的中断标标志位INTFn写入入逻辑“1”,将该中中断的中中断标志志位清除除,然后后开放中中断。这这样可以以防止在在改变ISCn的过程程中误触触发中断断。中断服务务程序的的编写中中断服务务程序的的编写编写中断断服务程程序的两两个基本本原则:1.全面面、仔细细考虑中中断现场场的保护护和恢复复。2.中断断服务程程序

16、应尽尽可能的的短不同高级级语言开开发环境境中对编编写中断断服务程程序的语语法规则则和处理理方法是是不同的的。用户户在编写写中断服服务程序序前,应应对所使使用开发发平台,中断程程序的编编写方法法,中断断的处理理方法等等有较好好的了解解。使用ICCAVR等高高级语言言编写中中断服务务程序时时,用户户通常不不必考虑虑中断现现场保护护和恢复复的处理理,这是是由于编编译器在在编译中中断服务务程序的的源代码码时,会会在生成成的目标标代码中中自动加加入相应应的中断断现场保保护和恢恢复的指指令,同同时自动动采用RETI指令作作为中断断服务的的返回指指令。在ICCAVRR中,只要用用#pragma伪伪指令和和中

17、断向向量说明明中断服服务程序序的入口口地址。中断服务务函数按按以下格格式定义义:#pragmainterrupt_handler:如:INT0中中断服务务程序#pragma interrupt_handler int0_isr:2voidint0_isr(void)中断断服务程程序C编译器器会自动动帮助用用户产生生正确的的中断向向量处的的以及初初始化堆堆栈指针针的代码码,同时时在中断断服务程程序中自自动生成成中断现现场保护护和恢复复(函数数中用到到的全部部寄存器器保护)及使用用RETI指令令返回。图中使用用了两个个按键K1、K2,按按键的一一端分别别与PD2(INT0)、PD3(INT1)连连

18、接。INT0和INT1作作为外部部中断的的输入,采用电电平变化化的下降降沿触发发方式,当K1(K2)按下下时,会会在PD2(PD3)引脚上上产生一一个高电电平到低低电平的的跳变,触发INT0或INT1中中断。外部中断断应用实实例硬件电路路应用中断断应举例例:定时扫描描数码管管,INT0、INT1按键键下降沿沿出发中中断,使使键值分分别加减减1/*功功能能:INT0中断函函数,使使键值加加1*/#pragma interrupt_handler Int0_isr:2void Int0_isr(void)delay_nms(20);/延时大大约20毫秒,去抖if(KEY0=0)/再再次判断断按键是是否按下下while(KEY0=0);/等等待按键键释放Key_Number+;/键键值加1/*功功能能:INT1中断函函数,使使键值减减1*/#pragma interrupt_handler Int1_isr:3void Int1_isr(void)delay_nms(20);/延时时大约20毫秒秒,去抖抖if(KEY1=0)/再次次判断按按键是否否按下while(KEY1=0);/等等待按键键释放Key_Number-;/键值减减1/*功功能能:Timer0溢溢出中断断,数码码管扫描描*/#pragma int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论