找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2138|回复: 7
收起左侧

为什么单片机中断号改了,仿真结果却不受影响?

[复制链接]
ID:1099698 发表于 2023-11-14 16:21 | 显示全部楼层 |阅读模式
请教大家:外部中断0控制第一个灯的亮灭,为什么中断号改成其他的数字,仿真结果依旧正确。
程序.png
仿真电路.png
回复

使用道具 举报

ID:161164 发表于 2023-11-15 09:44 | 显示全部楼层
你的发现是合符单片机运作的
如果有学过汇编就会很好理解
2023-11-14_175835.png
interrupt 0的向量地址是0003H
interrupt 4的向量地址是0023H
你初始化了外中断0
当外中断0引脚收到信号时
CPU会响应中断申请
先保存现在的PC指针值
再把PC指针指向向量地址
由于编程上没有在0003H地址写中断函数
所以PC会一直累加
如果刚好0004H~0022H都没有代码
加到0023H(interrupt 4)
运行完中断函数后就会执行RETI指令
PC就取回中断前的保存值运行下去
但由于IE0没有被硬件清零
所以外中断0只会响应一次
回复

使用道具 举报

ID:1099698 发表于 2023-11-15 07:42 | 显示全部楼层
c0f9a4 发表于 2023-11-14 21:06
加个工作寄存器组

请问怎么操作  我不会
回复

使用道具 举报

ID:1099698 发表于 2023-11-15 07:40 | 显示全部楼层
npn 发表于 2023-11-14 22:01
interrupt 4 这是一个串口中断,你没有配置串口寄存器。

我的意思是我把中断号改了  仿真依然不受影响  不懂为什么
回复

使用道具 举报

ID:1099698 发表于 2023-11-15 07:40 | 显示全部楼层
csmyldl 发表于 2023-11-14 19:04
不可能进入中断服务程序,肯定实现不了(我改成4不能进中断)

我改成0-4都可以我都懵了
回复

使用道具 举报

ID:57657 发表于 2023-11-14 22:01 | 显示全部楼层
interrupt 4 这是一个串口中断,你没有配置串口寄存器。
回复

使用道具 举报

ID:1099065 发表于 2023-11-14 21:06 来自触屏版 | 显示全部楼层
加个工作寄存器组
回复

使用道具 举报

ID:235200 发表于 2023-11-14 19:04 | 显示全部楼层
不可能进入中断服务程序,肯定实现不了(我改成4不能进中断)
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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