完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我刚开始学习单片机AT89S51,正在练习外部中断,有一个问题不明白请大家指教,当外部中断INT1发生并执行相应的中断子程序时,外部中断INT0如果发生的话,会执行相应的中断子程序吗?汇编程序如下:
ORG 00H; JMP READY; ORG 03H; JMP INT_0; ORG 13H; JMP INT_1; READY: MOV IE,#85H; MOV A,#80H; MAIN: MOV P0,#0F0H; JMP MAIN; INT_0: ;向右的流水灯 RR A; MOV P0,A; CALL DELAY; JMP INT_0; REti INT_1: ;向左的流水灯 RL A; MOV P0,A; CALL DELAY; JMP INT_1; RETI DELAY: ;延时 MOV R5,#50; D1: MOV R4,#20; D2: MOV R3,#248; DJNZ R3,$ DJNZ R4,D2 DJNZ R5,D1 RET END 我的实验现象是:分别响应外部中断INT0和INT1时均能实现设定的目标,但当我先响应外部中断INT1,再响应外部中断INT0时,向左的流水灯无法变为向右。 |
|
相关推荐
5个回答
|
|
没有保护现场。然后就是在中断里一直循环这样不好吧。
|
|
|
|
我就是想验证一下当外部中断INT1响应时,能否再响应外部中断INT0,这种顺序不是符合中断的优先级吗?对了,什么是保护现场啊?还请赐教 |
|
|
|
你这个貌似00H开始汇编,
JMP READY; ;两个字节空间 MOV IE,#85H; ;两个字节空间 MOV A,#80H; ;两个字节空间 这3句占用6个字节 把外部中断0服务程序入口地址覆盖了吧。 ORG 03H; ;03H外部中断0服务程序入口 JMP INT_0; 你把第一行改成ORG 0100H 试试保护现场就是为了使中断服务子程序运行的时候不破话某些寄存器或者寄存单元的数据。以免在中断返回后主程序的运行受到影响。堆栈操作指针主要是用于“保护现场”和“现场恢复”的、希望对你有帮助。(PUSH --->入栈 POP--->出栈 太多了你百度吧。。。。。) |
|
|
|
看不懂汇编,但是如果执行INT1时,如果来了INT0会先执行INT0的,执行结束后会继续执行刚才INT1里的语句
|
|
|
|
谢谢你了 我试试 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
690 浏览 0 评论
735 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
624 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1099 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1092 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11797 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 19:05 , Processed in 0.691415 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号