急急急!中断程序怎么和主程序共享数据??

急急急!中断程序怎么和主程序共享数据??,第1张

数据都是共享的,没有所谓返回一说.比如你在中断子程序内修改了VD0,那么这个VD0就是被实实在在的修改了.但是要注意临时变量区,寄存器区等都会在返回程序断点时恢复到以前的值,比如你在主程序内如下 *** 作:LDSM0.1MOVD1234,AC1LDD=AC1,1234=Q0.0然后你在中断子程序内即使更改了AC1的值,比如更改为AC1=0,那么返回到主程序后,AC1会自动恢复为1234,即Q0.0会一直导通...

区别主要是在于用途,一般主程序执行程序作者你自己想要的功能,比如输出信息,四则运算等等,而中断服务程序则是事先编好的某个特定的程序,用来执行一些系统的“紧急情况”,优先级较之一般主程序要高。比如你插入了U盘,准备copy数据到电脑上,这个时候CPU就会调用终端服务程序去处理你这次的IO *** 作,然后再去回到中断之前的状态继续运行CPU的下条指令。

我表达能力有限,给你下文再咀嚼下~~

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

当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。

中断处理过程:

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

(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。

(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。

希望能帮到你~~

中断是硬件入口的无须主程序调用,不同的单片机入口地址不同但地址固定,应该在头文件有定义。发生中断时硬件把当前地址入栈然后跳到中断地址去那里通常只是跳转指令,c编译时会把它指向中断子程序。返回时会返回到中断处继续执行。


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

原文地址:https://54852.com/yw/11324382.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存