打印

请教下面51C程序一小问题

[复制链接]
1996|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bigda|  楼主 | 2010-11-17 21:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
switch(P2)                        
        {
              case 0xfe:tone1=0xfb;tone2=0xe9;EA=1;break;
              case 0xfd:tone1=0xfc;tone2=0x5c;EA=1;break;
                            default: EA=0;SPK=0;
       }
这个语句 在case里开中断,那么是中断服务结束才break吗?还是一开中断就break?

相关帖子

沙发
HWM| | 2010-11-17 22:10 | 只看该作者
如果有中断请求挂着的话,中断允许打开后便进入到中断服务程序中,完成后返回再执行 break。但如果没有中断挂起,则完全可能执行完“EA = 1;”后直接“break;”。

使用特权

评论回复
板凳
bigda|  楼主 | 2010-11-17 22:12 | 只看该作者
非常感谢你。

使用特权

评论回复
地板
yuyetufu| | 2010-11-18 09:41 | 只看该作者
首先,中断和case是两码事,你开了中断,case还是继续执行的。
其次,根据MCS-51的中断系统的特性规定,访问IE后,还应再继续执行一条指令才能响应中断。以你的例子,如果有中断挂着,且原来IE为0,那么在IE置1后,在break执行完后才能响应。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

21

帖子

1

粉丝