第6章中断系统及定时器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 例1:若IE=85H,代表何含义?
EA 中断 总允许
×
ET2 定时器 T2
ES 串行口
ET1 定时器 T1
EX1 外部 中断1
ET0 Leabharlann Baidu时器 T0
EX0 外部 中断0
• 85H=10000101B • 所以:系统允许INT0、INT1中断,开CPU中断 • 例2:若系统使用INT0、定时器T0、T1、串行 口等中断,中断优先级为: INT0>串口>T0>T1,试简要写出程序结构。
;-------中断服务程序 --------------------INTN0: PUSH ACC ;保护现场 INC 30H ;中断次数加1 MOV A, 30H CPL A MOV P1,A ;点亮指示灯 POP ACC ;恢复现场 RETI ;中断返回 ;------------------------------------------DELAY:MOV R5,#04H ;延时子程序 DL1:MOV R6,#0 DL2: MOV R7,#0 DJNZ R7,$ DJNZ R6, DL2 DJNZ R5, DL1 RET
TI RI
3、中断响应
• • • • • • • (1)中断服务程序入口地址: 外部中断0 0003H 定时器/计数器0溢出 000BH 外部中断1 0013H 定时器/计数器1溢出 001BH 串行口 0023H 定时器/计数器2溢出 002BH
(2)中断响应过程
• 分中断请求、中断响应、中断处理、中 断返回四个阶段。
•
•
IT0和IT1为外中断INT0 和INT1中断触发方式选择, IT0、IT1=1,为边沿触发; IT、IT1=0为电平触发。
IE0、IE1为中断请求位。
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
T1 溢出 中断
T1 启动 停止
T0 溢出 中断
T0 启动 停止
INT1 中断 请求
INT1 INT0 INT0 触发 中断 触发 方式 请求 方式
中断响应时间:
• 在正常的情况下,从中断请求信号有效开始, 到中断得到响应,通常需要3~8个机器周期。
中断请求
中断响应
中断请求标志的撤除:
• CPU响应中断后,应撤除该中断请求标志,否 则会再次引起CPU中断。 • T0、T1、INT0、INT1的中断请求标志,CPU响 应中断后由硬件自动清除; • 串行口中断请求标志TI、RI,只能由软件清 除。 • 对电平触发的外部中断,CPU在响应中断时也 不会自动清除中断标志,因此,在CPU响应中 断后应立即撤除INT1或INT0的低电平信号。
• 例如: 某系统使用INT1(边沿触发方式)、T0、串行口 中断,试对中断系统初始化。 SETB EX1 ;允许INT1中断 SETB IT1 ; INT1边沿触发方式 SETB ET0 ;允许T0中断 SETB ES ; 允许串行口中断 SETB EA ; CPU开中断
或:MOV IE,#10010110B
;INT0中断服务程序 INTN0:… RETI ;T0中断服务程序 INTT0:… RETI ;T1中断服务程序 INTT1:… RETI ;串口中断服务程序 CHUAN:… RETI
……
例1:外部中断应用
• 使用外部中断0,以P1口的 8个LED灯显示外部中断次 数。每中断一次,LED指示 灯显示按照二进制加1。 • 同时,采用P3.4~P3.7控 制4个LED灯进行“跑马灯” 循环显示,来模拟CPU执行 主程序。 • 加深理解中断的含义。
• 中断请求、中断响应过程由硬件完成。 • 中断处理:中断服务程序。 • 中断返回是通过执行一条RETI中断返回指令, 使堆栈中被压入的断点地址送PC,从而返回 主程序的断点继续执行主程序。 • 另外RETI还有清除优先级状态触发器的作用, 因此不能以RET指令代替“RETI”指令。
中断嵌套
• MCS51单片机中断嵌套原则:
1.高优先级可中断低优先级的中断服务程序; 2.同等优先级的中断不能中断对方的中断服务程序; 3.多个中断同时到来,CPU响应高优先级中断请求。 • 中断优先级触发器: MCS51内部设置2个不可寻址的中断优先级触发器,用 来指示高、低级中断,同时阻止本级中断请求。 • 中断查询过程: CPU在每个M周期的S5P2状态采样中断标志,若有中断, 则在下一个M周期,进行中断优先级查询,若满足条件, 则下在一个M周期将则转入响应的中断服务程序。
ORG 0000H LJMP MAIN ORG 0003H ;中断入口 LJMP INTN0 ORG 0030H MAIN: MOV 30H, #00H ;计中断次 数,开始清零 SETB EX0 ;允许INT0中断 SETB IT0 ;边沿触发方式 SETB EA ;开中断 MOV P1,#0FFH ;P1口指示 灯初始状态 ;----------模拟主程序----------------LOOP1: MOV A, #0EFH LOOP: MOV P3,A LCALL DELAY ;延时0.25S RL A JB ACC.0, LOOP SJMP LOOP1
中断封锁条件:
• 若某个中断源处于被打开的状态,并满足中断响应的
③当前正在执行访问IE、IP或RETI指令。 • CPU响应中断后,硬件执行以下操作: ①置优先级激活触发器封锁同级或低级中断; ②保护断点:将PC内容压栈; ③清除中断请求标志:IE0,IE1,TF0,TF1之一; ④将中断服务程序入口地址PC。
EA=1,CPU开中断; EA=0, CPU关中断。
ET0:定时器T0中断允许位:ET0=1,允许T0中断;ET0=0,禁止中断。 EX0:外部中断0中断允许位:EX0=1,允许INT0中断;EX0= 0,禁止。
ES:
串行口中断允许位:
ES=1,允许串行口中断;ES=0,禁止。
(2)定时器控制寄存器(TCON)
第 6章
MCS-51单片机中断系统与 定时器
MCS-51单片机的硬件资源包括:
MCS-51单片机的并行口 MCS-51单片机的中断系统 MCS-51单片机的定时器/计数器 MCS-51单片机的串行接口
一、MCS-51的中断系统
• 1、中断系统简介
• (1)组成:
5/7个(52系列)中断源,2级中断优先级; 4个专用功能寄存器用于中断控制:IE、IP、TCON、SCON。
•
ORG 0000H ;程序开始 LJMP MAIN ORG 0003H ;INT0中断入口 LJMP INTN0 ORG 000BH ;T0中断入口 LJMP INTT0 ORG 001BH ;T1中断入口 LJMP INTT1 ORG 0023H LJMP CHUAN ;串口中断入口 ORG 0030H ;主程序 MAIN:SETB EX0 ;允许INT0中断 SETB ET0 ;允许T0中断 SETB ET1 ;允许T1中断 SETB ES ;允许串口中断 SETB PX0 ; INT0高级中断 SETB PS ;串口高级中断 SETB EA ;开中断
(3)中断优先级控制寄存器(IP)
• PX0=1,INT0为高级中断,PX0=0,则为低级中断
• • •
内部优先级查询次序: INT0---T0---INT1---T1---串口---T2 高 低
PT2 T2 PS 串口 PT1 T1 PX1 INT1 PT0 T0 PX0 INT0
(4)串行口控制寄存器 (SCON)
• (2)中断源:
外部中断: 外部中断0:/INT0 边沿触发 触发方式: 外部中断1:/INT1 电平触发 定时器/计数器溢出中断: 定时器/计数器0溢出中断:TF0 定时器/计数器1溢出中断:TF1 串行口中断: 串行口接收与发送中断:RI、TI(RI+TI作为一个中断源)
2、中断系统结构与中断控制
3.中断控制专用寄存器
• (1)中断控制寄存器IE:中断的允许和禁止 IE寄存器的各位对应相应的中断源,如果允许该中 断源中断则该位置1,禁止中断则该位0。
EA 中断 总允许
×
ET2
ES
ET1
EX1 外部 中断1
ET0 定时器 T0
EX0 外部 中断0
定时器 定时器 串行口 T2 T1
EA:中断总允许: