51单片机——中断系统结构

发布者:开国古泉最新更新时间:2022-05-31 来源: eefocus关键字:51单片机  中断系统  结构 手机看文章 扫描二维码
随时随地手机看文章

1 什么是中断

在生活中经常会遇到这样的情况:正在书房看书时,突然客厅的电话响了,人们往往会停止看书,转而去接电话,接完电话后又回书房接着看书。这种停止当前工作,转而去做其他工作,做完后又返回来做先前工作的现象称为中断。


单片机也有类似的中断现象,当单片机正在执行某程序时,如果突然出现意外情况,它就需要停止当前正在执行的程序,转而去执行处理意外情况的程序(又称中断子程序),执行处理完后又接着执行原来的程序。


2 中断的基本概念

2.1 中断源

要让单片机的CPU中断当前正在执行的程序转而去执行中断子程序,需要向CPU发出中断请求信号。让CPU产生中断的信号源称为中断源(又称中断请求源)。


8051单片机有5个中断源,分别是2个外部中断源、2个定时器/计数器中断源和1个串行通信口中断源。如果这些中断源向 CPU 发出中断请求信号,CPU 就会产生中断,停止执行当前的程序,转而去执行相应的中断子程序(又称中断服务程序),执行完后又返回来执行原来的程序。


2.2 中断的优先级别

单片机的CPU在工作时,如果一个中断源向它发出中断请求信号,它就会产生中断,如果同时有两个或两个以上的中断源同时发出中断请求信号,CPU会怎么办呢?CPU会先响应优先级别高的中断源的请求,然后再响应优先级别低的中断源的请求。8051单片机5个中断源的优先级别顺序见表1。


表1 5个中断源的优先级别顺序及中断入口地址 

3 中断的处理过程

在前而的例子中,当正在看书时,电话铃响了,这里的电话就是中断源,它发出的铃声就是中断请求信号。在处理这个中断时,可采取这样的做法:记住书中刚看完的页码(记住某行可能比较困难),然后再去客厅接电话,接完电话后,返回到书房阅读已看完页码的下一页内容。单片机处理中断的过程与上述情况类似,具体过程如下:


① 响应中断请求。当CPU正在执行主程序时,如果接收到中断源发出的中断请求信号,就会响应中断请求,停止主程序,准备执行相应的中断子程序。


② 保护断点。为了在执行完中断子程序后能返回主程序,在准备执行中断子程序前,CPU会将主程序中已执行的最后一条指令的下一条指令的地址(又称断点地址)保存到RAM的堆栈中。


③ 寻找中断入口地址。保护好断点后,CPU开始寻找中断入口地址(又称矢量地址),中断入口地址存放着相应的中断子程序,不同的中断源对应着不同的中断入口地址。8051单片机5个中断源对应的中断入口地址,见表7-1。


④ 执行中断子程序。CPU 寻找到中断入口地址后,就开始执行中断入口地址处的中断子程序。由于几个中断入口地址之间只有8个单元空间(见表7-1,如0003H~000BH相隔8个单元),较小的中断子程序(程序只有一两条指令)可以写在这里,较大的中断子程序无法写入,通常的做法是将中断子程序写在其他位置,而在中断入口地址单元只写一条跳转指令,执行该指令时马上跳转到写在其他位置的中断子程序。


⑤ 中断返回。执行完中断子程序后,就会返回到主程序,返回的方法是从RAM的堆栈中取出之前保存的断点地址,然后执行该地址处的主程序,从而返回到主程序。


4 中断系统的结构

8051单片机中断系统的结构如图1所示。

图1 8051单片机中断系统的结构


4.1 中断系统的组成

8051单片机中断系统的主要组成部分有:


① 5个中断源。分别为外部中断源、外部中断源、定时器/计数器中断源T0、定时器/计数器中断源T1和串行通信口中断源(TX和RX)。


② 中断源寄存器。分定时器/计数器控制寄存器TCON和串行通信口控制寄存器SCON。


③ 中断允许寄存器IE。


④ 中断优先级控制寄存器IP。


4.2 中断系统的工作原理

单片机的中断系统默认是关闭的,如果要使用某个中断,需要通过编程的方法设置有关控制寄存器某些位的值将该中断打开,并为该中断编写相应的中断子程序。


以外部中断为例,如果需要使用该中断,应进行以下设置:


① 将定时器/计数器控制寄存器TCON的IT0位设为0(IT0=0),中断请求信号输入方式被设为低电平输入有效。


② 将中断允许寄存器IE的EA位设为1(EA=1),允许所有的中断(总中断允许)。


③ 将中断允许寄存器IE的EX0位设为1(EX0=1),允许外部中断源的中断。


工作过程:当单片机的端(P3.2引脚)输入一个低电平信号时,由于寄存器TCON的IT0=0,输入开关选择位置0,低电平信号被认为是的中断请求信号,该信号将TCON的外部中断0的标志位IE0置1(IE0=1),IE0位的“1”先经过允许开关(IE的EX0=1使开关闭合),然后经过中断总开关(IE的EA=1使中断总开关闭合),再经过优先级开关(只使用一个中断时无须设置,寄存器IP的PX0位默认为0,开关选择位置0),进入硬件查询,选中外部中断0的入口地址(0003H)并将其送给CPU的程序计数器PC,CPU开始执行该处的中断子程序。


5 中断源寄存器

中断源寄存器包括定时器/计数器控制寄存器TCON和串行通信口控制寄存器SCON。


5.1 定时器/计数器控制寄存器TCON

TCON寄存器的功能主要是接收外部中断源(、)和定时器/计数器(T0、T1)送来的中断请求信号。TCON的字节地址是88H,它有8位,每位均可直接访问(即可位寻址)。TCOM的字节地址、各位的位地址和名称如图2所示。

 图7-2 定时器/计数器控制寄存器TCON的字节地址、各位的位地址和名称


TCON寄存器各位的功能说明:


① IE0位和IE1位:分别为外部中断0()和外部中断1()的中断请求标志位。当外部有中断请求信号输入单片机的引脚(即P3.2引脚)或引脚(即P3.3引脚)时,TCON的IE0和IE1位会被置“1”。


② IT0位和IT1位:分别为外部中断0和外部中断1的输入方式控制位。当IT0=0时,外部中断 0 端输入低电平有效(即端输入低电平时才表示输入了中断请求信号),当IT0=1时,外部中断0端输入下降沿有效。当IT1=0时,外部中断1端输入低电平有效,当IT1=1时,外部中断1端输入下降沿有效。 


③ TF0位和 TF1位:分别是定时器/计数器0和定时器/计数器1的中断请求标志。当定时器/计数器工作产生溢出时,会将TF0或TF1位置“1”,表示定时器/计数器有中断请求。


④ TR0和TR1:分别是定时器/计数器0和定时器/计数器1的启动/停止位。在编写程序时,若将TR0或TR1设为“1”,那么相应的定时器/计数器开始工作;若设置为“0”,定时器/计数器则会停止工作。


注意:如果将IT0位设为1,则把IE0设为下降沿置“1”,中断子程序执行完后,IE0位自动变为“0”(硬件置“0”);如果将IT0位设为0,则把IE0设置为低电平置“1”,中断子程序执行完后,IE0位仍是“1”,所以在退出中断子程序前,要将[插图]端的低电平信号撤掉,再用指令将IE0置“0”(软件置“0”),若退出中断子程序后,IE0位仍为“1”,将会产生错误的再次中断。IT1、IE1位的情况与IT0、IE0位一样。在单片机复位时,TCON寄存器的各位均为“0”。


5.2 串行通信口控制寄存器SCON

SCON寄存器的功能主要是接收串行通信口发出的中断请求信号。SCON的字节地址是98H,它有8位,每位均可直接访问(即可位寻址),SCOM的字节地址、各位的位地址和名称如图3所示。


图3 SCON的字节地址、各位的位地址和名称


SCON寄存器的TI位和RI位与中断有关,其他位用作串行通信控制。


① TI 位:串行通信口发送中断标志位。在串行通信时,每发送完一帧数据,串行通信口会将TI位置“1”,表明数据已发送完成,向CPU发送中断请求信号。


② RI 位:串行通信口接收中断标志位。在串行通信时,每接收完一帧数据,串行通信口会将RI位置“1”,表明数据已接收完成,向CPU发送中断请求信号。注意:单片机执行中断子程序后,TI 位和 RI位不能自动变为“0”,需要在退出中断子程序时,用软件指令将它们清0。


6 中断允许寄存器IE

IE寄存器的功能用来控制各个中断请求信号能否通过。IE的字节地址是A8H,它有8位,每位均可直接访问(即可位寻址),IE 的字节地址、各位的位地址和名称如图4所示。

图4 IE的字节地址、各位的位地址和名称


