中断用于执行优先级更高的任务
中断顾名思义是“中途打断”的意思。举一个简单的例子:您正在和部门的同事在开会,突然老板进来找你,你就得暂停会议,离开会议室,跟老板谈完重要的事情,再重新回来会议室继续会议。单片机的中断就是类似的一个过程,发生中断时,就会打断正在执行的主程序,先处理完中断任务,返回主程序继续运行,当然在执行中断函数之前,单片机需要把关键的数据保存下来,中断函数执行完成后才可以正确的恢复主函数运行。

单片机的主程序是怎么运行的?
其实单片机的主程序其实是一个主函数,我们一般命名为Main,主函数会从上住下运行的,执行到最后又返回上面继续运行。我们用C语言编写Main主函数时,会用到while(1)让主程序不断的循环。

由此可见,主程序里的各种功能是按着顺序来执行的,谁也不能插队。那怎么样来实现中途打断插队呢?这就需要用到中断了。
单片机的中断程序是怎么执行的?
单片机有着各种和样的中断功能,比如定时器中断、外部中断、串口中断等等。比如我们要实时检测一个按键的按下事件,如果在主程序中进行扫描,就会有一定的延时,需要等主程序运行到按键扫描的程序时才可以检测到按键的状态。
中断是单片机一个重要的功能,单片机会给所有中断功能分配一个中断向量(有些中断功能会共用一个中断向量)。当开启了相应的中断功能并且发生中断时,就会自动跳转到对应的中断向量运行。在中断向量处,我们就可以调用我们编写好的中断函数,处理相关的事件就可以了。如果开启了中断嵌套,在中断函数执行过程发生优先级更高的中断,还可以暂停正在运行的中断函数,去执行更高级别的中断程序。

中断函数为什么不在主函数中运行?
主函数是一个函数,中断函数也是一个函数,它们是独立的函数,所以是分开的。上面已经说得很清楚了,中断是打断正在运行的函数去执行优先级更高的函数,所以中断就是打断主函数去执行更高优先级别的中断函数的一个过程。
在发生中断时,单片机会自动跳转到对应的中断向量,在中断向量处,我们需要调用中断函数来处理中断事件,如果中断事件的处理程序放在主函数中,那么这些处理中断事件的程序就不是一个独立的函数了,就没法调用了。

