外部中断相关寄存器的配置方法和触发方式:
实验配置:
[email protected],J3跳线配置为IO方式,J5配置为BTN、J2配置为1-3和2-4。
配置方法:
EX0、IT0负责外部中断0服务函数的开启其中断服务函数优先级为interrupt 0,EX1、IT1负责外部中断1服务函数的开启其中断服务函数优先级为interrupt 2。
触发方式:
P3.2-INT0引脚对应的按键S5。P3.3-INT1引脚对应的按键S4,故而触发方式为按下S5触发外部中断0服务函数,按下S4触发外部中断1服务函数
实例代码:
#include <STC15F2K60S2.H>
sbit LED1=P0^0;
sbit LED2=P0^1;
void cls_buzz()
{
P2=(P2&0x1f)|0xa0;
P0=0x00;
P2&=0x1f;
}
void cls_led()
{
P2=(P2&0x1f)|0x80;
P0=0xff;
P2&=0x1f;
}
void main()
{
cls_buzz();
cls_led();
EX0=1;
IT0=1; // 外部中断0服务函数,边沿触发方式(下降沿) ,对应引脚的按键为 S5
EX1=1;
IT1=1; // 外部中断1服务函数,边沿触发方式(下降沿) ,对应引脚的按键为 S4
EA=1; //中断总开关
while(1); //使总程序持续执行
}
//外部中断0服务函数
void out_interrupt0() interrupt 0
{
P2=(P2&0x1f)|0x80;
LED1=~LED1;
P2&=0x1f;
}
//外部中断1服务函数
void out_interrupt1() interrupt 2
{
P2=(P2&0x1f)|0x80;
LED2=~LED2;
P2&=0x1f;
}
实验现象:
分别按S4、S5按键,对应的led1、led2亮灭显示。