第五部分MCS51中断与定时系统教学课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MAIN: CLR IT0 SETB EA SETB EX0 …
EXINT0: PUSH PSW PUSH ACC
… POP ACC POP PSW RETI
;设为电平触发方式 ;开总中断 ;开外中断0 ; 开始编写主程序
;保护现场
中断初始化
; 开始编写中断服务程序
;中断返回
存在下列情况之一,中断响应无法进行:
AJMP EXRET XI2 :… …
AJMP EXRET XI3 : … …
AJMP EXRET XI4 :… …
AJMP EXRET
;中断服务程序 ;P1.0为1,转XI1中断服务程序 ;P1.1为1,转XI2中断服务程序 ;P1.2为1,转XI3中断服务程序 ;P1.3为1,转XI4中断服务程序
中断嵌套
主程序
中断响应
执行主程序
中断请求
中断服 务程序
中断服 务程序
继续 执行主程序
中断返回
中断优先级
二、中断源 引起CPU中断的根源,称为中断源,中断源向CPU提 出中断请求。
外部中断0( INT0)—— 中断请求信号由P3.2提供; 外部中断1 (INT1)—— 中断请求信号由P3.3提供; 定时器中断(T0)—— 由片内定时/计数器T0提供; 定时器中断(T1)—— 由片内定时/计数器T1提供; 串行口中断(RI、TI)—— 由片内串行口提供。
4、中断优先级控制寄存器 (IP)
IP D7 D6 D5 D4 D3 D2 D1 D0 (B8H) / / / PS PT1 PX1 PT0 PX0
四、中断响应过程 1、中断请求
T0溢出 T1溢出 MOV SBUF,A
MOV A, SBUF
2、中断查询 中断标志位: IE1、IE0、 TF1、TF0、 RI 、TI
;转外部中断0服务程序入口 ;转外部中断1服务程序入口 ;中断初始化
;等待中断 ;XI0中断服务程序
EXINT1:PUSH PSW
PUSH ACC JB P1.0,XI1 JB P1.1, XI2 JB P1.2, XI3 JB P1.3, XI4
EXRET:POP ACC
POP PSW
RETI XI1 :… …
每个中断程序只有8个字节单元, 不够存放实际的中断服务程序, 故各中断程序的入口地址处通 常也安排一条跳转指令,指向 实际的中断服务程序处。
中断系统程序结构
ORG 0000H START: LJMP MAIN ;跳转到主程序
ORG 0003H ;外中断0入口地址 LJMP EXINTO ;转中断服务程序
TR1
TF0
溢出 TH0 TL0
TR0
8位 5位
D0
1 1
0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
0 M0 D0 0 M1
C/T GATE M0 M1 C/T GATE D7
M1M0=00 ● 当C/T=0,定时方式,开关接通机器周期,对单片
机内部的机器周期脉冲进行计数; ● 当C/T=1,计数方式,开关接通T0(P3.4),当计数 脉冲发生负跳变计数器加1。 ● 当GATE=0,或门输出1,只要TR0=1,开关接通, 计数开始,即启动定时器加1; ● 当GATE=1,或门输出0,要通过TR0=1、INT0=1 来共同启动定时器加1; 当TH0溢出时,置位TCON中的TF0标志,向CPU发 出中断请求。
三、中断控制 与中断控制有关的控制寄存器有四个:
1、定时控制寄存器 (TCON) 功能:
① 定时器/计数器控制功能; ② 中断控制功能。
TCON D7 D6 D5 D4 D3 D2 D1 D0 (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0(IT1) —— 外中断触发方式控制位 触发方式有两种: IT0(IT1)=0:电平方式,低电平有效; IT0(IT1)=1:脉冲方式,脉冲负跳变有效。 IE0 (IE1) —— 外中断请求标志位 当CPU采样到INT0(INT1)出现有效中断请求时,IE0 由硬件自动置位,向CPU发出中断请求。当CPU响应 中断请求,进入中断服务程序时自动复位。 TF0(TF1) —— 定时器溢出标志 当定时器T0(或T1)溢出时, TF0(TF1)由硬件置位, 向CPU发送中断请求。当CPU响应中断请求,进入中 断服务程序时,自动复位。
当加到全1时,再来一个脉冲就使计数器回零(溢出): ◆ 若定时器工作于定时模式,表示定时时间已到; ◆ 若定时器工作于计数模式,表示计数值已满。
此时,均可向CPU发出中断请求。
5.2.3 MCS-51单片机定时器控制与状态寄存器
1、工作方式寄存器 (TMOD) 字节地址为89H,不可以位寻址。
T0
定时器的实质是加1计数器(16位),计数脉冲有两个来 源:
1、内部时钟脉冲。计数规律是每隔一个机器周期定时 器T0 (T1) 寄存器加1。计数频率是振荡频率的1/12 ;
2、外部计数脉冲。从T0(P3.4) 或 T1(P3.5) 引脚输入 脉冲。当检测到输入电平由高跳变到低时,计数器加1。
采样(S5P2)、加1(S3P1)操作,发生在两个机器周期, 因此需要2个机器周期才能识别一个从1到0的跳变,故计 数脉冲的周期必须大于2个机器周期。
5.2.4 定时/计数器的工作方式
一、方式0
13 位的定时/计数方式。 以T0为例: 由TL0的低5位和TH0的8位组成。 当TL0低5位溢出(全1到全0)时,向TH0进位,而
TH0溢出时由硬件自动置标志位TF0=1,并请求中断。
T0 方式 0 逻辑结构图
TCON
TF1 D7
申请 中断
;XI1中断服务程序 ;XI2中断服务程序 ;XI3中断服务程序 ;XI4中断服务程序
5.2 定时器中断
5.2.1 定时方法概述
5.2.2 MCS-51单片机的定时器功能
51单片机 内部有两个可编程的定时器/计数器,即定 时器 T0 和 定时器T1。
注意:全称是定时器/计数器,简写为定时器。 T0、T1均既有定时功能又有计数功能。 T0、T1是16位特殊功能寄存器,由高8位和低8位两 个寄存器组成,地址为: T0 (TH0、TL0):8CH、8AH T1 (TH1、TL1):8DH、8BH
3T: 中断请求标志查询: 1T 产生、执行LCALL: 2T
8T: 执行RET/RE令: 4T
执行LCALL指令:
2T
五、中断请求的撤销
中断响应后,TCON或SCON中的中断请求标志应及时 清除。否则就意味着中断请求仍然存在。
1、定时器中断硬件撤除 中断响应后硬件自动清 TF0(TF1) 标志位。
0000H LJMP MAIN
0003H INT0
000AH
000BH T0
0012H
LJMP EXINT0 LJMP TIMER0
0013 INT1 00H1AH
LJMP EXINT1
001BH T1 0022H LJMP TIMER1
0023H
串行口
LJMP SERIES
002AH
...
51单片机复位后PC=0000H, 系统从0000H地址开始执行程 序。通常在此单元处安排一条 跳转指令,避开系统分配的中 断服务程序地址段。
IE D7 D6 D5 D4 D3 D2 D1 D0 (A8H) EA / / ES ET1 EX1 ET0 EX0
ET0(ET1) ——定时器中断允许控制位 ET0(ET1) =0,禁止定时器中断; ET0(ET1) =1,允许定时器中断。 ES —— 串行中断允许控制位 ES=0,禁止串行中断; ES=1 ,允许串行中断。
MCS-51中断系统的逻辑结构
TCON
INT0 IT0 1
IE0
01
T0
TF0
INT1 IT1 1 01
IE1
T1
TF1
IE
EX0 1 EA 1 ET0 1 EX1 1 ET1 1
RXD
RI
ES 1
TXD
TI ≥1
SCON
IP
PX0 1
0
PT0 1
0
PX1 1
0
PT1 1
0
PS 1
0
硬件查询
自 然 优 先 级
CPU正在处于一个同级或高级的中断服务程序中; 查询中断请求的机器周期不是当前执行指令的最后一 个机器周期,即需将当前指令执行完才能响应中断; 当前指令是返回指令(RET、RETI)或访问IE、IP指令, 即只有在这些指令后面至少再执行一条指令时才能接 受中断请求。
中断响应时间:
正常中断时间为3 ~ 8个机器周期,如有同级或高级 中断服务,则延长响应时间。
T1
M1、M2:工作方式选择位
C/ T:定时或计数模式选择 GATE :门控位 GATE=0,仅通过TRx位启动定时器。 GATE=1,INTx端口高电平,再通过TRx启动定时器。
2、控制寄存器 (TCON) 启停与中断控制寄存器
TCON D7 D6 D5 D4 D3 D2 D1 D0 (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
XI2
+
XI3
XI4
ORG 0000H LJMP MAIN ORG 0003H LJMP EXINT0 ORG 0013H LJMP EXINT1 MAIN: SETB IT0 SETB IT1
SETB EX0 SETB EX1 SETB EA
…… SJIMP $ EXINT0 : PUSH PSW PUSH ACC …… POP ACC POP PSW RETI
方式0只用到13位,最大计数脉冲数为 Nmax=213=8192 若为定时模式,使用6MHz晶振, 则最大定时时间为Tmax= 213×2us=16.384ms。
3、中断允许控制寄存器 (IE)
IE D7 D6 D5 D4 D3 D2 D1 D0 (A8H) EA / / ES ET1 EX1 ET0 EX0
EA ——中断允许总控制位 EA=0,中断总禁止; EA=1,中断总允许。
EX0(EX1) ——外部中断允许控制位 EX0(EX1)=0,禁止外中断; EX0(EX1)=1,允许外中断。
CPU暂时停止当前的工作,转去处理事件B;——中断响应, 并执行中断服务程序
待CPU将事件B处理完毕后,再回到原来事件A被中断的地方 继续处理事件A;——中断返回
中断嵌套
若单片机正在处理一个中断程序,此时,又有另一个中 断现象发生,单片机将会停止当前的中断程序,而转去 执行新的中断程序,新中断程序处理完毕后再回到刚才 停止的中断程序处继续执行,执行完这个中断后再返回 主程序继续执行。
中断源
高 级
中断入口
自 然 优 先 级
中断源
低 级
中断入口
3、中断响应
LCALL addr16 (指向相应的中断入口地址) 保存断点地址,将当前PC值压栈; 中断程序的入口地址 → PC
中断源
INT0 T0
INT1 T1
串行口
中断入口地址 0003H 000BH 0013H 001BH 0023H
2、外部中断自动与强制撤除 中断响应后硬件自动清 IE0(IE1) 标志位。 脉冲请求方式,自动撤除; 电平请求方式,强制撤除。
3、串行中断软件撤除 标志位 TI、RI 不能通过硬件清零。只能在中断响应
后用软件清除。
例1:外中断源扩展 外中断源多于二个时,采用硬件申请,软件查询方法。
XI0
XI1
由软件置位或清零。 当TR0=1时启动, TR0=0时停止。 TR1:与TR0类似,控制T1 的启停。
TF1:与TF0类似,T1 中断请求标志位。
3、中断允许控制寄存器 (IE)
IE D7 D6 D5 D4 D3 D2 D1 D0 (A8H) EA / / ES ET1 EX1 ET0 EX0
2、串行口控制寄存器 (SCON)
SCON D7 D6 D5 D4 D3 D2 D1 D0 (98H) SM0 SM1 SM2 REN TB8 RB8 TI RI
TI ——串行口发送中断请求标志位。 当串行口发送完一帧数据后,硬件置位; 在转向中断服务程序后,用软件清零。 RI ——串行口接收中断请求标志位。 当串行口接收完一帧数据后,硬件置位; 在转向中断服务程序后,用软件清零。
第五章 MCS-51中断与定时系统
5.1 中断系统概述
一、中断概念
主任务
洗衣服 水开报警
继续 洗衣服
主程序
灌开水
执行主程序 中断请求
中断响应
执行中断 服务程序
继续
中断返回
执行主程序
主程序A
断点
响应 中断服务程序B
返回
……
RETI
中断是指CPU在处理某一事件A时,发生另一事件B,请求 CPU处理;——中断请求
相关文档
最新文档