MCS-51单片机的中断

合集下载

MCS-51系列单片机的中断系统

MCS-51系列单片机的中断系统
单片机原理与接口技术
大连理工大学出版社
第5章 中断
当断不断必受其乱
第5章 中断系统
5.1 概述 MCS-51系列单片机的中断系统 5.2 MCS-51系列单片机的中断系统 5.3 中断程序设计方法
第5 章
中断系统
中断控制是单片机最重要的技术之一, 实时控制及人机交互等应用都是通过中 断实现的。 本章主要介绍中断的基本概念、MCS-51 系列单片机单片机的中断机制及其简单 应用。
5.2.2中断控制 5.2.2中断控制
1.中断允许 MCS-51系列单片机中断系统通过中断允许控制 寄存器IE实现开中断和关中断的功能。 (1)IE寄存器 IE寄存器由一个中断允许总控制位和各中断源 的中断允许控制位构成,从而进行两级中断允 许控制。IE寄存器的各位定义如下:
5.2.2中断控制 IE寄存器
5.2.2中断控制 IE寄存器
EX1(IE.2)——外中断1的中断允许控 制位。中断总允许时,EX1=0,禁止外中 断1中断;EX1=1,允许外中断1中断。 ET1(IE.3)——定时器T1的中断允许控 制位。中断总允许时,EX1=0,禁止T1中 断;ET1=1,允许T1中断。
5.2.2中断控制 5.2.2中断控制 IE寄存器
5.2.1中断源和中断标志
当MCS-51系列单片机的外中断源以脉冲方式触 发时,负脉冲有效。CPU在一个机器周期采样到 INT0(或者 INT1 )引脚上为高电平,在接下 来的一个机器周期采样到INT0(或者INT1)引 脚上是低电平,即出现了下降沿的跳变(负脉 冲)时,就认为是外中断0(或者外中断1)的 一个有效的中断请求信号。因为两次检测的间 隔时间为一个机器周期,负脉冲对应的高低电 平持续时间都应至少维持一个机器周期,从而 保证CPU能够检测到电平的跳变。

MCS51的中断系统有几个中断源

MCS51的中断系统有几个中断源

.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。

3.MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。

答:MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。

8031、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。

五、作图题(10分)用6264(8K*8)构成16K的数据存储系统。

要求采用线选法产生片选信号,并计算6264的地址范围答:WR接6264的WERD接6264的OEAB0---AB12接6264的A0---A12DB0—DB7接6264的D0—D7AB15、AB14分别接Y0和Y1地址:0000H---1FFFH;2000H---3FFFH六、设计题(1题13分;2题12分,共25分)1.某单片机控制系统有8个发光二极管。

试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。

2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。

试画出8051与外设的连接图并编程实现上述要求1.某单片机控制系统有8个发光二极管。

试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。

答:图 (5分) 构思 (3分)MOV A,#80H (1分)UP:MOV P1,A (1分)RR A (2分)SJMP UP (1分2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。

MCS-51单片机的中断系统

MCS-51单片机的中断系统

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的溢出中断请求标志位。

第05章 MCS-51单片机的中断与定时(1-4)

第05章 MCS-51单片机的中断与定时(1-4)

2
1
TH0
;P1.0输出“0” ;P1.0输出“1”
5.2 MCS-51单片机的中断系统
五、外中断应用举例
1. 中断初始化程序
设置外中断源的触发方式 设置中断允许寄存器IE 设置中断优先级寄存器IP
2. 中断服务程序
保护现场 中断处理 恢复现场
23/65
5.2 MCS-51单片机的中断系统
【例5-3】 设外部中断0为下降沿触发方 式,高优先级,试编写中断初始化程序
5.2 MCS-51单片机的中断系统
【例5-4】 将单脉冲接到外中断0(INT0)引脚,利 用P1.0作为输出,经反相器接发光二极管。编写程 序,每按动一次按钮,产生一个外中断信号,使发 光二极管的状态发生变化,由亮变暗,或反之
P1.0 单脉冲 发生器 INT0
1
+5V
8031
26/65
5.2 MCS-51单片机的中断系统
串口:0023H
20/65
5.2 MCS-51单片机的中断系统
四、中断请求的撤除
1.定时/计数器中断请求标志TF0/TF1会自动撤除 2.串行口中断请求标志TI/RI要用指令撤除
CLR TI ;清TI标志位 CLR RI ;清RI标志位
3.负脉冲触发的外中断请求标志IE0/IE1会自动撤除 4.低电平触发的外中断请求信号需要外加电路撤除
下次课前请预习5.3节
30/65
5.3 51单片机的定时器/计数器
MCS-51单片机内部有两个16位定时/计数器 T0和T1,简称定时器0和定时器1
在特殊功能寄存器TMOD和TCON的控制下, 它们既可以设定成定时器使用,也可以设定 成计数器使用
定时/计数器有4种工作方式,具有中断功能, 可以完成定时、计数、脉冲输出等任务

第5章-MCS-51单片机中断系统-PPT

第5章-MCS-51单片机中断系统-PPT
CPU在每一个机器周期得S5P2期间对P3、 3引脚采样,若P3、3为低电平,则使IE1置1,否 则IE1清0。
5、2、2 MCS-51单片机得中断源
IT1=1,外中断1为下降沿触发 采样:CPU在每一个机器周期得S5P2期间 对P3、3引脚采样,若上一个机器周期检测为 高电平,紧挨着得下一个机器周期为低电平,则 使IE1置1。 IT0:外中断0触发方式控制位。
CPU主要就是通过标志寄存器、控制 寄存器、优先级寄存器对中断源进行管
5、2、2 MCS-51单片机得中断源
(1)与中断标志相关得SFR
主要有:定时器/计数器T0、T1控制寄 存器TCON
串行口控制寄存器SCON 定时器/计数器2控制寄存器T2CON(第 6章介绍) (2)中断控制寄存器:TCON、IE (3)中断优先级寄存器:IP
DMA释放总线:当一批数据传送后, DMA控制器再向CPU发出“结束总线请 求”,CPU响应请求,收回总线使用权。
DMA方式速度高、效率高,可以与CPU 并行工作。
5、1、2 中断得相关概念
1、中断得概念
CPU在正常运行得时候, 外部或者内部发生了请求 CPU迅速去处理得事件,CPU 暂时中断当前得程序,去处理 所发生得事件,处理完事件后, 再返回到原来被中断得程序 继续运行。此过程称为中断。
图5-3 定时器得控制寄存器
TCON可位寻址。复位后TCON=00H。 TF1(TCON、7):T1溢出标志位
当T1计满溢出时,由内部硬件置位; 中断响应后自动清 0。
5、2、2 MCS-51单片机得中断源
TF0:T0溢出标志位 功能同TF1。
IT1:外中断1触发方式设置位 IT1=0,外中断1为低电平触发
5、1、1 微机得输入/输出方式

第五章 MCS-51的中断系统

第五章 MCS-51的中断系统

第5章MCS-51单片机的中断系统【例5-1】设允许外部中断0和串行口中断,禁止其它中断源的中断申请。

试根据假设条件设置IE的相应值。

解:⑴用位操作指令来编写如下程序段:SETB EX0 ;允许外部中断0中断SETB ES ;允许串行口中断CLR EX1 ;禁止外部中断1中断CLR ET0 ;禁止定时器/计数器T0中断CLR ET1 ;禁止定时器/计数器T1中断SETB EA ;CPU开中断⑵用字节操作指令来编写:MOV IE, #91H【例5-2】设置中断优先级控制寄存器IP的初始值,使得8031的2个外中断请求为高优先级,其它中断请求为低优先级。

解:⑴用位操作指令SETB PX0;2个外中断为高优先级SETB PX1CLR PS ;串行口、2个定时器为低优先级中断CLR PT0CLR PT1⑵用字节操作指令MOV IP,#05H【例5-3】假设允许外部中断0中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触发方式。

在主程序中可编写如下程序段:SETB E A ;EA位置“1”,CPU开中断SETB E X0 ;EX0位置“1”,允许外部中断0产生中断SETB P X0 ;PX0位置“1”,外部中断0为高级中断SETB I T0 ;IT0位置“1”,外部中断0为跳沿触发方式【例5-4】根据图5-9的中断服务程序流程,编写出中断服务程序。

假设现场保护只需要将PSW寄存器和累加器A的内容压人堆栈中保护起来。

解一个典型的中断服务程序如下:INT: CLR E A ;CPU关中断PUSH PSW ;现场保护PUSH ASETB E A ;CPU开中断中断处理程序段CLR E A ;CPU关中断POP A ;现场恢复POP PSWSETB E A ; CPU开中断RETI ;中断返回,恢复断点上述程序有几点需要说明的是:⑴本例的现场保护假设仅仅涉及到PSW和A的内容,如果还有其它的需要保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。

第5章 MCS-51单片机的中断系统