IE寄存器各位(有2位不可用)的功能说明如下。


 ① EA位:总中断允许位。当EA=1时,总中断开关闭合;当EA=0时,总中断开关断开,所有的中断请求信号都不能接受。


② ES位:串行通信口中断允许位。当ES=1时,允许串行通信口的中断请求信号通过;当ES=0时,禁止串行通信口的中断请求信号通过。


③ ET1位:定时器/计数器1中断允许位。当ET1=1时,允许定时器/计数器1的中断请求信号通过;当ET1=0时,禁止定时器/计数器1的中断请求信号通过。


④ EX1位:外部中断1允许位。当EX1=1时,允许外部中断1的中断请求信号通过;当EX1=0时,禁止外部中断1的中断请求信号通过。


⑤ ET0位:定时器/计数器0中断允许位。当ET0=1时,允许定时器/计数器0的中断请求信号通过;当ET0=0时,禁止定时器/计数器0的中断请求信号通过。


⑥ EX0位:外部中断0允许位。当EX0=1时,允许外部中断0的中断请求信号通过;当EX0=0时,禁止外部中断0的中断请求信号通过。


7 中断优先级控制寄存器IP

IP寄存器的功能是设置每个中断的优先级。其字节地址是B8H,它有8位,每位均可进行位寻址,IP的字节地址、各位的位地址和名称如图5所示。

图5 IP的字节地址、各位的位地址和名称


IP寄存器各位(有3位不可用)的功能说明如下。


 ① PS位:串行通信口优先级设定位。当PS=1时,串行通信口为高优先级;当PS=0时,串行通信口为低优先级。


② PT1位:定时器/计数器1优先级设定位。当PT1=1时,定时器/计数器1为高优先级;当PT1=0时,定时器/计数器1为低优先级。


③ PX1位:外部中断1优先级设定位。当PX1=1时,外部中断1为高优先级;当PX1=0时,外部中断1为低优先级。


④ PT0位:定时器/计数器0优先级设定位。当PT0=1时,定时器/计数器0为高优先级;当PT0=0时,定时器/计数器0为低优先级。


⑤ PX0位:外部中断0优先级设定位。当PX0=1时,外部中断0为高优先级;当PX0=0时,外部中断0为低优先级。


通过设置 IP寄存器相应位的值,可以改变5个中断源的优先顺序。若优先级一高一低的两个中断源同时发出请求,CPU 会先响应优先级高的中断请求,再响应优先级低的中断请求;若5个中断源有多个高优先级或多个低优先级中断源同时发出请求,CPU 会先按自然优先级顺序依次响应高优先级中断源,再按自然优先级顺序依次响应低优先级中断源。

关键字:51单片机  中断系统  结构 引用地址:51单片机——中断系统结构

上一篇:51单片机的中断源入口地址是程序存储器空间的5个单元
下一篇:51单片机——定时器/计数器

推荐阅读最新更新时间:2024-11-11 21:25

