×
单片机 > 单片机程序设计 > 详情

嵌入式学习笔记20——AVR单片机之中断

发布时间:2020-08-25 发布时间:
|
1.ATmega16单片机具有21个中断源。每个中断源都有一个独立的中断向量作为中断服务程序的入口地址,而且所有的中断源都有自己独立的使能位。如果全局中断I和相应的中断使能位都置位,则在中断标志位置位时将执行中断服务程序。

2.一个中断产生后,全局中断使能位I将被清零,后的中断被屏蔽。用户可以在中断服务程序里面对I置位从而开全局中断,在中断返回后全局中断I将重新置位。

3.ATmega16单片机中断向量表介绍:


 

 

4.AVR单片机外部中断

 

  • ATmega16单片机具有3个外部中断,分别是INT0,INT1,INT2,这3个外部中断都是有单片机的引脚触发的。
  • 需要注意的是,如果允许外部中断的话,即使INT0,INT1,INT2这3个引脚都设置为输出方式,外部中断也会触发。
  • INT0,INT1外部中断可以选择的触发方式有上升沿触发、下降沿触发以及低电平触发;INT2只有跳变沿触发(即上升沿触发或下降沿触发),没有电平触发。
  • 使用外部中断涉及到的寄存器有:MCU控制寄存器MCUCR,MCU控制欲状态寄存器MCUCSR,通用中断控制寄存器GICR,通用中断状态寄存器GIFR。

 


 


 

ISC11和ISC10——外部中断1,ISC01和ISC00——外部中断0

 


 

只需关心ISC2位,为零时下降沿触发中断;为1时上升沿触发中断。

 


第7位——全中断使能位

 

各单独中断源中断使能

 

 

使用外部中断函数可以不用关心此寄存器,也可以软件查询。

 

5.

 

 

6.外部中断的使用步骤

 

  • 设置外部中断触发方式(寄存器MCUCR——INT0、INT1,MCUCSR——INT2)
  • 使能外部中断(寄存器GICR)
  • 设置中断管脚(是否需要上拉电阻,若是,则设置INT0、INT1、INT2所在IO口引脚为输出且上拉电阻)
  • 打开全局中断(寄存器SREG)
  • 选择中断号,写中断服务程序。
关键字:AVR  单片机  中断 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
采用AT89C2051的数字可调稳压电源单片机源程序