第5章 MCS-51单片机的中断系统
系统
(2)实现实时处理
在实时控制中,现场的参数、信息是不断变化的。 有了中断功能,外界的这些变化量可随时向CPU 发出中断请求,CPU可以马上响应加以处理。
(3)故障处理
单片机运行过程中,出现一些故障时(如掉电、 存储出错、运算溢出等),有了中断功能,单片 机就能自行处理而不必停机。 外界的中断请求是随机的,单片机响应请求后要 转到中断服务程序,与调用子程序相类似,需要 注意对现场进行保护。
ORG 0100H
MAIN: …;
第五章 MCS-51单片机的中断系统
ORG 1000H INT1:PUSH ACC PUSH DPH PUSH DPL PUSH R0 PUSH R1 … POP R1 POP R0 POP DPL POP DPH POP ACC RETI
第五章 MCS-51单片机的中断系统
5.3 中断处理过程
中断响应
中断处理
中断返回
第五章 MCS-51单片机的中断系统
5.3.1 中断响应
1. CPU响应中断的基本条件 (1)有中断源提出中断请求; (2)中断没有被禁止; (3)没有正在响应的同级或更高优先级的中断; (4)当前的指令周期已经结束;(也就是说,中 断申请时,正在执行的这条指令完成后,才会响 应中断请求) (5)若当前指令为RETI或访问IE、IP指令, CPU在执行完当前指令后,要再执行一条指令才 会响应中断请求。
第五章 MCS-51单片机的中断系统
2.中断响应过程 (1)根据响应的中断源的中断优先级,使相应的优 先级状态触发器置1; (2)清除相应的中断请求标志位(串行口中断请求 标志RI和TI除外);
(3)把当前程序计数器PC的内容压入堆栈;
(4)把被响应的中断源所对应的中断服务程序的入 口地址送入PC,从而转入相应的中断服务程序。 CPU响应中断请求后,在中断返回(执行RETI)前, 中断请求必须被清除,即中断标志位=0,否则会再 一次引起中断响应。

MCS-51单片机的中断系统

MCS-51单片机的中断系统

其各位格式为: D7 D6 D5 D4 D3 D2 D1 D0 -- -- -- PS PT1 PX1 PT0 PX0
如果CPU接收到几个相同优先级的中断请求源时,响应哪一个 中断申请要取决于一个内部的硬件查询序列,此时应按照下表所 示的优先权结构先后响应中断请求。
中断源 外部中断0(IE0) 定时器T0中断(TF0) 外部中断1(IE1) 定时器T1中断(TF1) 串行口中断(RI、TI)
主程序的中断处理
1.2 CPU响应及处理中断机制
一般来说,根据中断源的轻重缓急排序,CPU优先处理最 紧急事件的中断请求源。也就是说,需要对各个中断源设定 相应的优先级,CPU总是最先响应级别最高的中断。中断源可 以分为两个中断优先级:高优先级和低优先级。用户可以用 关中断指令或复位指令来屏蔽所有中断请求,也可以用开中 断指令使CPU接收中断申请。
SM0 SM1 SM2 REN TB8 RB8 TI RI
1.4 中断控制及中断优先级
1.中断允许控制寄存器IE(字节地址A8H)
D7 D6 D5 D4 D3 D2 D1 D0 EA -- ET2 ES ET1 EX1 ET0 EX0
使用汇编语言程序控制中断请求信号的允许 或禁止的程序示例如下:
CLR EA ; 禁止所有中断请求
MOV SP, #60H SETB PX0 SETB IT0 SETB ET0 SETB EX0 SETB EA
【例2】若要求外部中断引脚 采用边沿触发方式,处于高优先 级,初始化程序可以采用位操作指令,也可以用字节型指令进行编 制。
位操作指令: SETB EA SETB EX1 SETB PX1 SETB IT1
送/接收后引起。
2.中断请求标志 1)TCON寄存器中的中断标志 TCON是定时/计数器T0、T1的控制寄存器,格式如下:

MCS-51单片机中断系统

MCS-51单片机中断系统
行字节操作时,寄存器地址为88H。按位操作时,各位的地址为88H ~8FH。寄存器的内容及位地址表示如下:
位地址 位符号
8FH 8EH DH CH 8BH 8AH 89H 8H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0 和IT1——外部中断请求触发方式控制位 IT0 (IT1)=1 脉冲触发方式,下降沿有效 IT0 (IT1)=0 电平触发方式,低电平有效
MAIN: ···
HERE:
SJMP HERE
1NJERRV
;中断响应程序
RETI
并不是所有的请求都被响应,当遇到下列情况之一时不响应
这些中断请求:
(1)CPU正在处理一个同级或者高级的中断服务
(2)当前指令还没有执行完毕
(3)当前指令是RET、RETI或者是访问IP、IE的指令,执行完
这些指令后,还必须再执行一条指令,才响应中断请求。
从中断的定义我们可以看到中断应具备中断源、中断 响应、中断返回这样三个要素。中断源发出中断请求,单片机 对中断请求进行响应,当中断响应完成后应进行中断返回,返 回被中断的地方继续执行原来被中断的程序。
6-2 中断控制寄存器
1. 定时器控制寄存器(TCON) 该寄存器用于保存外部中断请求以及定时器的计数溢出。进
IE0和IE1——外中断请求标志位 当CPU采样到 INT(0 或 INT1)端出现有效中断请求时,IE0 (IE1)位由硬件置“1”。当中断响应完成转向中断服务程序
时,由硬件把IE0(或IE1)清零。 TR0 和TR1——定时器运行控制位
TR0 (TR1 )=0 定时器/计数器不工作 TR0 (TR1 )=1 定时器/计数器开始工作 TF0和TF1——计数溢出标志位 当计数器产生计数溢出时,相应的溢出标志位由硬件置“1”。 当转向中断服务时,再由硬件自动清“0”。计数溢出标志位 的使用有两种情况:采用中断方式时,作中断请求标志位 来使用;采用查询方式时,作查询状态位来使用。

mcs-51单片机中断系统的结构[整理版]

mcs-51单片机中断系统的结构[整理版]

1.简述中断、中断源、中断源的优先级及中断嵌套的含义。

答: 当CPU 正在处理某项事件的时,如果外界或内部发生了紧急情况,要求CPU 暂停正在处理的工作转而去处理这个紧急情况,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。

单片机采用中断主要有如下几个优点:①可以提高CPU 工作效率;②具有实时处理能力;③具有故障处理能力;④实现分时操作,可控制多个外设同时工作。

向CPU 提出中断请求的源称为中断源;当系统有多个中断源时,就可能出现同时有几个中断源申请中断,而CPU 在一个时刻只能响应并处理中断优先高的请求;在实际应用系统中,当CPU 正在处理某个中断源,即正在执行中断服务程序时,会出现优先级更高的中断源申请中断。

为了使更紧急的级别高的中断源及时得到服务,需要暂时中断(挂起)当前正在执行的级别较低的中断服务程序,去处理级别更高的中断源,待处理完以后,再返回到被中断了的中断服务程序继续执行,但级别相同或级别低的中断源不能中断级别高的中断服务,这就是所谓的中断嵌套。

3.MCS-51 单片机能提供几个中断源?几个中断优先级?各个中断的源的优先级怎样确定?在同一优先级中各个中断源的优先级怎样确定?答: 51 单片机有5 个中断源,两个中断优先级:INT0 、T0、INT1 、T1、串行口中断(包括串行接收中断RI 和串行发送中断TI)。

这 5 个中断源的中断入口地址分别是0003H、000BH、0013H、001BH、0023H。

中断优先级是由片内的中断优先级寄存器IP(特殊功能寄存器)控制的。

PS:串行口中断优先级控制位。

PS=1,串行口定义为高优先级中断源;PS=0,串行口定义为低优先级中断源;PT1:T1 中断优先级控制位。

PT1=1,定时器/计数器 1 定义为高优先级中断源;PT1=0,定时器/计数器 1 定义为低优先级中断源;PX1:外部中断 1 中断优先级控制位。

第3章MCS-51单片机的中断系统

第3章MCS-51单片机的中断系统
某人看书执行主程序日常事务电话铃响中断信号int0中断请求暂停看书暂停执行主程序中断响应书中作记号当前pc入栈保护断点电话谈话执行io程序中断服务继续看书返回主程序中断返回执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回中断与转子的区别中断是随机的转子事先编程决定断点
3.3 MCS-51的中断系统 的中断系统
4、中断响应过程 、 关中断:屏蔽其它中断请求信号。 关中断:屏蔽其它中断请求信号。 保护断点:将断点地址压入堆栈保存,即当前 值入栈 值入栈。 保护断点:将断点地址压入堆栈保存,即当前PC值入栈。 寻找中断源:中断服务程序入口地址送 ,转入中断服务。 寻找中断源:中断服务程序入口地址送PC,转入中断服务。 保护现场:将中断服务程序使用的所有寄存器内容入栈。 保护现场:将中断服务程序使用的所有寄存器内容入栈。 中断处理:执行中断源所要求的程序段。 中断处理:执行中断源所要求的程序段。 恢复现场:恢复被使用寄存器的原有内容。 恢复现场:恢复被使用寄存器的原有内容。 开中断:允许接受其它中断请求信号。 开中断:允许接受其它中断请求信号。 中断返回:执行 指令, 中断返回:执行RETI指令,栈顶内容 指令 栈顶内容→PC,程序跳转回断点。 ,程序跳转回断点。
当前PC入栈 书中作记号 当前 入栈
主程序 执行主程序 中断请求 断点 继续执行主程序 中断返回 执行中断 处理程序 中断响应
中断与转子的区别 中断是随机的, 中断是随机的,转子事先编程决定
3.3.1 中断的定义 2、几个术语 、 主程序:原来正常运行的程序称为主程序。 主程序:原来正常运行的程序称为主程序。 断点: 主程序被断开的位置(或地址)称为“断点” 断点 主程序被断开的位置(或地址)称为“断点”。 中断源:引起中断的原因,或发出中断申请的来源。 中断源 引起中断的原因,或发出中断申请的来源。 引起中断的原因 中断请求:中断源要求服务的请求称为“中断请求” 中断请求 中断源要求服务的请求称为“中断请求” 。 中断源要求服务的请求称为 中断响应: 终止当前执行的程序, 中断响应:CPU终止当前执行的程序,去执行相应中断源 终止当前执行的程序 的中断请求。 的中断请求。 中断服务或中断处理程序: 中断服务或中断处理程序: “中断”之后所执行的相应的处理程序。 中断”之后所执行的相应的处理程序。 中断系统:能够实现中断处理功能的部件。 中断系统:能够实现中断处理功能的部件。

实验四-MCS-51单片机外部中断实验

实验四-MCS-51单片机外部中断实验

实验四-MCS-51单片机外部中断实验实验目的:1. 学习MCS-51单片机的外部中断原理和使用方法;2. 掌握如何通过硬件中断和软件中断实现MCS-51单片机的响应机制;3. 了解MCS-51单片机外部中断的实际应用。

实验器材:MCS-51单片机开发板、按键开关、调试器。

实验原理:MCS-51单片机通过INT0和INT1两个硬件中断引脚实现外部中断。

当INT0外部中断线检测到低电平信号时,中断向量为0x0003;当INT1外部中断线检测到低电平信号时,中断向量为0x0013。

通过配置中断控制寄存器IE和TCON,可以实现对外部中断的使能、触发方式和优先级等的控制。

MCS-51单片机还可以通过软件方式实现外部中断,即通过软件方式扫描外部信号,并在检测到信号发生变化时触发相应的中断处理程序。

实现软件中断的方法是使用定时器功能,通过定时器中断触发中断服务程序,该程序扫描外部信号,并根据需要触发软件中断。

实验步骤:1. 将开发板上的按键开关连接到开发板的P3.2引脚。

按键开关按下时,P3.2引脚被拉低,可以触发外部中断。

2. 打开Keil μVision5软件,新建工程,选择芯片型号为STC89C52,保存并命名为“Exp4”。

3. 在主函数中声明中断函数,并在中断函数中打印提示信息。

4. 在主函数中初始化中断控制寄存器IE和TCON,开启INT0外部中断,并将中断优先级设置为最高。

5. 在主函数中使用无限循环,来保持程序一直运行,并定时打印提示信息,以验证程序是否正常运行。

6. 烧录程序到开发板上,先在开发板上不按下按键,观察是否正常打印提示信息。

然后按下按键,观察是否触发外部中断,进入中断函数并打印提示信息。

实验代码:#include<STC89C52.h>#include<stdio.h>// 定义外部中断0的中断服务函数void Interrupt0() interrupt 0{printf("External interrupt 0 has occured!\n");}// 打印提示信息printf("Program is running...\n");while(1){// 定时打印提示信息printf("Hello!\n");delay_ms(1000);}}注意事项:1. 写中断程序时,一定要注意将中断函数的声明放在程序开头,否则可能会出现中断无法触发的情况;2. 在使用中断相关功能的时候,务必仔细阅读数据手册中的相关章节,以确保正确使用并且避免出现不必要的错误;3. 在进行外部中断实验的时候,可以使用按键开关、光敏电阻等外部器件来模拟外部信号的变化,以测试程序的正确性。

第六章 MCS-51单片机的中断

第六章 MCS-51单片机的中断

TF1
T1 请求
TR1
T1 工作
TF0
T0 请求
TR0
T0 工作
IE1
INT1 请求
IT1
INT1 方式
IE0
INT0 请求
IT0
INT0 方式
有 /无
启 /停
有 /无
启 /停
有 /无
下沿/ 低
电平
有 /无
下沿/低
电平
2、在每条指令结束时,CPU检测各个中断标志位,若中断标志位置1,则认为有 中断请求。 3、外中断有2种触发方式:低电平和下降沿,由TCON中的IT0和 IT1决定。
PC
4.2.2 MCS-51中断处理全过程
返回
4.2.2 MCS-51中断处理全过程
1、中断请求
⑴ MCS51单片机内部的中断检测电路随时检测各个中断源,检测到有中断
申请后,将相应的中断标志位置1。
⑵ CPU在每条指令结束时,检测各个中断标志位,若中断标志位置1,则认 为有中断请求。
⑶ CPU读取IE和IP的内容,若中断允许且满足如下条件,则在下一个机器
返回
复位后IP=00H,说明各个中断源都处于低级。 注意: 1、当五个中断源在同一个优先级的情况下INT0优先权最高,串行口优先权最低。 在同一个优先级中,对五个中断源的优先次序安排如下: INT0→T0→INT1→T1→串口 (中断优先级从高到低) 2、对于外中断来说,可以用软件查询法和硬件排队电路法确定优先级。 3、通过对IP寄存器的编程,可以把五个中断源分别定义在两个优先级中,软件 可以随时对IP的各位清0或置1。 例如 某软件中对寄存器IE、IP设置如下:MOV IE,#10001111B MOV IP,#00000110B

c51单片机中断详解

c51单片机中断详解

响应中断请求的条件
一、一个中断请求被响应,需满足以下 必要条件:
(1)IE寄存器中的中断总允许位EA=1。
(2)该中断源发出中断请求,即该中断源对应 的中 断请求标志为“1”。
(3)该中断源的中断允许位=1,即该中断没有 被屏蔽。
(4)无同级或更高级中断正在被服务。
二、中断响应的主要过程
中断源
或者用: MOV 0A8H,#8AH ;A8H为IE寄存器 字节地址
三、中断优先级寄存器IP 两个中断优先级,可实现两级中断 嵌套。如图所示:
每个中断源的中断优先级都是 由中断优先级寄存器IP中的相应位 的状态来控制的。 中断优先级寄存器IP,其字节地址 为B8H。
IP各个位的含义: (1)PS——串行口中断优先级
控制位 1:高优先级中断; 0:低优先级中断。
(2)PT1——定时器T1中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(3)PX1——外部中断1中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(4)PT0——定时器T0中断优先级控制位 1:高优先级中断; 0:低优先级中断。
(5)PX0——外部中断0中断优先级控制位 1:高优先级中断; 0:低优先级中断。
地址是固定的,不能改动。

三、中断处理 编写中断中断服务程序即可
四、中断返回
▪中断返回由专门的中断返回指令 RETI来实现。
五、中断请求的撤消 2.外部中断请求的撤消 (1)跳沿方式外部中断请求的撤消 是自动撤消的。 (2)电平方式外部中断请求的撤消。
六、外部中断的响应时间 外部中断的最短的响应时间为3
二、中断允许控制
中断允许控制寄存器IE
CPU对中断源的开放或屏蔽,由片内 的中断允许寄存器IE控制(两级控制)。 字节地址为A8H,可位寻址。格式如下:

单片机讲义(第五章MCS-51的中断系统)

单片机讲义(第五章MCS-51的中断系统)


5.6.2 跳沿触发方式(下降沿触发方式)
如果相继连续两次采样,一个机器周期采样到外部中断输入为高, 下一个机器周期采样为低,则置1中断申请触发器,直到CPU响应此 中断时,该标志才清0。这样不会丢失中断,输入的负脉冲宽度至少保
持12个时钟周期(若晶振频率为6 MHZ,则为2μs),才能被CPU采样到。
(2)用字节操作指令
MOV IP,#05H ;000 00101 或者用: MOV 0B8H,#05H ;B8H为IP寄存器的字节地址
5.5 外部中断的响应时间


从外部中断请求有效(外部中断请求标志置1)到转 向中断入口地址所需要的响应时间。 外部中断的最短响应时间为3个机器周期。其中中断
请求标志位查询占1个机器周期,而这个机器周期恰好是处于指令 的最后一个机器周期,在这个机器周期结束后,中断即被响应, CPU接着执行1条硬件子程序调用指令 LCALL以转到相应的中断服 务程序入口,则需要2个机器周期。

外部中断响应的最长时间为8个机器周期。执行RETI或
是访问IE或IP的指令,最长需要2个机器周期。而接着再执行的1条 指令,按最长的指令(乘法指令MUL和除法指令DIV)来算,需4 个机器周期。再加上硬件子程序调用指令LCALL的执行,需要2个 机器周期,所以,外部中断响应最长时间为8个机器周期。
5.3.3中断允许寄存器IE

IE中各位的功能如下:
(l)EA——中断允许总控制位 EA=0,CPU屏蔽所有的中断请求(CPU关中 断); EA=1,CPU开放所有中断(CPU开中断)。 (2)ES——串行口中断允许位 ES=0,禁止串行口发送/接收中断; ES=1,允许串行口发送/接收中断。 (3) ET1——定时器/计数器T1的溢出中断允许 位 ET1= 0,禁止T1计数溢出中断; ET1= 1,允许T1计数溢出中断。

MCS51单片机中断系统

MCS51单片机中断系统

中断程序入口地址
五个中断程序的入口地址为: 五个中断程序的入口地址为: 外中断0 INT0) 外中断0(INT0) :0003H 定时器0 T0) 定时器0(T0) :000BH 外中断1 INT1) 外中断1(INT1) :0013H 定时器1 T1) 定时器1(T1) :001BH 串行口(RI/TI) 串行口(RI/TI) :0023H
可归纳为下面两条基本规则: 可归纳为下面两条基本规则: (1)低优先级可被高优先级中断,反之则不能。 低优先级可被高优先级中断,反之则不能。 (2)同级中断不会被它的同级中断源所中断。 )同级中断不会被它的同级中断源所中断。
CPU正在执行高优先级的中断 正在执行高优先级的中断, 若 CPU 正在执行高优先级的中断 , 则不能被任何中断 源所中断。 源所中断。 中断优先级寄存器IP 其字节地址为B IP, 中断优先级寄存器IP,其字节地址为B8H。
寄存器名称 D7 定时器控制 TCON(88H TF1 寄存器 ) 位地址 8FH 串行口控制 SCON(98H) 寄存器 位地址 9FH 中断允许 IE(A8H) EA 寄存器 位地址 AFH 中断优先级 IP(B8H) 寄存器 位地址 D6 D5 TF0 8DH 9DH D4 D3 IE1 8BH D2 IT1 8AH D1 IE0 89H TI 99H ET0 A9H PT0 B9H D0 IT0 88H RI 98H EX0 A8H PX0 B8H
MCS-51复位后,IE清 MCS-51复位后,IE清0,所有中断请求被禁止。 复位后 所有中断请求被禁止。 若使某一个中断源被允许中断,除了IE IE相应的位的被 若使某一个中断源被允许中断,除了IE相应的位的被 还必须使EA =1。 EA位 置“1” ,还必须使EA位=1。 改变IE的内容,可由位操作指令来实现, IE的内容 改变IE的内容,可由位操作指令来实现,即: bit; SETB bit; bit。 CLR bit。 若允许片内2个定时器/计数器中断, 例5-1 若允许片内2个定时器/计数器中断,禁止其它 中断源的中断请求。编写设置IE IE的相应程序段 中断源的中断请求。编写设置IE的相应程序段 用位操作指令来编写如下程序段: (1)用位操作指令来编写如下程序段: CLR ES ;禁止串行口中断 EX1 禁止外部中断1 CLR EX1 ;禁止外部中断1中断 EX0 禁止外部中断0 CLR EX0 ;禁止外部中断0中断

第4章 MCS-51单片机中断、定时系统及串行数据通信

第4章 MCS-51单片机中断、定时系统及串行数据通信