相关推荐
我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。
发表于 02-17 10:47
•500次阅读
我们想要理解单片机是如何运行程序的,我们首先需要了解单片机的组成,我们这里以80C51单片机为例来理解程序在单片机中是如何运行的。
发表于 10-12 15:02
•2217次阅读
proteus单片机中断程序利用单片机的P0口做输出接8只发光二极管,P3.2引脚接独立按键产生外部中断信号。编写程序,当程序正常运行时8个发光二极管做流水灯显示,当外部中断0有中断请求信号时,8只
发表于 02-28 07:45
中断系统中,MCU正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源......
发表于 02-08 16:33
•0次下载
有些小伙伴喜欢在单片机中断里做任务,殊不知可能会因此遇到棘手的bug,然后查半天查不出个所以然。本文为了纠正这个不良习惯,对单片机中断进行阐述。 无中断时,单片机跑着主程序,当中断时,单片机进入
发表于 01-14 14:54
•2次下载
有些小伙伴喜欢在单片机中断里做任务,殊不知可能会因此遇到棘手的bug,然后查半天查不出个所以然。本文为了纠正这个不良习惯,对单片机中断进行阐述。 无中断时,单片机跑着主程序,当中断时,单片机进入
发表于 01-14 08:05
proteus单片机中断程序利用单片机的P0口做输出接8只发光二极管,P3.2引脚接独立按键产生外部中断信号。编写程序,当程序正常运行时8个发光二极管做流水灯显示,当外部中断0有中断请求信号时,8只
发表于 01-13 15:02
•2次下载
时,可以让单片机工作在休眠的低功耗方式。通常,恢复到正常工作方式往往也是利用中断信号来唤醒。中断处理的过程中断系统中,MCU正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断源
发表于 12-03 07:35
单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,而转去处理所发生的事件。通俗的讲,就是
发表于 12-01 08:25
STM32单片机DEBUG进入不了主程序1.上电不运行,DEBUG还进入不了主程序2.总结2.1 STM32单片机Flash分类2.2 关于boot脚的设置3.其他DEBUG模式不能进入主程序的原因
发表于 11-29 06:52
、定时器/计数器控制寄存器TCON等。中断程序演示(以外部中断0和1为例)单片机引脚连接:INT0 —— P32 ; INT1 —— P33;中断实现按键检测:J5口短接BTN(使用独立按键口),即S4 - S7按键能被检测;按键按下,检测下降沿信号触发中断
发表于 11-24 16:06
•3次下载
单片机学习笔记————51单片机实现在串口接收中断里即时解析数据头的特殊程序框架
发表于 11-23 17:06
•12次下载
,CPU暂时中断当前程序而转去执行相应的处理程序,待处理程序执行完毕后,CPU再继续执行原来被中断的程序。中断的两个难题:一是如何从主程序转到中断服务程序;二是如何从中断服务程序返回主程
发表于 11-23 16:20
•7次下载
单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,而转去处理所发生的事件。通俗的讲,就是
发表于 11-22 12:06
•7次下载
;打开了中断开关只是完成了一半,还需要定时器控制寄存器:使用方法也是和中断寄存器一样,定时器0运行控制位TR0:用来开启定时器0.把TR0置1,TR0=1;就开启了定时器。2、设置中断服务程序:中断服务程序:就是当计满TH0、TL0时
发表于 11-22 12:06
•11次下载
Author: Manba Cople专业:IOT说明:记录和输出学习内容文章目录问题思考修改进阶声明问题 最近在给小伙伴培训单片机中断时,小伙伴写了一段中断的代码(代码如下),出现每次执行完中断
发表于 11-22 12:06
•12次下载
51单片机控制42步进电机——程序实现(中断PWM/延时函数)
发表于 11-17 11:36
•44次下载
单片机中断系统什么叫做单片机的中断?CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序, 叫做中断。为什么要设置中断? ⑴ 提高CPU
发表于 11-17 11:06
•14次下载
一个pic单片机c语言程序,同时用了串口接收中断和定时中断。运行时总是出现奇怪的问题:有时候程序自动复位,跳到main 函数处。有时候运行一段时间就无法正常接收串口信息,debug提示出现了堆栈下溢
发表于 11-16 11:36
•2次下载
时,可以让单片机工作在休眠的低功耗方式。通常,恢复到正常工作方式往往也是利用中断信号来唤醒。《中断处理过程》中断系统中,MCU正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断
发表于 11-15 13:21
•155次下载
单片机程序框架
发表于 11-13 14:21
•12次下载
如何使用单片机开发小程序单片机一般都是通过烧写hex或是bin文件来进行程序升级,这个方法是在8、16、32位单片机上常用的更新程序的方法。这里实现单片机小程序的方法是通过在单片机上移植脚本来实现
发表于 11-13 12:36
•10次下载
单片机独立按键使用程序 (51单片机)独立按键是单片机中很重要的一个器件,在这篇文章里,通过这个用独立按键控制LED灯的小程序来介绍独立按键开关的使用。...
发表于 11-11 18:36
•86次下载
一、外部中断1.1 中断关于中断的概念在上一篇博客中已经提到了。(传送门:51单片机入门教程(5)——定时器中断)中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序
发表于 11-11 17:51
•0次下载
1/stc单片机下载程序的原理 首先我们要理解stc单片机下载程序的原理。在stc单片机中有两个程序区:用户程序区和ISP监控程序区。 这是stc89c52单片机数据手册中的内容。 根据数据手册,我们可以知道,当冷启动
发表于 11-11 11:51
•49次下载
1/stc单片机下载程序的原理首先我们要理解stc单片机下载程序的原理。在stc单片机中有两个程序区:用户程序区和ISP监控程序区。这是stc89c52单片机数据手册中的内容。根据数据手册,我们可以
发表于 11-10 20:21
•10次下载
单片机中有看门狗,长时间不喂狗,程序就会复位。为什么长时间不喂狗呢?这是因为程序跑飞了,抛开外部因素不谈。今天就和大家分享一下,单片机程序跑飞的几个原因。 在编写单片机程序的时候,由于中断服务程序写
发表于 09-26 10:45
•4974次阅读
一、外部中断spi,iic的中断和51单片机不一样,这些在stm32属于外设,是外部中断。因为STM32的中断非常多,因此必须设置中断优先级STM32有两个优先级的概念:抢占式优先级和响应式优先级
发表于 08-13 09:36
51单片机矩阵键盘C程序主程序1:void main(){uchar i,j,ki=0;j=0;while(1){i=key();//键盘循环扫描,其值赋给变量数组tableif(i!=0)//键盘子程序返回值非0,即有按键按下{ table[j]=i;//将值存在变量数组中j++;
发表于 07-20 06:01
单片机C语言的主程序,通常要用一个while(1)语句来让程序进入一个无限循环,目的是为了让程序一直保持在我们需要运行的情况下。 虽然这种做法毋庸置疑,在网上还是有不少朋友有疑问,如果程序不加
发表于 07-15 10:16
单片机C语言的主程序,通常要用一个while(1)语句来让程序进入一个无限循环,目的是为了让程序一直保持在我们需要运行的情况下。 虽然这种做法毋庸置疑,在网上还是有不少朋友有疑问,如果程序不加
发表于 07-15 09:40
本文档的主要内容详细介绍的是使用单片机外部中断的使用C语言程序免费下载。
发表于 04-02 16:01
•7次下载
本文档的主要内容详细介绍的是使用单片机实现定时器和外部中断的C语言程序免费下载。
发表于 04-02 16:01
•19次下载
我们在之前的四期中对利用单片机的功能进行程序设计进行了说明。单片机内置了非常便于使用的外设功能,大家一定也能感受到单片机可应对各种要求的能力。但是,如果要有效地运行单片机,程序是不可或缺的,那么程序到底是如何运行的呢?
发表于 02-24 07:53
接电话,接完电话后,又回到书房阅读已看完页码的下一页的内容。 单片机处理中断的过程与上述情况类似,具体过程如下。 ① 响应中断请求。当 CPU 正在执行主程序时,如果接收到中断源发出的中断
发表于 01-20 15:31
一套程序可以分为主程序区,还有子程序区,中断程序区等等,主程序区的程序是无时无刻都会扫描执行的,而子程序还有中断程序就必须触发某些条件,然后程序会停止运行主程序,跳到指定运
发表于 11-20 18:01
•5878次阅读
我们从单片机的工作原理可以看出单片机是执行程序来完成我们所要求的任务的,在单片机中有很多子程序,单片机根据外部的不同执行条件去调用不同的子程序,因而就完成了不同的任务了。
发表于 10-30 17:28
•8115次阅读
本文档的主要内容详细介绍的是使用单片机实现中断系统的程序和工程文件免费下载。
发表于 10-21 17:16
•14次下载
任何一个可用程序都必然是死循环程序,这不仅仅是指单片机程序。因为任何微处理器系统一旦开机,系统都在处理内部事件和外设响应,这个过程是一个循环过程,除非关机才能结束这个死循环程序。因此,对于单片机编程必须注意以下几点
发表于 07-15 17:38
•3486次阅读
本文档的主要内容详细介绍的是单片机外部中断与定时计数器中断的程序和仿真及实验报告免费下载。
发表于 06-12 17:06
•16次下载
本文档的主要内容详细介绍的是单片机INT0中断计数的程序和仿真资料免费下载
发表于 06-02 17:04
•2次下载
本文档的主要内容详细介绍的是单片机中断嵌套的程序和仿真资料合集免费下载。
发表于 03-18 08:00
•5次下载
设计编写单片机程序是一个渐进的过程不可一蹴而就,毕竟单片机程序是与硬件有密切关系的,我们一般称为单片机程序叫底层硬件驱动程序。编写程序不但要对软件要熟悉而且对硬件也要熟悉才行,所以对于我们从事单片机
发表于 02-12 14:38
•3.2w次阅读
单片机的中断就是类似的一个过程,发生中断时,就会打断正在执行的主程序,先处理完中断任务,返回主程序继续运行,当然在执行中断函数之前,单片机需要把关键的数据保存下来,中断函数执行完成后才可以正确的恢复主函数运行
发表于 01-27 17:11
•8460次阅读
这种情况更加恶化,所以如果是没有独立中断向量表的单片机一般采用汇编查表的方法加快中断响应速度。 图9 汇编中断快速跳转表 中断程序执行完毕后回返回继续执行主程序,这样就要求中断不改变主程序的运行
发表于 10-18 08:00
中断是为使单片机具有对外或内部随机发生的事件实时处理的能力而设置的,中断功能的存在,很大程度上提高了单片机处理外部或者内部事件的能力。
发表于 09-25 17:17
•1次下载
无论是Arduino 还是 C51,还有其他硬件平台,都有中断机制。中断是单片机处理突发性事件的一种机制。只执行一次的代码可以放在大循环外,循环执行的放在大循环内,突发性事件的代码,则通过中断方式
发表于 09-20 17:18
•2次下载
本文档的主要内容详细介绍的是单片机中断的应用实例程序和实物图免费下载。
发表于 09-16 17:22
•1次下载
中断系统中,MCU正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断源向MCU所发出的申请中断信号称为中断请求,MCU接受中断申请并停止现行程序的运行
发表于 09-11 17:25
•1次下载
本文档的主要内容详细介绍的是STC8951单片机的外部中断程序免费下载。
发表于 08-28 17:29
•1次下载
本文档的主要内容详细介绍的是51单片机的中断程序免费下载。
发表于 08-26 17:30
•7次下载
单片机的中断可概述为:由于某一随机事件的发生,单片机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行,其发生过程如图2.2所示,其中中断源、主程序、中断服务程序
发表于 08-20 17:31
•1次下载
本文档的主要内容详细介绍的是使用51单片机进行串口通信中断的程序免费下载。
发表于 08-13 17:32
•2次下载
本文档的主要内容详细介绍的是使用51单片机进行矩阵键盘的查询和中断及方式的C语言程序免费下载。
发表于 08-12 17:33
•3次下载
51单片机通常有5个中断,当中断发生时,程序会跳到相应的中断服务程序去执行。为了区别不同的中断,引入了中断号,单片机的中断号对应的中断类型如下:
发表于 08-06 17:34
•5次下载
本文档的主要内容详细介绍的是PIC单片机定时器的外设中断的使用程序免费下载。
发表于 07-31 17:35
•6次下载
本文档的主要内容详细介绍的是51单片机进行外部中断实验的程序和电路图免费下载。
发表于 07-25 17:36
•6次下载
本文档的主要内容详细介绍的是51单片机的中断知识点和应用程序免费下载。
发表于 07-19 17:38
•1次下载
本文档的主要内容详细介绍的是使用单片机的中断及定时器实现时钟功能的程序和资料免费下载。
发表于 07-16 17:39
•2次下载
本文档的主要内容详细介绍的是51单片机的中断系统学习资料和使用程序免费下载。
发表于 07-05 17:41
•3次下载
为何单片机的程序必须是死循环?!!这个问题困扰了我好久,然而答案却是这个样子的!单片机没有操作系统,不像电脑有Windows,程序运行与结束有操作系统管理。单片机的程序是不能结束的,否则会使单片机系统出现不确定的状态;一般编译会自己加上
发表于 07-05 17:41
•0次下载
本文档的主要内容详细介绍的是使用51单片机扩充外部中断的电路图和程序免费下载。
发表于 06-25 17:43
•1次下载
系统程序有以下部分组成:主程序、存取程序、监控管理程序、控制输出程序、柜体箱位排序程序及键盘中断、时钟定时中断和报警程序。下面主要介绍箱位排序程序、存取程序和防止密码重复程
发表于 06-25 15:59
•1157次阅读
由于各中断人口地址是固定的,而程序又必须先从主程序起始地址OOOOH执行。所以,在OOOOH起始地址的几个字节中,要用无条件转移指令,跳转到主程序。另外,各中断人口地址之间依次相差8字节,中断服务
发表于 06-18 15:33
•5946次阅读
本文档的主要内容详细介绍的是使用单片机进行中断的应用资料和程序免费下载。
发表于 06-12 17:45
•0次下载
本文档的主要内容详细介绍的是51单片机的中断程序资料免费下载。
发表于 04-08 08:00
•20次下载
本文档的主要内容详细介绍的是单片机入门汇编之扩展中断服务子程序存储空间的办法详细程序资料说明。
发表于 03-05 11:01
•6次下载
本文档的主要内容详细介绍的是51单片机外部中断实例的程序资料说明免费下载。
发表于 11-29 11:47
•9次下载
单片机与PLC编程的区别 单片机与PLC的程序设计有很大的区别,单片机的全部程序都是用户设计的,PLC的程序包括系统程序(西门子称为操作系统)和用户程序。操作系统用来组织与具体的控制任务无关的所有
发表于 07-15 07:39
•6688次阅读
单片机程序调试和PC程序调试有很多不同,主要是1.单片机程序和硬件有直接的联系,而PC机程序一般只是纯软件的调试。2.单片机调试手段很多,可以软件仿真、硬件仿真、硬件指示电路、测量仪器等等,大部分
发表于 07-13 09:08
单片机外部中断程序和电路图,通过按键控制计数和清零操作
发表于 05-21 10:57
•0次下载
系统由电器和机械两部分组成。机械部分由寄存柜箱位、电控锁组成;电器部分由单片机、控制继电器、操作面板、工作状态指示组成。系统程序有以下部分组成:主程序、存取程序、监控管理程序、控制输出程序、柜体箱位排序程序及键盘中断、时钟定时中
发表于 03-13 09:46
•2417次阅读
单片机中断就是当单片机正在执行程序的时候,突然某个按键按下了(产生外部中断),单片机就必须得去处理那个按键(中断的响应),看看是发生了什么事,按键处理完后继续回来执行程序(中断的返回)。
发表于 01-10 17:29
•1w次阅读
本文详细介绍了单片机程序的设计基础,内容包括单片机中常用的线性数据结构和线性表的排序算法等知识的详解。
发表于 11-23 16:56
•28次下载
单片机上的程序和平时在系统上运行的程序,在启动时差异是很大的(如果将程序调用main以前的动作,都抽象为初始化的话,程序的启动可以简化为:建立运行环境+调用main函数,这样程序的执行差异是不大的)。
发表于 10-31 14:09
•8557次阅读
中断的总控制位关掉,需要开发人员在中断程序中用程序再次打开,否则一次中断后所有的中断就不能继续使用。对于中断标志位,在写单片机程序的时候要依据单片机文档进行清除标志为操作,不然有可能会一旦产生某个中断就会连
发表于 11-08 12:20
在《单片机必须了解的外设功能——GPIO/串行通信》和《单片机必须了解的外设功能——定时器/中断功能》中对利用单片机的功能进行程序设计进行了说明。单片机内置了非常便于使用的外设功能,大家一定也能感
发表于 09-12 10:58
•3352次阅读
基于单片机的中断控制程序(INT0+INT1)【C语言】
发表于 12-29 18:17
•22次下载
基于单片机的中断控制程序(timer0)【C语言版】
发表于 12-29 18:17
•7次下载
基于单片机的中断控制程序【C语言】,需要的朋友可以下载来看看。
发表于 12-29 18:17
•6次下载
基于单片机的中断控制程序(蜂铃器_timer1)【C语言】
发表于 12-29 18:17
•13次下载
基于单片机的中断控制程序(蜂铃器_timer1)【汇编】
发表于 12-29 18:17
•7次下载
基于单片机的中断控制程序(中断0计数_1位数码管显示)【C语言】
发表于 12-29 18:17
•14次下载
基于单片机的中断控制程序(中断0计数_4位数码管显示)【C语言】
发表于 12-29 18:16
•59次下载
单片机蜂鸣器 各种发声程序【汇编版】
单片机蜂鸣器 各种发声程序【汇编版】
单片机蜂鸣器 各种发声程序【汇编版】
发表于 12-29 15:50
•13次下载
单片机程序烧录工具集合单片机程序烧录工具集合单片机程序烧录工具集合单片机程序烧录工具集合单片机程序烧录工具集合
发表于 12-28 15:34
•89次下载
51单片机流水灯程序 51单片机流水灯程序 51单片机流水灯程序
发表于 12-21 15:52
•143次下载
“直线”之外的事件,就需要使用中断来嵌套,中断的过多和频繁会影响到主程序的执行,也使得程序显得凌乱不堪。就拿最简单的流水灯和蜂鸣器演奏来说,在普通的单片机中,主程序执行各式流水灯,程序延时跑马,中断里取
发表于 12-08 22:18
在51单片机中,使用定时器。定时时间到后,执行主程序。在执行主程序的过程中,定时器是不是又开始计时,还是停止计时,等待主程序执行完了,然后再开始计时呢?如果主程序执行的时间大于定时器定时的时间,当
发表于 08-10 22:42
具体问题的描述:倘若我使用ADC0809作为模数转换的芯片,我们知道这种AD芯片是要提供时钟信号的,倘若我通过单片机计时中断的方式提供时钟,那么在主程序执行的时候或者AD芯片转换的时候,这个提供时钟
发表于 10-13 09:33
具体问题的描述:倘若我使用ADC0809作为模数转换的芯片,我们知道这种AD芯片是要提供时钟信号的,倘若我通过单片机计时中断的方式提供时钟,那么在主程序执行的时候或者AD芯片转换的时候,这个提供时钟信号的中断对正在运行的程序会有什么影响?(中断程序
发表于 10-13 09:30
具体问题的描述:倘若我使用ADC0809作为模数转换的芯片,我们知道这种AD芯片是要提供时钟信号的,倘若我通过单片机计时中断的方式提供时钟,那么在主程序执行的时候或者AD芯片转换的时候,这个提供时钟信号的中断对正在运行的程序会有什么影响?(中断程序
发表于 10-13 09:28
本帖最后由 lvhoujun 于 2014-2-28 00:37 编辑
这是本人以ATMEGA128为例编写的C语言程序框架,做简单的修改即适合AVR所有单片机。可以说是一个单片机最简操作系统
发表于 02-12 20:27
51单片机打开串口通信是否会主程序运行速度?我发现打开,主程序的的死循环运行超慢,是串口的问题吗?
发表于 06-21 13:28
对单片机的加密还要在程序的运行上进行加密处理, 也就是程序的动态加密措施。
发表于 06-01 14:59
•2073次阅读
必须处理好不需要的虚假中断。三是,一般都利用PIC单片机的引脚功能来检测按键,所以必须处理好按键消抖的问題。 2 引脚中断程序设计 在主程序里先设置有关的寄存器。 ◇设置TRISB寄存器,使RB7
发表于 11-15 13:58
PIC单片机引脚中断程序的设计技巧
所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到
发表于 10-30 08:07
•1348次阅读
单片机音乐程序设计
随便找一个仿真机或者什么单片机实验板,只要能工作的就行,将程序输入,运行,然后
发表于 05-15 23:25
•1195次阅读
单片机编程技巧-功能强大的时钟中断
功能强大的时钟中断 在单片机程序设计中,设置一个好的时钟中断,将能使一个CPU发挥两个CPU的功效,大大方便和简化程序的
发表于 04-07 09:18
•1081次阅读
评论