如何写中断程序?

如何写中断程序?,第1张

中断函数不用进行函数声明,可以写在MAIN函数前面也可以写在MAIN函数后面。

一、中断服务程序,处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。

二、当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。

三、实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。

四、保护被中断进程现场。为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。

五、分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。恢复被中断进程的现场,CPU继续执行原来被中断的进程。

芯片的寄存器变量压出栈 *** 作是非常频繁的,一般来说芯片都会为它设计一条指令直接来完成这个步骤,如果你想重写一个中断的压出栈 *** 作的话,那么可以去尝试更改它的中断向量表,通过重写这个中断来达到这个目的,这个方法虽然可以通过调用原来的中断程序来简化工作,但是还是有一些难度的,不知道你为什么会有这个要求,应该尽量想其他方法来代替吧,要查阅资料的话就查一下中断机制和中断向量表方面的。

因图片太模糊,看不太清楚。但根据大意,可以看出来,下面那个是定时器T0的中断服务子程序吧,你说的最后两行是写时间常的,对吧?

按要求,在定时器中断程序中,首先要重写时间常数,以减少计时误差,这是规范的写法。

但是,现在这种烂书遍地都是,为什么这么写,一个字烂呗。没有原因,反正怎么写也不用负责任。至于那字行码有十五个(准确叫段码)就更好理解了,也没有原因,写书的烂,印书的更烂,你要信,就按样写,要不信,就自己重写。信与不信,书都在那。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11930664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存