51单片机——共阳数码管的动态显示
数码管的原理图及基本原理 原理图 怎么工作的我就不介绍了 基本原理 动态显示实质上就是轮流点亮单个数码管实现多位数码管整体显示的效果。在轮流显示过程中,每位数码管点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 例题(附代码) 代码如下 #include reg52.h sbit HC138_A = P2^5; sbit HC138_B = P2^6; sbit HC138_C = P2^7; //相当于时
[单片机]
<font color='red'>51单片机</font>——共阳数码管的动态显示
外媒评测OPPO Find X:机械结构坚硬 机身却一掰就弯
OPPO Find X 暴力测试 :容易掰弯   新浪手机讯 7月30日上午消息,国外知名视频博主JerryRigEverything做了一期关于OPPO Find X的暴力测试视频,试图通过各种破坏手段验证这款手机采用的机械结构是否禁得住折腾。   和此前JerryRigEverything做过测试的手机不同,OPPO Find X具备了一个可伸缩的机械模块,其中放置了前后置镜头以及用于面部识别的3D结构光组件。于是这位博主试图通过暴力测试探究这款手机的机械部件是否足够耐用。 OPPO Find X很容易被掰弯   就如视频中展示的那样,OPPO Find X机身很容易就被掰弯,屏幕和背面的玻璃背板也随着机器的弯曲而损坏。
[手机便携]
基于51单片机实现74LS164串入并出移位寄存器
对于串入并出移位寄存器以下是我个人的理解和实际开发工程中得出的经验 图一: 由我上图所画 可以得出 一个8位串入数据输入, 8位并行输出。可以看出先移的是高位, 就是第一个位进去的到最后会在最高位。 图为时序图 A B 是输入 clean 是清0端,低电平有效。就是如果给个低电平那么输出都为0强制都输出0。一般接高电平 clock 是时钟 上升沿有效 由上图可以得出如果 A B 有一个为低电平 ,那么阻止新数据的进入,并在下一个时钟上升沿时,将 QA 端清0. 如果A B端都为高电平则会使能信号输入,并在下一个时钟脉冲的上升沿之前使输出端QA置1.每一个时钟脉冲上升沿到来时,输出端的数据会移动一个位
[单片机]
基于<font color='red'>51单片机</font>实现74LS164串入并出移位寄存器
【MPC5744P】Flash 结构、启动原理以及内存映射
与大部分的MCU相同,MPC5744P的Flash、RAM以及外设都映射到内存地址中了。以下为映射地址范围: Flash有几种分类方式。 方式一:EEPROM、Small、Medium、Large Flash。 方式二:Low、Medium、High、First256K、Second256K。 其中上述方式二涉及到Lock与Select,关系到Flash的擦除和编程。 MPC5744P Flash编程: MPC5744P数据存储为字节模式,即32位数据存储会占用4个地址。 对Flash编程时,需要多个步骤: 1、解锁对应的Block 2、选择对应的Block 3、擦除对应的Block
[单片机]
【MPC5744P】Flash <font color='red'>结构</font>、启动原理以及内存映射
基于51单片机的电话留言机设计
电话留言机的设计与开发主要经历了可行性分析、系统设计与系统调试三个阶段。 1.5.1 可行性分析 从当时国内电话机的发展状况来看,电话留言机在市场上品种很少,进口的电话留言机价格较昂贵,不能被一般电话用户接受,而国内对电话留言机已有较大的需求,因此,研制电话留言机势在必行。 从技术角度来看,技术人员已掌握电话留言机的关键技术,其核心器---单片机与语音芯片,市场上已有性能好、功能强、价格低的产品可供选择。因此,研制国产电话留言机是可行的。 1.5.2 系统设计 为了提出正确的设计方案,首先要对电话机内部电路作详细的分析与电话机的连接接口,为整个方案奠定良好的基础。 在选择单片机时,首选
[单片机]
AT89S51单片机串行口的内部结构及功能介绍
AT89S51单片机串行口的内部结构如下图所示。它有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个特殊功能寄存器字节地址(99H)。 串行口的控制寄存器共有两个:特殊功能寄存器SCON和PCON。下面介绍这两个特殊功能寄存器各位的功能。 1、串行口控制寄存器SCON 串行口控制寄存器SCON,字节地址988H,可位寻址,位地址为98H~9FH。SCON的格式如下图所示。 下面介绍SCON中各位的功能。 (1) SM0、SMl:串行口4种工作方式选择位。 SM0、SM1两位的编码所对应的4种工作方式见下表。 表
[单片机]
AT89S<font color='red'>51单片机</font>串行口的内部<font color='red'>结构</font>及功能介绍
基于51单片机的交通灯及其仿真
ORG 0000H LJMP START ORG 000BH LJMP TIMER0 ORG 0030H START:MOV SP,#60H MOV TMOD,#81H ;定时器0,1工作在方式1,0定时,1计数 MOV IE,#8AH ;开定时器中断 MOV TL0,#0B0H ;定时器地低位初始化 MOV P1,#21H MOV TH0,#3CH M
[单片机]
基于<font color='red'>51单片机</font>的交通灯及其仿真
科氏力质量流量计的工作原理和典型结构特性
一、 工作原理 如图一所示,截取一根支管,流体在其内以速度V从A流向B,将此管置于以角速度ω旋转的系统中。设旋转轴为X,与管的交点为O,由于管内流体质点在轴向以速度V、在径向以角速度ω运动,此时流体质点受到一个切向科氏力Fc。这个力作用在测量管上,在O点两边方向相反,大小相同,为: δFc = 2ωVδm 因此,直接或间接测量在旋转管道中流动的流体所产生的科氏力就可以测得质量流量。这就是科里奥利质量流量计的基本原理。 图1 科里奥利力的形成 图2 早期科氏力质量流量计 二、 结构 早期设计的科氏力质量流量计的结构如图2所示。将在由流动流体的管道送入一旋转系统中,由安装在转轴上的扭矩传感器,来完成质量流量的测量。这种流量计
[测试测量]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved