原创 AVR128学习笔记之外部中断

2011-2-26 19:17 2945 9 11 分类: MCU/ 嵌入式

AVR系列的外部中断通过引脚INT7:0 触发。只要使能了中断,即使引脚INT7:0 配置为输出,只要电
平发生了合适的变化,中断也会触发。这个特点可以用来产生软件中断。通过设置外部中
断控制寄存器– EICRA (INT3:0) 和EICRB (INT7:4),中断可以由下降沿、上升沿,或者
是低电平触发。当外部中断使能并且配置为电平触发,只要引脚电平为低,中断就会产
生。

 

/*============================================================
外部中断0-3点亮发光二极管
必须注意的是:假如使用的是下降沿触发,就必须保证在未按下键盘的情况下,相
应的外部中断的管脚必须是高电平,按下键盘时产生下降沿,触发外部中断。其他
的情况以此类推。
=============================================================*/
#include <iom128v.h>
#include <macros.h>

volatile unsigned char cnt=255;

void initialize(void);

#pragma interrupt_handler outinterrupt0:2//外部中断0
void outinterrupt0()
{
     cnt=cnt-1;
  if(cnt==0)
      cnt=255;
}

#pragma interrupt_handler outinterrupt1:3//外部中断1
void outinterrupt1()
{
     cnt=cnt-1;
  if(cnt==0)
      cnt=255;
}

#pragma interrupt_handler outinterrupt2:4//外部中断2
void outinterrupt2()
{
     cnt=cnt-1;
  if(cnt==0)
      cnt=255;
}

#pragma interrupt_handler outinterrupt3:5//外部中断3
void outinterrupt3()
{
     cnt=cnt-1;
  if(cnt==0)
      cnt=255;
}

void main(void)
{
     initialize();
     DDRD=0xf0;//将INT0-INT3设置为输入
     while(1)
  {
   PORTA=cnt;
  }
}
void initialize(void)
{
     EIMSK=0x0f;                            // 使用外部中断0-3
     EICRA=0xaa;                            // 下降沿中断请求(异步)
     SEI();                                 // SREG的最高位置1
     DDRE |= BIT(PE2);          //发光二极管片选
     PORTE |= BIT(PE2);
     DDRA=0XFF;
}

 

编译环境:ICCAVR

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户377235 2015-1-31 23:22

EICRA=0xaa;和 EICRB=0xaa;的结果为什么是一样的啊?EIMSK=0xff;

用户377235 2013-11-30 11:08

我单片机的按键是连在PE口的!PE口是中断4,5,6,7。我用 EICRA=0xaa;和 EICRB=0xaa;的结果为什么是一样的啊?

相关推荐阅读
zenghao616_997442595 2012-02-01 14:44
超声波测距资料+程序
这里整理了超声波测距的资料和对应的源代码 附件是我的超声波模块的资料 资料.rar 编译器 ICC AVR 下面是源代码: #include #include #inc...
zenghao616_997442595 2012-01-12 18:42
电力系统潮流计算的计算机算法
电力系统潮流计算的计算机算法: 由于本人参加我们电气学院的电气小课堂,主讲的是计算机算法计算潮流这章,所以潜心玩了一个星期,下面整理给大家分享下。 本人一个星期以来的汗水,弄清楚了计算...
zenghao616_997442595 2011-09-15 18:56
05年电赛悬挂系统资料+控制
悬挂系统源代码.rar 走直线和走圆算法.rar     电赛培训的暑假 附件里面是画圆和画直线的算法 我自己做了05年电赛自动控制类型的题目  悬挂系统  画圆的那道题目 编译器 ICC AVR  ...
zenghao616_997442595 2011-09-15 18:44
TCS32OOD颜色传感器资料+程序
我用的是TCS32OOD型号的颜色传感器  附件里面有相关的资料附件里面还有 RGB对照表  附件里面还有我的颜色传感器的PCB和原理图 颜色传感器PCB.rar 资料.rar 编译器 ICC AVR...
zenghao616_997442595 2011-09-15 18:41
SCA100T角度传感器程序+资料
11年电赛我用的是 sca100t  型号的角度传感器 附件里面是资料和我的工程源文件 angle_sca.rar 读取角度传感器的数据需要进行转换才能得到相应的角度值 转换的公式在官方资料里面有 不...
zenghao616_997442595 2011-09-15 18:37
SPI协议AVR单片机双机通讯
相关寄存器说明以及资料请查阅官方资料文档 编译器 ICC AVRSPI双机通讯源文件 下面是从机接收主文件: #include<iom128v.h>#include<macros.h...
EE直播间
更多
我要评论
2
9
关闭 站长推荐上一条 /3 下一条