完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ORG 0000H
LJMP MAIN ORG 0003H //外部中断0,作为急救车信号,当p3.2按钮按下,即有急救车信号 LJMP INTO ORG 000BH LJMP INTR0 ORG 1000H MAIN: MOV P3,#0FFH MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#83H SETB TR0 BEGIN: MOV P1,#11101110B //东西红灯亮 MOV P0,#11101110B //南北红灯亮 HERE:SJMP HERE //等待中断 INTR0: MOV R0,30H MOV R1,31H PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H INC R0 MOV 30H,R0 CJNE R0,#20,RETURN MOV R0,#00 MOV 30H,R0 INC R1 MOV 31H,R1 LOOP: CJNE R1,#3,L1 MOV P1,#10111011B //东西绿灯亮 MOV P0,#11101110B //南北红灯亮 L1: CJNE R1,#13,L2 MOV P1,#11011101B //东西黄灯亮 L2: CJNE R1,#14,L3 MOV P1,#11111111B //东西黄灯灭 L3: CJNE R1,#15,L4 MOV P1,#11011101B //东西黄灯亮 L4: CJNE R1,#16,L5 MOV P1,#11111111B //东西黄灯灭 L5: CJNE R1,#17,L6 MOV P1,#11011101B //东西黄灯亮 L6: CJNE R1,#18,L7 MOV P1,#11111111B //东西黄灯灭 MOV P1,#11101110B //东西红灯亮 MOV P0,#10111011B //南北绿灯亮 L7: CJNE R1,#29,L8 MOV P0,#11011101B //南北黄灯亮 L8: CJNE R1,#30,L9 MOV P0,#11111111B //南北黄灯灭 L9: CJNE R1,#31,L10 MOV P0,#11011101B //南北黄灯亮 L10:CJNE R1,#32,L11 MOV P0,#11111111B //南北黄灯灭 L11:CJNE R1,#33,L12 MOV P0,#11011101B //南北黄灯亮 L12:CJNE R1,#34,RETURN MOV P0,#11111111B //南北黄灯灭 MOV R1,#3 MOV 31H,R1 LJMP LOOP return: POP ACC POP PSW REti INTO: CLR TR0 PUSH PSW PUSH ACC MOV P1,#11101110B //东西红灯亮 MOV P0,#11101110B //南北红灯亮 ACALL DELAY POP PSW POP ACC SETB TR0 RETI DELAY:MOV R7,#04 D2: MOV R6,#250 D3: MOV R5,#250 DJNZ R5,$ DJNZ R6,D3 DJNZ R7,D2 RET END 现在出现的问题是:按下按钮进入中断,定时器0关闭,红灯亮起,然后开启定时器,返回,但是返回不到原来的状态,比如原来是绿灯亮,但是返回直接到红灯亮
|
|
相关推荐
4个回答
|
|
这就是典型的错误,你进入中断后不但PSW和ACC要入栈,你用到的寄存器都要入栈,你中断里面用的P0,P1,还有调用的delay子程序用到的R5,R6,R7。都要入栈。这样跳出中断才能回到以前的状态。
|
|
|
|
很简单,因为你按键中断并没有保存原来的灯的状态,你让它退出中断后怎么恢复成原来的状态。至少你在INTO里面要加上PUSH P0
PUSH P1 返回时在把两个POP出来,保证有用 |
|
|
|
哦哦,谢谢你们
|
|
|
|
嗯嗯,非常感谢 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
828 浏览 0 评论
824 浏览 0 评论
861 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
836 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1292 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11821 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 09:25 , Processed in 0.732150 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号