MCS51单片机第5章
合集下载
单片机-第五章 单片机中断系统

(1)CPU正在执行一个同级或高优先级的中断服务程序; (2)正在执行的指令尚未执行完; (3)正在执行中断返回指令RETI或者对寄存器IE、IP进 行读/写的指令。 CPU在执行完上述指令之后,要再执行一条指令,才 能响应中断请求。
二、中断响应过程 从中断请求发生直到被响应,准备去执行中断服务程 序,此过程即中断响应过程。中断响应过程一般包括如下几 个阶段: 1、中断采样并置位 中断采样过程:CPU在每个机器周期S5P2期间顺序对 中断源采样、置中断标志。 2、查询标志 在中断采样后的下一个周期的S6按优先级顺序查 询中断标志。
第5章 MCS-51单片机中断系统
5.1.1中断的概念
单片机系统中,CPU和外部设备之间不断进行信息的传 输。通常CPU和外设之间的信息传送方式有以下几种: 程序控制方式 中断方式 直接存储器存取(DMA)方式
1、 程序控制方式 可以分为以下两种方式。 (1)无条件传送方式 外设始终处于就绪状态,CPU不必查询外设的状 态,直接进行信息传输,称为无条件传送方式。 此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。
三、中断响应的时间
一般来说,中断的响应时间最短为3个机器周期,最长 为8个机器周期。 一般中断请求标志位查询占1个机器周期。而机器周期 又恰好是指令的最后一个机器周期。执行此指令后,CPU 将响应中断,产生硬件长调用指令。 长调用LCALL指令需要2个机器周期。这样,中断响应 时间为3个机器周期。
是不可寻址的
在同级的几个中断源中同时发生请求时, 内部对同级的各中断源的优先级别有一个规 定的查询顺序: 自然优先级
外部中断请求 INT0 最高 定时/计数器 T0 外部中断请求 INT1 定时/计数器 T1 串行口 UART 最低 定时/计数器 T2
单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0
MCS51单片机第5章

中断优先级处理原则
同时发生多个中断申请时 多个中断申请时: 对同时发生多个中断申请时: 不同优先级的中断同时申请(很难遇到) ☞不同优先级的中断同时申请(很难遇到) ——先高后低 先高后低 相同优先级的中断同时申请(很难遇到) ☞相同优先级的中断同时申请(很难遇到) ——按序执行 按序执行 ☞正处理低优先级中断又接到高级别中断 ——高打断低 高打断低 ☞正处理高优先级中断又接到低级别中断 ——高不理低 高不理低
MCS-51单片机的中断系统 MCS-51单片机的中断系统 计算机与外设之间交换信息的方式: 计算机与外设之间交换信息的方式: 无条件传送方式:外设对计算机来说总是准备好的。 (1)无条件传送方式:外设对计算机来说总是准备好的。 (2)查询传送方式:传送前计算机先查询外设的状态, 查询传送方式:传送前计算机先查询外设的状态, 若已经准备好就传送,否则就继续查询/等待。 若已经准备好就传送,否则就继续查询/等待。 中断传送方式: (3)中断传送方式:外设通过申请中断的方式与计算 机进行数据传送。 机进行数据传送。 直接存储器存取方式(DMA) (DMA): (4)直接存储器存取方式(DMA):传送数据的双方直 接通过总线传送数据, 不经CPU中转。 CPU中转 接通过总线传送数据, 不经CPU中转。
中断请求的撤除
为了避免中断请求标志没有及时撤除而造成的重复响应同一中 断请求的错误, CPU在响应中断时必须及时将其中断请求标志 断请求的错误, CPU在响应中断时必须及时将其中断请求标志 位撤除。 位撤除。
申请标志 IE0 TF0 IE1 TF1 RI/TI TF2
中断矢量 0003H 000BH 0013H 001BH 0023H 002BH
中断优先级 最高优先级
最低优先级
第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单片机的中断系统

