找回密码
 立即注册
查看: 319|回复: 2

求助,STC8H单片机开启中断

[复制链接]

2

主题

7

回帖

44

积分

新手上路

积分
44
发表于 2024-8-2 11:55:54 | 显示全部楼层 |阅读模式
void main(void)
{       
        UART_config();
        Timer2_config();

        // 配置P4.6为外部中断下降沿触发
        P_SW2 |=0x80;
        P4M1 = 0x00;  // 设置P4M1寄存器,准双向口
        P4M0 = 0x00;  // 设置P4M0寄存器


       
        P4INTE = 0x40; // 置位P4INTE寄存器的第6位,P4端口中断使能
        P4INTF = 0x40; // 置位P4INTF寄存器的第6位,P4端口中断标志位


       
        P4IM0 = 0x00; // 下降沿触发
        P4IM1 = 0x40; // 下降沿触发


       
        IT1 &= ~(1 << 6); // 设置IT1寄存器的第6位
        EX1 |= (1 << 6); // 设置EX1寄存器的第6位
        EA = 1; // 使能全局中断
        
while(1)
        {
                delay_ms(1000);
                if(ISR1_Flag)
                {
                        TX1_write2buff(ISR1_Flag);
                        ISR1_Flag = 0;
                       
                }
}



void INT1_ISR_Handler (void) interrupt 13                //进中断时已经清除标志
{       
        ISR1_Flag = P4INTF;  //取中断标志位打印,确认是否进入中断
        P4INTF = 0x00;   //清除中断标志位
}
isr.asm:

        CSEG AT 014BH    //P4INT_VECTOR地址
        LJMP 006BH
       

        END


现在标志位打印不出来,应该就是没有进入中断,大佬帮忙看看哪里有问题
       

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-8-2 15:30:21 | 显示全部楼层
本帖最后由 Lkck8210 于 2024-8-2 15:35 编辑

P4口的中断你设置EX1和IT1干嘛?
2024-08-02_152427.png

2024-08-02_152906.png

而且你用的是什么型号?
2024-08-02_153455.png



回复 支持 反对

使用道具 举报 送花

2

主题

7

回帖

44

积分

新手上路

积分
44
发表于 2024-8-2 15:38:06 | 显示全部楼层
Lkck*** 发表于 2024-8-2 15:30
P4口的中断你设置EX1和IT1干嘛?

已经把EX1和IT1删了
用的是STC8H3K32S2
目前问题已经解决了,利用汇编从P4口中断地址014BH跳转到中断保留号13号上
之前是因为汇编文件类型选错了,所以一直没有编译到
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 11:14 , Processed in 0.167505 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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