- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ATmega单片机中断系统及定时器讲义
第4章 ATmega单片机的中断系统及定时器 内容提要 本章介绍了ATmega单片机中断系统的工作原理及过程,并对单片机内部中断寄存器的用法做了详细的介绍,对单片机内部3个定时器/计数器的功能和和使用方法做了详尽的讲解,定时器/计数器还拥有信号捕获中断,比较中断,脉宽调制输出中断,实时时钟计数等功能。 4.1 ATmega单片机的中断系统 4.1.1 中断处理 ATmega16L有18个不同的中断源,每个中断源和系统复位在程序存储器空间都有一个独立的中断向量,每个中断时间都有各自独立的中断允许控制位,当某个中断源的中断允许位置“1”,且状态寄存器中的全局中断允许位也为“1”时,MCU才能响应中断。利用这一特性,可以提高系统的安全性。 中断设置 复位向量和中断向量表置于 1、FLASH程序存储器的应用程序区的头部 2、引导程序载入区的头部, 3、分开置于不同的两个区各自的头部。 当MCU响应一个中断请求后,会自动将全局中断允许位I自动清零,此时后续中断的响应被屏蔽。 当MCU执行中断返回指令RETI时,会将全局中断允许位I自动置“1”,以允许响应下一个中断。 用户可在中断处理程序中I位置“1”,打开中断响应,这样MCU就可以再次响应中断,实现了中断嵌套处理。 中断源的类型: 一类是时间触发型中断:如时钟、计数、比较等,一旦事件产生后会将相应的中断标志位置位,申请中断处理,当MCU响应中断,跳转到实际中断向量,开启相应的中断处理程序时,硬件自动清除对应的中断标志,这些中断标志位也可通过软件写“1”来清除。 另一类是条件中断:当一个符合条件的中断触发置位了中断标志位,但相应的中断允许位为“0”,此时,这个中断标志将挂起为“1”,一直保持到该中断被响应或中断标志被软件清为“0”。 有些没有中断标志位,在中断条件成立时,将一直不断的向MCU申请中断,如果在中断允许响应前,中断条件由成立状态变成不成立状态,该中断即宣告终止了。 4.1.2 外部中断 外部中断通过引脚INT0,INT1(ATmega16L多一个INT2外部中断)触发。 即使引脚INT0,1配置为输出,只要电平发生了合适的变化,中断也会触发。这个特点可以用来产生软件中断。 通过设置MCU控制寄存器MCUCR,中断可以由下降沿、上升沿,或者是低电平触发。 4.1.2 外部中断 当外部中断使能并且配置为电平触发(INT0/INT1),只要引脚电平为低,中断就会产生。因为中断检测是异步的,可以用来将器件从睡眠模式唤醒。 若要求INT0,INT1在信号下降沿或上升沿触发,I/O 时钟必须工作(睡眠过程中I/O时钟是停止的)。 1、中断寄存器 (1)MCU控制寄存器( MCUCR) 图4.1 MCU控制寄存器 Bit 3, 2 –ISC11,ISC10: 外部中断1触发方式控制 Bit 1, 0 –ISC01,ISC00: 外部中断0触发方式控制 例4.1 设置寄存器MCUCR,响应外部中断INT1为上升沿产生中断。 MCUCR |= 0x0c; 例4.2 利用寄存器MCUCR,响应外部中断INT0,上升沿有效。 MCUCR |= 0x03; (2)通用中断控制寄存器(GICR) Bit7-INT1: 外部中断请求1 使能 Bit6-INT0: 外部中断请求 0 使能 例4.3 利用控制寄存器GICR,设置INT1、INT0均使能外部中断使用程序。 GICR = 0xc0; (3)通用中断标志寄存器(GIFR) Bit7-INTF1: 外部中断标志1 例4.4 GIFR=0x80 //表示外部中断标志1置位(即表示启动了外部中断1) 4.1.3 中断响应 1、中断响应的条件 除了非屏蔽中断外,其它中断都可以用软件来屏蔽或开放。系统只有具备如下的中断条件,CPU才可能对中断请求进行响应。 (1) 设置中断请求触发器 每一个中断源,能发出中断请求信号,而且这个信号能保持着,直至CPU响应这个中断后,才可清除中断请求。 (2) 设置中断屏蔽触发器 在实际系统中,往往有多个中断源。在每一个外设的接口电路中增加了一个中断屏蔽触发器,只有当此触发器为“1”时,外设的中断请求才能被送出至CPU。 (3) 设置中断允许触发器 在CPU内部有一个中断允许触发器。只有当其为“1”时,CPU才能响应中断;若其为“0”,即使INTR线上有中断请求,CPU也不响应。而这个触发器的状态可由软件指令来改变。 当CPU复位时,中断允许触发器为“0”,所以必须要用软件指令来开中断。当中断响应后,CPU就自动关中断,所以在中断服务程序中也必须要用软件指令来开中断。CPU在现行指令结束后即响应中断。 2、中断响应过程 当满足了中断的条件后,CP
文档评论(0)