系统
(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,否则会再 一次引起中断响应。
(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,否则会再 一次引起中断响应。
第5章 单片机存储器扩展

11000000000000000~1101111111111111,即C000H~DFFFH;
11100000000000000~1111111111111111,即E000H~FFFFH。
•采用地址译码器的多片程序存储器的扩展(译码法)
例3 要求用2764芯片扩展8031的片外程序存储器,分配的地
21×210 = 211
地址空间: A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最低地址: 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0000H 07FFH
最高地址: 1
MCS-51单片机寻址范围:64KB
26×210 = 216即16位地址线
地址空间: A15A14A13A12A11A10A9A8A7··A0 单片机 ·· ·· × × × × × A10A9A8A7··A0 6116 ·· ·· 2KB
25 = 32
上式中:“×”表示0或1。
即单片机地址空间中包含有32个2KB。某片6116占据的是哪 2KB不能确定——地址浮动。 只有限定A15··A11的取值才能确定6116在系统中的地址 ·· ·· 范围。如,P2.5 = 1 ,选中6116的/CS线。设P2.7 P2.5 P2.4 P2.3 假定全为1
例2 使用两片2764扩展16 KB的程序存储器,采用线选法选
中芯片。扩展连接图如图所示。以P2.7作为片选,当P2.7=0时,
选中2764(1);当P2.7=1时,选中2764(2)。因两根线(A13、A14)
未用,故两个芯片各有22=4个重叠的地址空间。它们分别为
用两片2764 EPROM的扩展连接图
则: 6116地址范围是B800H ~ BFFFH。
第5章 MCS–51单片机的接口与应用 99页 5.8M
(1) 用键盘连接的I/O线的二进制组合表示键码。例如用4行、
4列线构成的16个键的键盘,可使用一个8位I/O口线的高、低4 位口线的二进制数的组合表示16个键的编码,如图5.4(a)所示。 各键相应的键值为88H、84H、82H、81H、48H、44H、42H、 41H、28H、24H、22H、21H、18H、14H、12H、11H。这种键 值编码软件较为简单直观,但离散性大,不便安排散转程序的 入口地址。
第5章 MCS–51单片机的接口与应用 JNB ACC.2,K2 JNB ACC.3,K3 JNB ACC.4,K4 JNB ACC.5,K5 JNB ACC.6,K6 ;检测2号键是否按下,按下转 ;检测3号键是否按下,按下转 ;检测4号键是否按下,按下转 ;检测5号键是否按下,按下转 ;检测6号键是否按下,按下转
;0号键功能程序
;0号键功能程序执行完返回 ;0号键功能程序
JMP START
……………………… PROM7: ……………………… JMP START …
;1号键功能程序执行完返回
;7号键功能程序 ;7号键功能程序执行完返回
第5章 MCS–51单片机的接口与应用
5.1.4 行列式键盘
行列式键盘又叫矩阵式键盘。用I/O口线组成行、列结构, 按键设置在行列的交点上。例如4×4的行列结构可组成16个键 的键盘。因此,在按键数量较多时,可以节省I/O口线。 1.行列式键盘的接口 行列式键盘的接口方法有许多,例如直接接口于单片机的 I/O口上;利用扩展的并行I/O接口;用串行口扩展并行I/O口接 口;利用一种可编程的键盘、显示接口芯片8279进行接口等。 其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系
MOVX @DPTR,A
单片机原理及其接口技术--第5章 MCS-51单片机中断系统
下来,这称为保护现场,由用户自己编程完成。
保护断点和现场后即可执行中断服务程序,执行完毕, CPU由中断服务程序返回主程序。 主目录 上一页 下一页 结 束
15
……
响应
单片机原理及其接口技术
主程序A
断点
返回
中断返回过程如下:
RETI 中断服务程序B
首先恢复原保留寄存器的内容和标志位的状态,这称为恢 复现场,由用户编程完成。 然后,再加返回指令RETI,RETI指令的功能是恢复PC值, 使CPU返回断点,这称为恢复断点。 恢复现场和断点后,CPU将继续执行原主程序,中断响应 过程到此为止。 主目录 上一页 下一页 结 束
主目录 上一页 下一页 结 束
单片机原理及其接口技术
5.2.2 中断标志与中断控制
1.中断标志
(1) 定时器控制寄存器TCON
SFR之一,锁存中断请求标志,字 节地址88H,可位寻址。
其结构、位名称、位地址及其功能 如表5.1所示。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 表5.1 TCON的结构、位名称、位地址和功能
单片机原理及其接口技术
第5章 MCS-51单片机中断系统
教学目标 5.1 中断概述 5.2 MCS-51中断系统 5.3 中断系统的应用 本章小结 思考题与习题主目录上一页来自下一页结束
单片机原理及其接口技术
教学目标
通过本章教学,要求达到以下目标: 1.熟记MCS-51 5个中断源及其中断入口地址。 2.熟悉TCON、SCON、IE、IP的结构、控制 作用和设置方法。 3.理解MCS-51中断响应过程。 4.了解中断响应等待时间。 5.理解中断请求撤除情况和应对措施。 6.熟悉中断优先控制的方法。 7.掌握中断应用程序的编制方法。
单片机原理第5章定时、计数器
5.2.2 控制寄存器 控制寄存器TCON
5,控制寄存器TCON初始化设置 ,控制寄存器 初始化设置
0
0 1
0
1 0 1
0
0
0
0
复位时, 的所有位被清0. 复位时,TCON的所有位被清 的所有位被清 要启动,关闭 , 要启动,关闭TI, T0,需对 ,需对TR1,TR0用 , 用 软件设置: 软件设置: SETB TRx;启动 ; CRL TRx;关闭 ; 也可以用传送指令 MOV TCON,#50H , 同时启动T0, 同时 同时启动 ,T1同时 使用电平触发方式. 使用电平触发方式.
时钟 振荡 ÷12
2,脉冲计数 , 每来1个脉冲,计 每来 个脉冲, 个脉冲 数器加1. 数器加 .
C P U
T0 TL0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
溢 出 启动 TH0 工作 方式
TCON
TMOD
中断
5.1 定时器的结构及工作原理
1,计数脉冲来源 ,
(P3.4)
INT0(INTI)=1 指令 SETB TR0(TR1) 启动定时/计数器 启动定时 计数器T0(T1) 计数器
1
5.2.2 控制寄存器 控制寄存器TCON
1,溢出标志位 TFx
0 1
TFl(TCON.7):T1溢出标志位.当T1溢出时由硬 : 溢出标志位 溢出标志位. 溢出时由硬 件自动使中断触发器TFl置1,并向 申请中断. 件自动使中断触发器 置 ,并向CPU申请中断. 申请中断 响应进入中断服务程序后, 当CPU响应进入中断服务程序后,TFl又被硬件 响应进入中断服务程序后 又被硬件 自动清0. TFl也可以用软件清 . 自动清 . 也可以用软件清0. 也可以用软件清 TF0(TCON.5):T0溢出标志位.其功能和操作同 : 溢出标志位 其功能和操作同TFl 溢出标志位.
第5章 MCS-51单片机的程序设计
X + 1, X > 0 Y = 0, X = 0 1, X < 0
5.3.4 循环程序
循环程序一般由如下四部分组成: 循环程序一般由如下四部分组成: ①初始化部分:用来设置循环初值,包括预置变量、计数器和数据指针 初始化部分:用来设置循环初值,包括预置变量、 初值,为实现循环做准备。 初值,为实现循环做准备。 ②循环处理部分:要求重复执行的程序段,是程序的主体,称为循环体。 循环处理部分:要求重复执行的程序段,是程序的主体,称为循环体。 循环体既可以是单个指令,也可以是复杂的程序段,通过它可完成对数据 循环体既可以是单个指令,也可以是复杂的程序段, 进行实际处理的任务。 进行实际处理的任务。 ③循环控制部分:控制循环次数,为进行下一次循环而修改计数器和指 循环控制部分:控制循环次数, 针的值,并检查该循环是否已执行了足够的次数。也就是说, 针的值,并检查该循环是否已执行了足够的次数。也就是说,该部分用条 件转移采控制循环次数和判断循环是否结束。 件转移采控制循环次数和判断循环是否结束。 ④循环结束部分:分析和存放结果。 循环结束部分:分析和存放结果。
√ × 机器汇编
√
√
×
√
×
√
×
5.3.1 16位加减法程序 位加减法程序
位二进制数分别存放在R1R0和R3R2中,试求其和, 例5-1:已知两个 位二进制数分别存放在 :已知两个16位二进制数分别存放在 和 中 试求其和, 并将结果存入R1R0中。 中 并将结果存入 汇编语言程序: 汇编语言程序: ORG CLR R1 R3 R1 R0 R2 R0 MOV ADD MOV MOV ADDC MOV SJMP END 0000H C A,R2 A,R0 R0,A A,R3 A,R1 R1,A $
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行口控制寄存器SCON (98H)
SM0 SM1
SM2
REN
TB8
RB8
TI
RI
TI/RI:串行口发送/接收中断申请标志位(由硬件自 TI/RI:串行口发送/接收中断申请标志位( 动置位,必须由用户在中断服务程序中用软件清0 动置位,必须由用户在中断服务程序中用软件清0)。 =0:没有串行口发送/接收中断申请; =0:没有串行口发送/接收中断申请; =1:有串行口发送/接收中断申请。 =1:有串行口发送/接收中断申请。 SCON的高 的高6 SCON的高6位用于串行口工作方式设置和串行口 发送/接收控制。 发送/接收控制。
中断矢量
中断响应的主要内容就是由硬件自动生成一条长调用指 令(LCALL addr16),CPU执行这条长调用指令便响应 中断,转入相应的中断服务程序。这里的addr16就是程 序存储器中相应的中断服务程序的入口地址,MCS-51的 最高优先级 5个中断源的中断服务程序入口地址是固定的,
最低优先级
中断允许控制寄存器IE 0A8H) 中断允许控制寄存器IE (0A8H)
EA
ES
ET1
EX1
ET0
EX0
EX0/EX1/ET1/ET0/ES 位:分别是 INT0 / INT ,T0/T1,串行 1 口的中断允许控制位。 =0 :禁止中断; =1 :允许中断。 EA:总的中断允许控制位(总开关): =0 :禁止全部中断; =1 :允许中断。
MCS-51MAIL:sunjf@ EMAIL:
河北工业大学 电气与自动化学院
MCS-51单片机的中断系统 MCS-51单片机的中断系统
计算机与外界的联系是通过外部设备( 计算机与外界的联系是通过外部设备(也 称为外设、输入/输出设备或I/O设备) I/O设备 称为外设、输入/输出设备或I/O设备)与 外界联系的。计算机与外设之间不是直接 外界联系的。 相连的, 相连的,而是通过不同的接口电路来达到 彼此间的信息传送的目的。 彼此间的信息传送的目的。
高中断级 中断请求
INT1 外部中断 IE1
中断入口 低中断级 中断请求
内部 T TI 串行口 R RI
IE寄存器 IE寄存器
EA位 EA位
IP寄存器 IP寄存器
中断入口
定时器控制寄存器TCON
(88H)
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF0/TF1:定时器溢出中断申请标志位: TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。 =1:定时器溢出申请中断,进中断后自动清零。 TR0/TR1:定时器运行启停控制位: TR0/TR1:定时器运行启停控制位: =0:定时器停止运行; =0:定时器停止运行; =1:定时器启动运行。 =1:定时器启动运行。
中断与子程序的最主要区别: 中断与子程序的最主要区别: 子程序是预先安排好的, 子程序是预先安排好的, 中断是随机发生的。 中断是随机发生的。
数据传送的双方平时各自做自己的工作, 数据传送的双方平时各自做自己的工作, 甲方要求与乙方进行数据传送 一旦甲方要求与乙方进行数据传送, 一旦甲方要求与乙方进行数据传送,就 主动发出信号提出申请, 发出信号提出申请 主动发出信号提出申请, 乙方接到申请后若同意传送, 乙方接到申请后若同意传送, 接到申请后若同意传送 安排好当前的工作, 安排好当前的工作, 响应与甲方发生数据传送 发生数据传送。 再响应与甲方发生数据传送。 完事后,回去继续做打断前的工作。 完事后,回去继续做打断前的工作。 做打断前的工作
申请标志 IE0 TF0 IE1 TF1 RI/TI TF2
中断矢量 0003H 000BH 0013H 001BH 0023H 002BH
中断优先级 最高优先级
最低优先级
8051的5个中断源的中断服务入口地址之间相差8个单元。 这8个存储单元用来存储中断服务程序一般来说是不够的。用户 常在中断服务程序地址入口处放一条三字节的长转移指令。一 般地,主程序从0030H单元以后开始存放。例如:
Tc Ts
S2 S3 S4 S5 Tm
S6 S1 S2 S3 S4 S5 Tm
S6
中断系统硬件结构
各单路开关 总开关 INT0 外部中断 IE0
请求0 请求0 内部 定时器0 定时器0 请求1 请求1 内部 定时器1 定时器1 TF1 ET1 ES 中断源 标志位 TF0 ET0 EX1 中断源 标志位 EX0 中断源标志 位查询机构
MCS-51单片机的中断系统 MCS-51单片机的中断系统 计算机与外设之间交换信息的方式: 计算机与外设之间交换信息的方式: 无条件传送方式:外设对计算机来说总是准备好的。 (1)无条件传送方式:外设对计算机来说总是准备好的。 (2)查询传送方式:传送前计算机先查询外设的状态, 查询传送方式:传送前计算机先查询外设的状态, 若已经准备好就传送,否则就继续查询/等待。 若已经准备好就传送,否则就继续查询/等待。 中断传送方式: (3)中断传送方式:外设通过申请中断的方式与计算 机进行数据传送。 机进行数据传送。 直接存储器存取方式(DMA) (DMA): (4)直接存储器存取方式(DMA):传送数据的双方直 接通过总线传送数据, 不经CPU中转。 CPU中转 接通过总线传送数据, 不经CPU中转。
51单片机的中断源 51单片机的中断源
中断源是指引起中断的设备或事件,或发出中断请求 的源头。 51子系列允许5个(52子系列6个)中断源: 51子系列允许5 (52子系列6 子系列允许 子系列 中断源: 2个外部中断请求:INT0,INT1 个外部中断请求:INT0, 个片内定时器/计数器T0 T1中断请求 T0和 中断请求: 2个片内定时器/计数器T0和T1中断请求: TF0,TF1, TF2 TF2——52子系列有T2) 52子系列有T2) TF0,TF1,(TF2 52子系列有T2 个串行口中断请求: 1个串行口中断请求:TI/RI
CPU已经开放了外部中断允许的前提下 已经开放了外部中断允许的前提下: 在CPU已经开放了外部中断允许的前提下: INT0/INT1引脚输入一个负脉冲或低电平, 引脚输入一个负脉冲 在INT0/INT1引脚输入一个负脉冲或低电平, TCON寄存器中的IE0/IE1标志位自动变 寄存器中的IE0/IE1标志位自动变“ ”, TCON寄存器中的IE0/IE1标志位自动变“1”, 检测到IE0/IE1 IE0/IE1变 检测到IE0/IE1变“1”后,将产生指令: 后 将产生指令: 0003H(/0013H)执行中断服务程序, (/0013H)执行中断服务程序 LCALL 0003H(/0013H)执行中断服务程序, 并将IE0/IE1标志位自动清“ ,以备下次申请。 IE0/IE1标志位自动清 并将IE0/IE1标志位自动清“0”,以备下次申请。
CPU在每个机器周期的S5P2期间, CPU在每个机器周期的S5P2期间,会自动查询 在每个机器周期的S5P2期间 中断申请标志位, 各个中断申请标志位 若查到某标志位被置位, 各个中断申请标志位,若查到某标志位被置位, 将启动中断机制。 将启动中断机制。
Tc=1/fosc
Ts=2Tc
Tm=12Tc=6Ts
中断涉及的几个环节 ①中断源 ②中断申请 ③开放中断 ④保护现场 ⑤中断服务 ⑥恢复现场 ⑦中断返回 前面提到的甲方) (前面提到的甲方) 甲方发出信号提出申请) (甲方发出信号提出申请) 乙方同意传送) (乙方同意传送) (安排好当前的工作) 安排好当前的工作) 响应甲方的要求) (响应甲方的要求) 完事后,回去……) (完事后,回去 ) 继续做打断前的工作) (继续做打断前的工作)
中断优先级处理原则
同时发生多个中断申请时 多个中断申请时: 对同时发生多个中断申请时: 不同优先级的中断同时申请(很难遇到) ☞不同优先级的中断同时申请(很难遇到) ——先高后低 先高后低 相同优先级的中断同时申请(很难遇到) ☞相同优先级的中断同时申请(很难遇到) ——按序执行 按序执行 ☞正处理低优先级中断又接到高级别中断 ——高打断低 高打断低 ☞正处理高优先级中断又接到低级别中断 ——高不理低 高不理低
中断优先级控制寄存器IP 中断优先级控制寄存器IP
(0B8H)
IP
PS
PT1
PX1 PT0
PX0
PX0/PX1:INT0/1优先级控制位: PX0/PX1:INT0/1优先级控制位: 优先级控制位 时属低优先级; 时属高优先级。 =0 时属低优先级; =1 时属高优先级。 PT0/PT1:T0/1中断优先级控制位 中断优先级控制位: PT0/PT1:T0/1中断优先级控制位: 时属低优先级; 时属高优先级。 =0 时属低优先级; =1 时属高优先级。 PS1:串行口中断优先级控制位: PS1:串行口中断优先级控制位: 时属低优先级; 时属高优先级。 =0 时属低优先级; =1 时属高优先级。
中断嵌套: 中断嵌套:在某一瞬间,CPU因响应某一中断源的 中断请求而正在执行它的中断服务程序时,若又 有一级别高的中断源向CPU发出中断请求,且CPU 的中断是开放的,CPU可以把正在执行的中断服务 程序暂停下来,转而响应和处理优先权更高的中 断源的中断请求,等处理完后再转回来,继续执 行原来的中断服务程序,这就是中断嵌套。
ORG 0000H LJMP START ; 转入主程序,START为主程序地址标号 ORG 0003H LJMP INT0 ; 转外中断中断服务程序 ORG 000BH LJMP T0 ; 转定时器T0中断服务程序 ORG 0030H START: …… ; 主程序开始
外部中断(INT0,INT1)申请过程
中断的基本概念 中断的定义 是指CPU执行正常程序时, 是指CPU执行正常程序时,系统中出现 CPU执行正常程序时 特殊请求,CPU暂时中止当前的程序 暂时中止当前的程序, 特殊请求,CPU暂时中止当前的程序, 转去处理更紧急的事件( 转去处理更紧急的事件(执行中断服务 程序),处理完毕(中断服务完成) ),处理完毕 程序),处理完毕(中断服务完成)后, CPU自动返回原程序的过程 自动返回原程序的过程。 CPU自动返回原程序的过程。