找到单片机中的外部中断引脚位置,查看规格书得知,外部中断引脚采用下降沿触发或低电平触发,在这里我们接两个按键,使用按键按下产生低电平触发外部中断的方式:
在P2.1、P2.2处接两个LED灯来演示进入外部中断后进行操作LED灯的效果:
如何使用外部中断呢? 百度查找STC89C51系列的中断例程:
进行简单修改即得到了我们想要的程序框架:
#include <REGX52.H>
sbit LED1 = P2^1;
sbit LED2 = P2^2;
void main()
{
IT0 = 1; //设置中断0的中断类型,1:下降沿 0:低电平
EX0 = 1; //使能中断0中断
IT1 = 1; //设置中断1的中断类型,1:下降沿 0:低电平
EX1 = 1; //使能中断1中断
EA = 1; //打开全局中断开关
while (1);
}
void exint0() interrupt 0 //(location at 0003H)
{
LED1 = ~LED1;
}
void exint1() interrupt 2 //(location at 0013H)
{
LED2 = ~LED2;
}
程序编译好以后,在proteus中双击单片机主芯片U1,在program中配置keil文件程序的地址。
点击运行仿真,按键按下进入中断,LED灯亮起。