电工之家_电工基础知识学习网站
当前位置:电工之家 > 电工知识 > 单片机 > 正文

单片机的中断程序是怎么执行的

时间:2019-12-14 16:36 来源:电工之家

单片机的中断就是类似的一个过程,发生中断时,就会打断正在执行的主程序,先处理完中断任务,返回主程序继续运行,当然在执行中断函数之前,单片机需要把关键的数据保存下来,中断函数执行完成后才可以正确的恢复主函数运行。
单片机的主程序是怎么运行的?
其实单片机的主程序其实是一个主函数,我们一般命名为Main,主函数会从上住下运行的,执行到最后又返回上面继续运行。我们用C语言编写Main主函数时,会用到while(1)让主程序不断的循环。
由此可见,主程序里的各种功能是按着顺序来执行的,谁也不能插队。那怎么样来实现中途打断插队呢?这就需要用到中断了。
单片机的中断程序是怎么执行的?
单片机有着各种和样的中断功能,比如定时器中断、外部中断、串口中断等等。比如我们要实时检测一个按键的按下事件,如果在主程序中进行扫描,就会有一定的延时,需要等主程序运行到按键扫描的程序时才可以检测到按键的状态。
中断是单片机一个重要的功能,单片机会给所有中断功能分配一个中断向量(有些中断功能会共用一个中断向量)。当开启了相应的中断功能并且发生中断时,就会自动跳转到对应的中断向量运行。在中断向量处,我们就可以调用我们编写好的中断函数,处理相关的事件就可以了。如果开启了中断嵌套,在中断函数执行过程发生优先级更高的中断,还可以暂停正在运行的中断函数,去执行更高级别的中断程序。
单片机的中断程序是怎么执行的
中断函数为什么不在主函数中运行?
主函数是一个函数,中断函数也是一个函数,它们是独立的函数,所以是分开的。上面已经说得很清楚了,中断是打断正在运行的函数去执行优先级更高的函数,所以中断就是打断主函数去执行更高优先级别的中断函数的一个过程。
在发生中断时,单片机会自动跳转到对应的中断向量,在中断向量处,我们需要调用中断函数来处理中断事件,如果中断事件的处理程序放在主函数中,那么这些处理中断事件的程序就不是一个独立的函数了,就没法调用了。

看过《单片机的中断程序是怎么执行的》的人还看了以下文章
单片机外部中断程序为什么中断不写在主函数中 单片机外部中断程序为什么中断不写在主函数
一、中断的意义 中断的意思就是打断正在进行的任务去执行更紧急的任务,显而易见至少要2套程序,一套主程序,一套中断程序。 写在主程序中就只能一步一步执行,达不到优先级高的目的了。所以这样是不行的。 二、单片机有多个硬件入口 0X0000地址就是硬件复位...
学习单片机需要先学好C语言再去学单片机吗 学习单片机需要先学好C语言再去学单片机吗
首先肯定一点的是学习单片机不需要先学好C语言再去学单片机,而是在学习单片机的过程中可以促进C语言的学习! 我在学习单片机时对C语言也只是了解其皮毛,我对C语言比较深刻的了解是在学习单片机过程中逐渐形成的。通过编写简单的小程序慢慢验证C语言语句的...
零基础可以学单片机吗 零基础可以学单片机吗
如何从零基础学单片机是每位单片机爱好者或电子爱好者想得到的答案,我根据自己学单片机 一些经验与各位朋友们分享一下我学习单片机的经验,通过介绍我自己学习单片机的整个过程起到抛砖引玉的目的,同时希望能给单片机爱好者提供一个参考的作用。 单片机类...
单片机最小系统里一般具有的电路 单片机最小系统里一般具有的电路
要使单片机能够正常工作,一般指的是单片机最小系统,下面说说最小系统里一般具有的电路: (1)电源是必须的首要条件,处理器必须供电才有可能正常工作。单片机的电源一般为5V或3.3V,目前低功耗的单片机大多数为3.3V供电。 (2)其次是时钟(晶振),时钟...
mpc8052单片机芯片烧了可以直接替换吗 mpc8052单片机芯片烧了可以直接替换吗
单片机烧坏了,不能同型号直接替换,而是需要烧写对应的程序后才能实现功能。题目中的MPC8052单片机是非常老的型号了,这个产品应该也是非常老了,在市面上能不能买到还很难说。这款单片机如果烧坏了,除非从同产品中拆机替换,否则这个产品基本就宣告报废了...