前言
蓝桥杯单片机中断系统学习记录
一、硬件原理
P3.2引脚与P3.3引脚分别对应外部中断0和外部中断1功能,两者引脚在原理图上是按键的一部分,将COM3中2、3脚短接,即共同接地,所以当按键按下时即触发下降沿中断。
所以根据以上中断结构图来配置相应的位即可。
二、程序搭建
main.c
#include "bsp_init.h"
#include "bsp_led.h"
#include "Delay.h"
#include "Int_init.h"
/*全局变量*/
unsigned char ucled;
unsigned char i;
void main(void)
{
Cls_Peripheral();
Int_init();
while(1);
}
/**
* 函数名:外中断0中断服务函数
* 函数功能:完成LED的反转
* 入口参数:无
* 返回值:无
*/
isr_itr_0() interrupt 0//函数+中断号
{
for(i=0;i<3;i++)
{
ucled = 0x01;
Led_Disp(ucled );
Delay(200);
ucled = 0x00;
Led_Disp(ucled );
Delay(200);
}
}
/**
* 函数名:外中断1中断服务函数
* 函数功能:完成LED的反转
* 入口参数:无
* 返回值:无
*/
isr_itr_1() interrupt 2//函数+中断号
{
for(i=0;i<5;i++)
{
ucled = 0x02;
Led_Disp(ucled );
Delay(500);
ucled = 0x00;
Led_Disp(ucled );
Delay(500);
}
}
Int_init.c
#include "Int_init.h"
/**
* 函数名:外部中断初始化函数
* 函数功能:对外中断初始化,并配置成下降沿触发
* 入口参数:无
* 返回值:无
*/
void Int_init(void)
{
IT0 = 1;//配置成下降沿触发,如果是0则上升沿下降沿均可触发
EX0 = 1;//配置外中断0使能
PX0 = 1;//配置成高优先级
IT1 = 1;//配置成下降沿触发
EX1 = 1;//配置外中断1使能,如果是0则上升沿下降沿均可触发
PX1 = 0;//配置成低优先级
EA = 1;//打开总中断
}
Int_init.h
#include "STC15F2K60S2.H"
/**
* 函数名:外部中断初始化函数
* 函数功能:对外中断初始化,并配置成下降沿触发
* 入口参数:无
* 返回值:无
*/
void Int_init(void);
其他的.c/.h文件在我这篇文章里【蓝桥杯单片机之点灯学习记录】,相当于是在原来的基础上再添加的,只需修改函数,添加头文件和中断服务函数即可,这里就不贴出了。
中断嵌套效果演示
中断嵌套演示