单片机多级外部中断控制,请问如何加入流水灯,现在在进行课程设计,迫切需要实现的方法。

已实现的功能:1.单片机p1端口接八只LED,复位后,8只灯闪烁;2按下外部中断开关k1后,8只灯中一个灯左右移三次,之后恢复闪烁;按下外部中断开关k2后,八只灯中两个灯... 已实现的功能:
1. 单片机p1端口接八只LED,复位后,8只灯闪烁;
2 按下外部中断开关k1后,8只灯中一个灯左右移三次,之后恢复闪烁;按下外部中断开关k2后,八只灯中两个灯左右移四次,之后恢复闪烁;之后,8个LED灯恢复闪烁;
3 注意多级中断优先级。如:若k2高优先级,k1低优先级。则,当按k1使一只灯左右移过程中按下k2,立即开始两只灯左右移,然后再继续完成没有完成的一只灯移动次数;若先按k2,在两只灯左右移动没进行完时按下开关k1,并不会影响到两只灯的移动,直至完成规定次数。

已编写好的代码:

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP WINT0 ;转至外部中断0处理程序
ORG 0013H
LJMP WINT1 ;开始部分
MAIN: SETB EA
SETB EX1
SETB EX0
SETB PX0
SETB IT0
SETB IT1 ; 设为跳沿方式
MOV SP,#70H
CLR A
SS: MOV P1,A
ACALL DELAY
CPL A
JMP SS ;闪烁
WINT0: PUSH Acc ;中断处理程序,两灯左右移4次
PUSH PSW
SETB RS0
CLR RS1 ;设为1组寄存器
MOV R0,#04 ;移动4次
MOV A,#0F3H
LEFT2: MOV P1,A
RL A
CALL DELAY
DJNZ R0,LEFT2 ;左移了4次
MOV R1,#04
RIGHT2:MOV P1,A
RR A
CALL DELAY
DJNZ R1,RIGHT2 ;再右移4次
POP PSW
POP Acc
RETI
WINT1: PUSH Acc ;中断处理程序,1灯左右移3次
PUSH PSW
SETB RS0
SETB RS1
MOV R0,#03
MOV A,#0EFH
LEFT1: MOV P1,A
RL A
CALL DELAY
DJNZ R0,LEFT1
MOV R1,#04
RIGHT1:MOV P1,A
RR A
CALL DELAY
DJNZ R1,RIGHT1
POP PSW
POP Acc
RETI
DELAY: MOV R5,#40 ;延时子程序
D1: MOV R6,#40
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
采用AT89S52,电路已仿真完毕,只是不知道该如何加入流水灯,增加新功能,试了好几次都没有成功。如果能尽快回答,我会追加50分!!!
展开
 我来答
lylxy1965
2011-05-13 · TA获得超过2413个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:233万
展开全部
功能:先保持全灭一段时间,然后顺序点亮8个灯,全亮后再保持一段时间,然后从从头开始

SS2:
MOV A,#0FFH ;全部熄灭
MOV P1,A ;送显示
ACALL DELAY1S ;延时一段时间,保持全灭1S
SS1:
RL A ;循环左移1位
CLR ACC.0 ;将最低位置0,点亮1个等
MOV P1,A ;送显示
ACALL DELAY100ms ;延时一段时间,感觉上100ms比较合适,根据情况自己调整一下
JNZ SS1 ;A不等于0,说明还有灯未点亮,循环继续下一个
ACALL DELAY1S ;A=0,保持全部点亮1S钟
JMP SS2 ;再次开始

延时子程序我就不写了,你应该会的。
建议:牵涉到延时,最好用定时中断实现,实际运用中ms级的延时一般都会使用中断实现,否则CPU的资源就浪费了。如果是作业就算了,如果你想学些东西最好用中断的方式再尝试一下。
更多追问追答
追问
是直接加入到代码中吗?我刚试了,调试错误,该怎么修改原代码?
追答
先替换掉原来主程序闪烁部份的代码试试。调试是什么错误?上面我用了两个子程序调用,没编些具体的代码,你在编写时要注意压栈操作,别和原来的延时程序冲突了。
东莞市锋鸣电子有限公司
2020-07-25 广告
电磁有源蜂鸣器的类型及常见故障:现在市场上常见的电子磁式有源蜂鸣器有4种:第1种:分体型采用软包封启动(邦定启动),这种蜂鸣器价格较便宜(市场价约0.30元左右,此价仅供参考);这种类型的蜂鸣器的性能不稳定,受环境影响较明显,如在运输过程中... 点击进入详情页
本回答由东莞市锋鸣电子有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式