请教

[复制链接]
1996|6
 楼主| winger2008 发表于 2007-11-10 10:44 | 显示全部楼层 |阅读模式
AC, ov, se, ps, vr
大家帮我看看这个51程序,<br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;&nbsp;&nbsp;&nbsp;0000h<br />&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;&nbsp;&nbsp;&nbsp;main&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;&nbsp;&nbsp;&nbsp;0003h<br />&nbsp;&nbsp;&nbsp;&nbsp;AJMP&nbsp;&nbsp;&nbsp;&nbsp;IN2<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;0013H<br />&nbsp;&nbsp;&nbsp;&nbsp;AJMP&nbsp;&nbsp;&nbsp;&nbsp;IN3<br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;&nbsp;&nbsp;&nbsp;0030h<br />main:&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;ie,#85h<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;tcon,#05h<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;sp,#20h<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;P3.1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;IE,10000101B<br />&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;IP,00000001B<br /><br />START:&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;P2.4<br />rotate:&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CPL&nbsp;&nbsp;&nbsp;&nbsp;P2.4<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;ajmp&nbsp;&nbsp;&nbsp;&nbsp;rotate<br />delay:&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r3,#0FFh<br />del:&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r4,#0FFh<br />&nbsp;&nbsp;&nbsp;&nbsp;djnz&nbsp;&nbsp;&nbsp;&nbsp;r4,$<br />&nbsp;&nbsp;&nbsp;&nbsp;djnz&nbsp;&nbsp;&nbsp;&nbsp;r3,del<br />&nbsp;&nbsp;&nbsp;&nbsp;ret<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />IN2:&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;psw<br />&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;aCC<br />&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;&nbsp;&nbsp;&nbsp;rs0<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;rs1<br />&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;&nbsp;&nbsp;&nbsp;ie0<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r0,#09h<br />loop:&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SETB&nbsp;&nbsp;&nbsp;&nbsp;P2.4<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;P2.3<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;SETB&nbsp;&nbsp;&nbsp;&nbsp;P2.3<br />&nbsp;&nbsp;&nbsp;&nbsp;ACALL&nbsp;&nbsp;&nbsp;&nbsp;DELAY<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;djnz&nbsp;&nbsp;&nbsp;&nbsp;r0,loop<br />&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp;aCC<br />&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp;psw<br />&nbsp;&nbsp;&nbsp;&nbsp;reti<br />IN3:&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;psw<br />&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;aCC<br />&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;&nbsp;&nbsp;&nbsp;rs0<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;rs1<br />&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;&nbsp;&nbsp;&nbsp;ie1<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r1,#0Fh<br />loop1:&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SETB&nbsp;&nbsp;&nbsp;&nbsp;P2.4<br />&nbsp;&nbsp;&nbsp;&nbsp;SETB&nbsp;&nbsp;&nbsp;&nbsp;P2.3<br />&nbsp;&nbsp;&nbsp;&nbsp;CLR&nbsp;&nbsp;&nbsp;&nbsp;P2.2<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;SETB&nbsp;&nbsp;&nbsp;&nbsp;P2.2<br />&nbsp;&nbsp;&nbsp;&nbsp;ACALL&nbsp;&nbsp;&nbsp;&nbsp;DELAY<br />&nbsp;&nbsp;&nbsp;&nbsp;acall&nbsp;&nbsp;&nbsp;&nbsp;delay<br />&nbsp;&nbsp;&nbsp;&nbsp;djnz&nbsp;&nbsp;&nbsp;&nbsp;r1,loop1<br />&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp;aCC<br />&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp;psw<br />&nbsp;&nbsp;&nbsp;&nbsp;reti<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br /><br /><br />问题:当程序进入中断int0时,为什么当int1中断程序不能跳出并转入int1;<br />当程序进入int1时,为什么当int0中断程序不能跳出并转入int0<br />要实现进入int1中断的同时,如果发生int0中断程序转入int0,该怎么编写?<br />谢谢,请指教<br />
maychang 发表于 2007-11-10 10:50 | 显示全部楼层

中断程序还能跳来跳去?那不是全乱了?

我猜想楼主的意思是:<br />当IN2中断例程被执行时,如果int1发生,在int0未执行完毕前得不到执行。<br />是不是这个意思?<br />
 楼主| winger2008 发表于 2007-11-10 10:59 | 显示全部楼层

我的意思

我的意思是怎样能够实现中断的嵌套
shura1206 发表于 2007-11-10 13:36 | 显示全部楼层

楼主的意思是不管优先级都能嵌套,对不?

&nbsp;高级的嵌套在低级里,直接用就可以;<br />&nbsp;低级的嵌套在高级里,可以在中断服务程序里置优先级.<br />&nbsp;例如:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;main:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;ie,85h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;int0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setb&nbsp;px1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reti<br /><br />&nbsp;&nbsp;int1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clr&nbsp;px1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reti<br />
 楼主| winger2008 发表于 2007-11-10 13:50 | 显示全部楼层

谢谢

谢谢,我试试,
ayb_ice 发表于 2007-11-10 14:03 | 显示全部楼层

51的中断嵌套是硬件完成的

  
shura1206 发表于 2007-11-10 14:10 | 显示全部楼层

可满足楼主要求的超强单片机

建议楼主用长沙启芯的LSX051系列单片机;<br />可同时支持2道程序运行,这样2个中断程序可以一起运行;<br /><br />&nbsp;&nbsp;main:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;ie,c5h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;开中断赋能<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br /><br />&nbsp;&nbsp;int0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reti<br />&nbsp;&nbsp;int1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reti
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部