表4-2 中断源入口地址表 中断源 外部中断0 中断服务程序入口地址 0003H
定时器/计数器T0 外部中断1 定时器/计数器T1 串行口中断
000BH 0013H 001BH 0023H
单片机的两个相邻中断源中断服务程序入口地址 相距只有8个单元,一般中断服务程序容纳不下,因此 在该中断的入口地址处放一条长跳转指令LJMP,这 样就可以转到64KB的任何可用区域了。在2KB范围内 转移可用短跳转AJMP指令。
表4-1 同级中断源优先级排列顺序
中断源
外部中断0(IE0) 定时器/计数器T0中断(TF0) 外部中断1(IE1) 定时器/计数器T1中断(TF1)
同级内的优先级
最低级
串行口中断(RI+TI)
最高级
当单片机系统复位后,IE中各位均被清0,所有 中断源禁止;IP中各位均被清0,5个中断源均为低优 先级。
SET SET
SET
ET0 ET1
EA
;定时器/计数器0允许中断 ;定时器/计数器1允许中断
;CPU开中断
用字节操作指令 MOV IE,#8AH 或 MOV A8H,#8AH
(2)中断优先级控制寄存器(IP) MCS-51单片机系统的中断源有两个优先级,每 个中断源均可由中断优先级寄存器IP来设置优先级别。 IP的字节地址为0B8H,位地址为0B8H~0BFH。与 中断有关的控制位如下: 位地址 0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H
TMOD是定时器的工作方式寄存器,TCON是控制 寄存器,用于对T0和T1的管理和控制。
2.定时器/计数器的结构的工作原理 16位定时器/计数器的核心是一个加1计数器,如图 4-4所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 中断服务, 即为相应的中断源服务。
(4) 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在 恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及 时开中断。
(5) 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计 数器, 从而使CPU继续执行刚才被中断的程序。
第5章 MCS - 51单片机的中断
4.2 MCS - 51中断系统
图5.1 MCS - 51中断系统结构框图
第5章 MCS - 51单片机的中断
5.2.1 中断源
表 5.1 8051 中 断 源
第5章 MCS - 51单片机的中断
MCS-51单片机5个中断源的中断请求信号分别锁存在特 殊功能寄存器TCON和SCON中:
(1)TCON为定时/计数器控制寄存器,字节地址为88H,其中 锁存的中断源请求标志如表5―1所示。
第5章 MCS - 51单片机的中断
第4章 MCS - 51单片机的中断
4.1 中断的概述 4.2 MCS - 51中断系统 4.3 中断系统的应用
第5章 MCS - 51单片机的中断
4.1 中 断 的 概 述
1. 中断是指计算机在执行某一程序的过程中, 由于计算机系 统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相 应的处理程序, 待处理结束之后, 再回来继续执行被中止的原 程序的过程。 采用了中断技术后的计算机, 可以解决CPU与外设之间速 度匹配的问题, 使计算机可以及时处理系统中许多随机的参 数和信息, 同时, 它也提高了计算机处理故障与应变的能力。
PT0:定时器0中断优先级控制位。
PX1:外部中断1优先级控制位。
PT1:定时器1中断优先级控制位。
PS:串行口中断优先级控制位。
上面优先级控制位规定1为高优先级,0为低 优先级。
第5章 MCS - 51单片机的中断 表 5.2 同级内第二优先级次序
第5章 MCS - 51单片机的中断
例如, 某软件中对寄存器IE、 IP设置如下: MOV IE, # 8FH MOV IP, # 06H 则此时该系统中:
TF0: T0溢出中断标志位。1:中断触发。转向中断处理由硬件清0。
如果为查询方式,可由软件清0。
TR0: T0起动位。1:开始记数。0:停止记数
第5章 MCS - 51单片机的中断
2. 特殊功能寄存器SCON
(MSB)
图 5.3 SCON格式
SM0 SM1 SM2 REN TB0 RB0
LSB
TI
第5章 MCS - 51单片机的中断
4. 中断响应的过程
(1) 在每条指令结束后, 系统都自动检测中断请求信号, 如果 有中断请求,且CPU处于开中断状态下, 则响应中断。
(2) 保护现场, 在保护现场前, 一般要关中断, 以防止现场被 破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推 入堆栈。
· CPU中断允许; · 允许外部中断 0、 外部中断 1、 定时器 /计数器 0、 定时器 /计数器1提出的中断申请; · 允许中断源的中断优先次序为: 定时器 /计数器 0>外部中断 1>外部中断 0>定时器/计数 器 1。
RI
• SCON串行口控制寄存器,字节地址为98H。
• SCON的低2位锁存串行口的接收中断和发送中断标志, 其格式如表5―2所示。
第5章 MCS - 51单片机的中断
TI:串行口发送中断标志。在串行口以方式0发送时,
每当发送完8位数据后,由硬件置位TI;若以方式1、2、3 发送时,在发送停止位的开始时置位TI。TI=1表示串行 口发送器正在向CPU申请中断。值得注意的是当CPU 响应该中断后,转向中断服务程序时并不复位TI,TI必须 由用户在中断服务程序中用软件清0(可用CLRTI或其它 指令)。
第5章 MCS - 51单片机的中断
2. 中断源是指在计算机系统中向CPU发出中断请求的来 源, 中断可以人为设定, 也可以是为响应突发性随机事件而 设置。通常有I/O设备、实时控制系统中的随机参数和信息 故障源等。
第5章 MCS - 51单片机的中断
3. 中断优先级 中断优先级越高, 则响应优先权就越高。当CPU正在执 行中断服务程序时, 又有中断优先级更高的中断申请产生, 这时CPU就会暂停当前的中断服务转而处理高级中断申请, 待高级中断处理程序完毕再返回原中断程序断点处继续执 行, 这一过程称为中断嵌套。
第5章 MCS - 51单片机的中断
5.2.2 中断控制
1. MCS - 51单片机有 5个(8052有 6个)中断源, 为了使每 个中断源都能独立地被允许或禁止, 以便用户能灵活使用, 它 在每个中断信号的通道中设置了一个中断屏蔽触发器。
只有该触发器无效, 它所对应的中断请求信号才能进入 CPU, 即此类型中断开放。 否则, 即使其对应的中断标志位置 1, CPU也不会响应中断, 即此类型中断被屏蔽了。同时CPU内 还设置了一个中断允许触发器, 它控制CPU能否响应中断。
第5章 MCS - 51单片机的中断
RI:串行口接收中断标志。若串行口接收器允许接
收并以方式0工作,则每当接收到第8位数据时置位RI;若 以方式1、2、3工作,且SM2=0时,则每当接收器接收到 停止位的中间时置位RI;当串行口以方式2或方式3工作, 且SM2=1时,仅当接收到的第9位数据RB8为1后,同时还 要接收到停止位的中间时置位RI。RI为1表示串行口接 收器正向CPU申请中断,同样RI必须由用户在中断服务 程序中清0。8051复位后,SCON也被清0。
第5章 MCS - 51单片机的中断
(MSB)
图 5.4 IE格式
EA
X
X0
第5章 MCS - 51单片机的中断
2. 中断优先级 (MSB)
图 5.5 IP的格式
(LSB)
X
X
PT2
PS
PT1 PX1 PT0 PX0
其中:
PX0:外部中断0优先级控制位。
表5―1 TCON锁存的中断源
第5章 MCS - 51单片机的中断
1. 特殊功能寄存器TCON中的标志 (MSB)
(LSB)
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
图 5.2 TCON格式
IT0: INT0触发方式控制位,0:低电平触发。1:下降边沿触发 IE0: INT0中断标志位。1:中断触发。转向中断处理由硬件清0
相关文档
最新文档