找回密码
 立即注册
查看: 1722|回复: 28

I/O 口中断,进不了中断程序是哪里的问题

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-01-03 08:36:45

1

主题

16

回帖

217

积分

中级会员

积分
217
发表于 2024-5-24 09:50:49 | 显示全部楼层 |阅读模式
帮忙看看,我这样用的 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;//第四路供电控制
                                }
//////////////////////////////////////////////////////////
                }
}


微信截图_20240524094914.png
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-5-24 10:08:01 | 显示全部楼层
.asm文件写了吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-5-24 10:12:21 | 显示全部楼层
参考这个帖子:
所有普通I/O口都支持的外部中断演示程序,STC8系列、STC32系列, 中断号37~44
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4731
(出处: 国芯技术交流网站)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-01-03 08:36:45

1

主题

16

回帖

217

积分

中级会员

积分
217
发表于 2024-5-24 10:41:16 | 显示全部楼层
.asm文件   没写

点评

用的13号中断,要参考手册添加这文件的 ~ [attachimg]44988[/attachimg]  详情 回复 发表于 2024-5-24 10:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-5-24 10:47:58 | 显示全部楼层

用的13号中断,要参考手册添加这文件的 ~
截图202405241047143350.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-01-03 08:36:45

1

主题

16

回帖

217

积分

中级会员

积分
217
发表于 2024-5-24 10:59:07 | 显示全部楼层
其他  中断号    是不是  就不用这段代码了,这段代码,直接复制进去就可以了吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-01-03 08:36:45

1

主题

16

回帖

217

积分

中级会员

积分
217
发表于 2024-5-24 11:44:13 | 显示全部楼层
电子DI*** 发表于 2024-5-24 10:47
用的13号中断,要参考手册添加这文件的 ~

只需要  加这几行   就可以了吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-01-03 08:36:45

1

主题

16

回帖

217

积分

中级会员

积分
217
发表于 2024-5-24 11:46:19 | 显示全部楼层
电子DI*** 发表于 2024-5-24 10:47
用的13号中断,要参考手册添加这文件的 ~

CSEG AT 0133H ; //P1口中断入口地址,如果是其他端口,修改这个中断入口地址即可
JMP P1INT_ISR
P1INT_ISR:
JMP 006BH ;// 借用13号中断的中断入口地址
END
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-5-24 13:09:44 | 显示全部楼层
编译器打了补丁就可以扩展超过31的中断号。
使用13号中断,要用ASM处理一下扩展中断的跳转。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-01-03 08:36:45

1

主题

16

回帖

217

积分

中级会员

积分
217
发表于 2024-5-24 13:44:25 | 显示全部楼层
扩展超过31的中断号
微信截图_20240524133938.png
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 04:15 , Processed in 0.128985 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表