- 打卡等级:偶尔看看III
- 打卡总天数:38
- 最近打卡:2025-01-03 08:36:45
中级会员
- 积分
- 217
|
帮忙看看,我这样用的 IO 口中断,进不了中断程序是哪里的问题
//测试工作频率为 11.0592MHz
#include "stc8h.h"
#include "intrins.h"
void main()
{
P_SW2 |= 0x80; //使能访问 XFR,没有冲突不用关闭
P5M0 |= 0x10;
P5M1 &= ~0x10;
P2M0 |= 0xd0;
P2M1 &= ~0xd0;
P3M0 &= ~0xe0;
P3M1 |= 0xe0;
P4M0 &= ~0x1e;
P4M1 |= 0x1e;
P5M0 &= ~0x02;
P5M1 |= 0x02;
P3IM0 |= 0xa0; //P37,P35口上升沿中断
P3IM0 &= 0x0a; //P36口下降沿中断
P3IM1 = 0x00;
P3INTE = 0x70; //使能 P3 口中断
P4IM0 |= 0x14; //P42.P44口上升沿中断
P4IM0 &= ~0x0a; //P41,P43口下降沿中断
P4IM1 = 0x00;
P4INTE |= 0x1e; //使能 P4 口中断
P5IM0 &= ~0x02; //P5口下降沿中断
P5IM1 |= 0x02;
P5INTE |= 0x02; //使能 P5 口中断
EA = 1;
while (1);
}
//由于中断向量大于 31,在 KEIL 中无法直接编译
//必须借用第 13 号中断入口地址
void common_isr() interrupt 13
{
unsigned char intf3,intf4,intf5;
intf3 = P3INTF;//P3中断标志位
intf4 = P4INTF;//P4中断标志位
intf5 = P5INTF;//P5中断标志位
if (intf3,intf4,intf5)
{
P4INTF = 0x00;
////////////////////////////////////////////////////////
////////////////////第一组///////////////////////////////
//////////////////////////////////////////////////////////
if (intf4 & 0x08)//P4.3 口下降沿中断
{
P27 = 0;//第一路供电控制
}
if (intf4 & 0x10)//P4.4 口上升沿中断
{
P27 = 0;//第一路供电控制
}
////////////////////////////////////////////////////////
////////////////////第二组///////////////////////////////
/////////////////////////////////////////////////////////
if (intf4 & 0x02)//P4.1 口下降沿中断
{
P54 = 0;//第二路供电控制
}
if (intf4 & 0x04)//P4.2 口上升沿中断
{
P54 = 0;//第二路供电控制
}
////////////////////////////////////////////////////////
////////////////////第三组///////////////////////////////
///////////////////////////////////////////////////////////
if (intf3 & 0x40)//P3.6 下降沿口中断
{
P24 = 0;//第三路供电控制
}
if (intf3 & 0x80)//P3.7 上升沿口中断
{
P24 = 0;//第三路供电控制
}
////////////////////////////////////////////////////////
////////////////////第四组///////////////////////////////
/////////////////////////////////////////////////////////
if (intf3 & 0x20)//P3.5 上升沿口中断
{
P26 = 0;//第四路供电控制
}
if (intf5 & 0x02)//P5.1 下降沿口中断
{
P26 = 0;//第四路供电控制
}
//////////////////////////////////////////////////////////
}
}
|
-
|