单片机中断嵌套
单片机中断嵌套
一、开发板原理图
1、外部中断端口

2、独立按键(P1.4~P1.7)

3、LED灯对应P2口

二、Keil程序
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
//流水灯显示数据组
uchar dis_code [9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//延时函数
void delay(uint i)
{
uint j;
for(;i>0;i--)
for(j=0;j<125;j++)
//空函数
{;}
}
//主函数
void main ()
{
uchar a;
for(;;)
{
EA=1; //总中断允许
EX0=1; //允许外部中断0中断
EX1=1; //允许外部中断1中断
IT0=1; //选择外部中断0为跳沿触发方式
IT1=1; //选择外部中断1为跳沿触发方式
PX0=0; //外部中断0为低优先级
PX1=1; //外部中断1为高优先级
for(a=0;a<8;++a)
{
delay(500);
//流水灯显示数据送到P2口驱动LED显示
P2=dis_code[a];
}
}
}
//外部中断0的中断服务函数
void int0_isr(void) interrupt 0 using 0
{
for(;;)
{
//1010 1010 奇数位亮
P2=0xaa;
delay(400);
//0101 0101 偶数位亮
P2=0x55;
delay(400);
}
}
//外部中断1的中断服务函数
void int1_isr(void) interrupt 2 using 1
{
//8位全亮全灭5次
uchar m;
for(m=0;m<5;m++)
{
//8位全亮
P2=0;
delay(500);
//8位全灭
P2=0xff;
delay(500);
}
}
三、开发板短接线连接

P1.4~P1.7端口对应独立按键,这里选择P1.4和P1.5,分别连接INT0和INT1
四、效果展示

浙公网安备 33010602011771号