1 / 16

ATmega16 外部中断及定时器控制系统设计

任务 4. ATmega16 外部中断及定时器控制系统设计. 任务内容. 1 、单片机中断系统介绍 2 、项目 1 利用外部中断控制 LED 3 、单片机定时器介绍 4 、项目 2 ATmega16 脉冲计数系统设计 5 、项目 3 ATmega16 直流电机 PWM 调速系统设计 6 、项目 4 电子时钟系统设计. 1 、单片机中断系统介绍. 1.1 中断的概念

alyson
Download Presentation

ATmega16 外部中断及定时器控制系统设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 任务4 ATmega16外部中断及定时器控制系统设计

  2. 任务内容 1、单片机中断系统介绍 2、项目1 利用外部中断控制LED 3、单片机定时器介绍 4、项目2 ATmega16脉冲计数系统设计 5、项目3 ATmega16直流电机PWM调速系统设计 6、项目4 电子时钟系统设计

  3. 1、单片机中断系统介绍 1.1 中断的概念 所谓中断是指CPU正在处理某件事时,外部发生了某一事件,请求CPU迅速处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完毕后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。 实现这种功能的部件称为:中断系统。 产生中断的请求源称为:中断源。

  4. 1.2 中断的响应步骤 1、保护断点 2、寻找中断入口 3、执行中断处理程序 4、中断返回

  5. 1.3 中断嵌套 在ATmega16单片机中,默认是禁止中断嵌套的。这是因为任一中断发生时全局中断使能位I被清零,从而禁止了所有其他的中断。 如果要实现中断嵌套,必须用软件置位I来实现。此时所有的中断都可以中断当前的中断服务程序。待新的中断处理完毕,再返回到被中断了的中断服务程序继续执行。

  6. 1.4 中断优先级 为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程序,硬件将中断源分为若干个级别。

  7. 1.5 中断向量和中断源

  8. 2、外部中断控制系统 ATmega16的外部中断通过引脚INT0、INT1与INT2触发。只要使能了中断,即使引脚INT0..2配置为输出,只要电平发生了合适的变化,中断也会触发。这个特点可以用来产生软件中断。 通过设置MCU控制寄存器MCUCR与MCU控制与状态寄存器MCUCSR,中断可以由下降沿、上升沿,或者是低电平触发(INT2为边沿触发中断)。

  9. 2.1 外部中断相关寄存器 MCU控制寄存器-MCUCR MCU控制寄存器包含中断触发控制位与通用MCU功能。 Bit3,2-ISC11,ISC10:中断触发方式控制1Bit1与Bit0 外部中断1由引脚INT1激发。

  10. Bit1,0-ISC01,ISC00:中断触发方式控制0Bit1与Bit0 外部中断0由引脚INT0激发。

  11. MCU控制与状态寄存器-MCUCSR Bit6-ISC2:中断2触发方式控制 异步外中断2由外部引脚INT2激活,若ISC2写0,INT2的下降沿激活中断。若ISC2写1,INT2的上升沿激活中断。INT2的边沿触发方式是异步的。

  12. 通用中断控制寄存器-GICR Bit7-INT1:使能外部中断请求1 当INT1为“1”,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。 Bit6-INT0:使能外部中断请求0 当INT0为“1”,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。 Bit5-INT2:使能外部中断请求2 当INT2为“1”,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。

  13. 通用中断标志寄存器-GIFR Bit7-INTF1:外部中断标志1 INT1引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入”1”来清零。 Bit6-INTF0:外部中断标志0 INT0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF0。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入”1”来清零。 Bit5-INTF2:外部中断标志2 INT2引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF2。进入中断服务程序之后该标志自动清零。此外,标志位也可以通过写入”1”来清零。注意,当INT2中断禁用进入某些休眠模式时,该引脚的输入缓冲将禁用。这会导致INTF2标志设置信号的逻辑变化。

  14. 2.2 硬件电路设计

  15. 2.3 软件设计 AVR单片机中断服务函数格式(C语言) #pragma interrupt_handler 中断服务函数名:向量号 void中断服务函数名(void) { 代码 }

More Related