单片机为什么要控制中断

 我来答
督秀珍安念
2020-01-25 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1002万
展开全部
中断保护现场,是为了你中断子程序执行完以后能够返回到你程序中中断点,即产生中断的地方,使程序能够继续向下执行!!!!
如过你说的不用保护现场的话,那么程序执行完以后就不能够回到现场,那么你的程序将不知道要跳转到那里去了,也就是飞鸟,呵呵……
你说的中断嵌套,也是一样的,两者都要保护现场,不然你也不能够回到现场,程序也会飞的!!!!
而我们保护现场的数据都是放在堆栈中的,因此,你的中断次数也不能够超过堆栈的级数,那样数据也会丢失!!!!
说白了,中断它不同于子程序,子程序是固定好了的,返回的位置也固定了;而中断我们不能够预知它在那里发生中断,因此要保护现场,使中断子程序执行完后返回到中断的地方!!!
呵呵……说的太多了!!!
我知道你说的意思了,但是你要知道,中断现场保护是在中断子程序中进行的,因此当你高一级的中断发生的时候(他们不可能共用一个中断子程序,如果是同一中断,那也不可能,因为51中断中你进入中断子程序后要将禁止该中断再次中断,好象似的,嘿嘿……你可以试试),在高一级的中断子程序中也有现场保护,你的问题就是没有把现场保护放对地方!!!!!
============================================================
它们是把现场保护在同一堆栈中,我跟你打个比方吧,假如说堆栈的地址是80H,低一级的中断要保护的是1,2,3;高一级要保护的现场是4,5,6,那么在低一级的中断发生的时候,现场保护1,2,3将压如堆栈,(顺序书上应该有,这里是个比喻),那我先压入1,堆栈地址加1,压入2,堆栈地址再加1,如果这个时候高一级的中断发生,那么现在就应该跳到高一级中断的子程序,堆栈地址就是82H了,在将4,5,6分别压入堆栈,这样堆栈的地址就是85H,当高一级的中断子程序结束后,返回现场,堆栈的数据要从85H开始弹出,这样现场返回的就是6,5,4,这个时候程序就会跳到中断之前的地方,即底一级的中断那里,将要继续将3保护到堆栈中,在执行低一级的中断子程序.(其中,你要在中断保护现场完了后将中断标志清0啊,不然它始终会中断的,不可能去执行程序去了...)
zhanzy_yang
2012-05-31
知道答主
回答量:30
采纳率:0%
帮助的人:3.9万
展开全部
不加中断的话,程序之能重头跑到尾,而中断提高了程序的灵活程度,可以实现更多功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网破仑
2012-06-01 · 超过10用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:28.6万
展开全部
中断很有用的,例如当程序大了的时候,采用扫描的方式系统反应会很慢,而采用中断时系统就能很迅速的反应。在实时性方面很有用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-31
展开全部
中断可以满足很多实时性要求,比如老师正在上课,你很想上WC,你就会举手去中断他,然后说你要上厕所,他响应你这中断,同意你去,然后你就要以实时的去解决你的紧急事宜了。
如果老师不响应中断的话,正常情况下,你就只能憋着了。。。。。
当然,最后下课其实也是一个中断,呵呵!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式