51单片机共有两个外部中断,单片机的中段系统如下
其中外部中断分别是INT0与INT1,关联IO口为P3.2 P3.3
使用这两个中断的步骤如下
1. 配置中断类型 IT-X 为1代表对应IO口下降沿中断为0代表对应IO口低电平中断
注意低电平中断进入之后如果IO口不取消低电平,单片机会不停地进中断
2.打开对应的中断开关 EX-X,为1打开中断为0关闭中断
3.打开总中断开关EA,为1打开 0关闭
4.设定中断优先级(也可以不设定,按照系统默认优先级处理)
5.软件中编写中断处理函数
#include "exti.h"
static void Exti0Init(u8 mode)//P3.2Ò
{
if(mode)mode = 1;
EA = 1; //
EX0 = 1;//
IT0 = mode; //1:
}
static void Exti1Init(u8 mode)//P3.3Ò
{
if(mode)mode = 1;
EA = 1; //
EX1 = 1;//
IT1 = mode;
}
void ExtiInit(u8 ch,u8 mode)
{
switch(ch)
{
case 0:
Exti0Init(mode);
break;
case 1:
Exti1Init(mode);
break;
}
}
void Exti0Handle(void) interrupt 0
{
//doso<span style="color:windowtext;">mething here</span>
}
void Exti1Handle(void) interrupt 2
{<pre name="code" class="cpp"> //doso<span style="color:windowtext;">mething here</span>
}
示例代码如下