51单片机中断详解(上)
- 格式:docx
- 大小:13.29 KB
- 文档页数:7
MCS-51单⽚机的中断系统单⽚机中断技术概述在任何⼀款事件驱动型的CPU⾥⾯都应该会有中断系统,因为中断就是为响应某种事件⽽存在的。
中断的灵活应⽤不仅能够实现想要的功能,⽽且合理的中断安排可以提⾼事件执⾏的效率,因此中断在单⽚机应⽤中的地位是⾮常重要的。
单⽚机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转⽽去执⾏⼀个中断服务⼦程序。
为了更形象地理解中断,下⾯以学⽣上⾃习时接电话为例阐述⼀下中断的概念。
单⽚机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。
如果单⽚机没有中断系统,单⽚机的⼤量时间可能会浪费在查询是否有服务请求发⽣的定时査询操作上。
采⽤中断技术完全消除了单⽚机在査询⽅式中的等待现象,⼤⼤地提⾼了单⽚机的⼯作效率和实时性。
单⽚机中断系统结构及中断控制中断系统结构图如图5-2所⽰。
由图5-2可见,MCS-51中断系统共有5个中断请求源:INT0——外部中断请求0,中断请求信号由INT0引脚输⼊。
定时/计数器T0计数溢出发出的中断请求。
INT1——外部中断请求1,中断请求信号由INT1引脚输⼊。
定时/计数器T1计数溢出发出的中断请求。
串⾏⼝中断请求。
中断优先级从⾼到底排列。
单⽚机如何知道有中断请求信号?是否能够响应该中断?若5个中断源请求信号同时到来,单⽚机如何响应?这些问题都可以由中断寄存器来解决。
单⽚机中断寄存器有中断标志寄存器TCON和SCON、中断使能寄存器IE和中断优先级寄存器IP,这些寄存器均为8位。
中断标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存,单⽚机通过这些中断标志位的状态便能知道具体是哪个中断源正在申请中断。
TCON寄存器TCON寄存器为定时/计数器的控制寄存器,字节地址为88H,可位寻址。
特殊功能寄存器TCON的格式如图5-3所⽰。
TCON各标志位功能如下。
TF1——定时/计数器T1的溢出中断请求标志位。
一、中断的概念CPU在处理某一事件A时,发生了另一事件B请求C PU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待C PU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断二、中断源在51单片机中有5个中断源中断号优先级中断源中断入口地址0 1(最高)外部中断0 0003H1 2 定时器0 000BH2 3 外部中断1 0013H3 4 定时器1 0018H4 5 串口总段0023H三、中断寄存器单片机有10个寄存器主要与中断程序的书写控制有关1.中断允许控制寄存器IE2.定时器控制寄存器TC ON3.串口控制寄存器SCON4.中断优先控制寄存器IP5.定时器工作方式控制寄存器TMOD6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1)四、寄存器功能与赋值说明注:在用到中断时,必须要开总中断EA,即EA=1。
//开总中断1.中断允许控制寄存器IEEX0(EX1):外部中断允许控制位EX0=1 外部中断0开关闭合//开外部0中断EX0=0 外部中断0开关断开ET0(ET1):定时中断允许控制位ET0=1 定时器中断0开关闭合//开内部中断0ET0=0 定时器中断0开关断开ES: 串口中断允许控制位ES=1 串口中断开关闭合//开串口中断ES=0 串口中断开关断开2.定时器控制寄存器TCON //控制外部中断和定时器中断外部中断:IE0(IE1):外部中断请求标志位当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入中断程序后由单片机自动置0.//外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。
IT0(IT1):外部中断触发方式控制位//选择有效信号IT0(IT1)=1:脉冲触发方式,下降沿有效。
IT0(IT1)=0:电平触发方式,低电平有效。
51单片机中断原理在单片机的世界里,中断就像是一个随时待命的“紧急事务处理员”。
当单片机正在执行主程序,忙得不可开交时,突然来了一些紧急情况,比如外部设备发来的数据需要立刻处理,或者定时时间到了需要执行特定的操作,这时候中断就发挥作用了。
要理解 51 单片机的中断原理,咱们得先从几个基本概念说起。
首先是中断源。
这可以想象成是引起中断的“源头”。
在 51 单片机中,常见的中断源有外部中断 0、外部中断 1、定时器/计数器 0 溢出中断、定时器/计数器 1 溢出中断,还有串行口中断。
这些中断源就像是不同的“紧急事务”,各自有着特定的触发条件。
比如说外部中断 0 和 1,通常是由外部引脚的电平变化引起的。
当设定的引脚从高电平变为低电平(或者反过来),就会触发相应的外部中断。
定时器/计数器的溢出中断呢,则是当定时器/计数器累计到设定的值时产生的。
这就好比一个闹钟,设定的时间一到,就会响铃提醒。
串行口中断则是在串行通信过程中,出现特定的通信事件时触发。
接下来是中断允许控制寄存器 IE。
它就像是一个“总开关”,决定哪些中断源被允许响应。
如果某个中断源对应的位被设置为 1,就表示允许这个中断源产生中断;如果是 0,就表示禁止。
然后是中断优先级控制寄存器 IP。
在多个中断源同时请求中断时,中断优先级就决定了哪个中断先被处理。
优先级高的中断会先得到响应,处理完后再处理优先级低的中断。
当一个中断发生时,单片机可不是手忙脚乱地随便处理。
它有着一套严格的中断响应流程。
首先,单片机在执行主程序时,会不断检测是否有中断请求。
一旦检测到有中断请求,并且中断是被允许的,单片机会暂停当前正在执行的主程序,把当前主程序的断点地址(也就是接下来要继续执行主程序的位置)保存起来。
这就像是在一张纸上记下当前做到哪一步了,等处理完中断回来还能接着做。
然后,单片机就会跳转到相应的中断服务程序去执行。
中断服务程序就像是专门处理紧急事务的“小分队”,有着特定的任务和处理逻辑。
引言:C51单片机中断是单片机开发中一个非常重要的概念。
通过中断,程序能够在运行过程中及时响应外部事件,提高系统的实时性和可靠性。
本文将进一步探讨C51单片机中断的相关知识,特别是中断优先级、中断嵌套、中断服务函数等方面的内容。
概述:C51单片机中断机制是通过改变程序的执行流程来实现的。
当中断事件发生时,CPU会暂停当前的执行任务,保存现场后转去执行中断服务程序,待中断服务程序执行完毕后,再恢复到之前的执行状态。
C51单片机中断机制通过这样的方式,有效地实现了对外部事件的及时响应。
正文内容:1. 中断优先级1.1 中断优先级的概念中断优先级是指在多个中断事件同时发生时,CPU按照一定的优先级顺序处理这些中断请求。
在C51单片机中,中断优先级是通过中断控制器来实现的。
中断控制器按照预先设定的优先级进行中断请求的响应,优先级越高的中断请求将被优先处理。
1.2 中断优先级的设置在C51单片机中,中断优先级的设置是通过特殊功能寄存器(SFR)来完成的。
通过设置SFR中的相关位,可以对不同的中断请求进行优先级设置。
具体的设置方法可以参考C51单片机的相关手册和数据手册。
2. 中断嵌套2.1 中断嵌套的概念中断嵌套是指在中断服务程序执行过程中,又发生了其他的中断事件,并且这些中断事件的优先级高于当前正在执行的中断服务程序。
在C51单片机中,中断嵌套是通过中断控制器的中断请求线来实现的。
当一个中断事件发生时,如果其优先级高于当前执行的中断服务程序,CPU会立即切换到新的中断服务程序中去执行。
2.2 中断嵌套的处理方法在C51单片机中,中断嵌套的处理是通过中断服务程序的堆栈来实现的。
当发生中断嵌套时,CPU将当前的现场信息保存到堆栈中,然后切换到新的中断服务程序中执行。
当新的中断服务程序执行完毕后,CPU会从堆栈中恢复之前的现场信息,并回到原来的中断服务程序继续执行。
3. 中断服务函数3.1 中断服务函数的概念中断服务函数是指用来处理中断事件的函数。