单片微型计算机原理与接口技术第5章80C51单片微机的中断系统原理及应用课件

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

ORG AJMP ORG LJMP ORG MAIN: MOV MOV MOV SETB SETB SETB
0000H MAIN 001BH INT2 0030H TMOD,#60H TL1,#0FFH TH1,#0FFH EA ET1 TR1
;T1中断矢量作外部中断2
;设T1计数器方式2 ;置T1计数常数
中断服务子程序
PINT0:PUSH PSW
;保护现场
PUSH ACC JB P1.0, LOOP1 JB P1.l,LOOP2 JB P1.2,LOOP3 JB P1.3,LOOP4 INTFH: POP ACC
;转向中断服务程序1 ;转向中断服务程序2 ;转向中断服务程序3 ;转向中断服务程序4 ;恢复现场
5.3 中断的控制
中断系统控制寄存器包括:TCON、 SCON、 IE、IP
5.3.1中断标志
●定时器/计数器控制寄存器TCON(字节地址:88H)
TCON D7 D6 D5 D4 D3 D2 D1 D0
位名称 TF1
TF0
IE1 IT1 IE0 IT0
T1
T0
中断 INT1 中断 INT0
功能 中断 标志
◆3个内部中断源:T0、T1、和串行口。
1. 外部中断 ◆外部中断是从引脚INT0 和INT1上引入。
◆外部中断请求有两种信号触发方式:低电平、下跳沿 IT0=0 时, INT0低电平有效; IT0=1时, INT0下降沿有效。 IT1=0 时, INT1低电平有效; IT1=1时, INT1下降沿有效。 ⒉ 定时中断(T0、T1) 当定时器 / 计 数 器T0(T1) 发生计数溢出时 , 标志位 TF0 (TF1)置1, 可以向CPU申请中断。 ⒊ 串行中断 当串行口发送/接收完一帧串行数据时,产生一个中断请 求。RXD,TXD:串行中断。
中断返回RETI 。
END
主程序
执行主 程序 中断请求
断点
继续执行 主程序
中断响应
执行 中断 处理 程序
中断返回
返回
图5–2 80C51的中断系统结构示意图
返回
图5–4 中断响应过程的时序
图5–5 外部中断源的扩展电路
图5–6 外部中断源查询流程图
IE
D7 D6 D5 D4 D3 D2 D1 D0
位名称 EA — — ES ET1 EX1 ET0 EX0
中断源 总中 — — 串行口 T1 INT1 T0 INT0 断
5.3.3 中断优先级
●中断优先级寄存器IP:(字节地址:0B8H)
IP
D7 D6 D5 D4 D3 D2 D1 D0
位名称 — — — PS PT1 PX1 PET0 PX0
5.5 外部中断源的扩展
80C51只有两个外部中断请求输入端,当某个 系统需要多个外部中断源时,就需要对其进行扩展。
5.5.1 采用“OC门”经“线或”后实现 5.5.2 通过片内定时器/计数器来实现
5.5.1 采用“OC门”经“线或”后实现
图中4个中断源的优先级取决于查询的顺序(即软件流程)。
POP PSW
RETI
LOOP1:… AJMP INTFH
LOOP2:… AJMP INTFH
LOOP3:… AJMP INTFH
LOOP4:… AJMP INTFH
;中断服务程序1 ;中断服务程序2 ;中断服务程序3 ;中断服务程序4
5.5.2 通过片内定时器/计数器来实现
例. 把外部中断请求信号2连到T1引脚上,T1设为方式2,即8 位自动重装载方式,时间常数设为满刻度值FFH。
STEP键就执行一条指令,通过检查结果来检查每条 指令执行的正确与否。 典型方法是使用外部中断,并将其设为电平触发方式。 硬件上:把按键连到 INT0。
不按键时为低电平; 按一次键产生一个正脉冲。
外部中断0的中断服务程序,在中断服务程序的末尾为∶
JNB P3.2,$
;INT0 =0 ,未按键则等待
JB P3.2,$
;INT0=1 ,有按键则等待
RETI
;松开按键,中断返回
主程序执行时:若没有按键时,INT0=0 ,中断请求有效, 响应中断后执行中断服务程序。
中断服务子程序:在执行到JNB P3.2,$指令时等待。当 按下单步键并松开之后产生一个正脉冲,执行中断返回。
返回主程序:再执行一条指令后, 由于INT0已为低电平, 所以单片微机再次响应中断,并进入中断服务程序等待。
3.中断响应:由硬件自动产生一条LCALL指令,即: LCALL addr16 ;addr16:中断矢量地址
中断结束:中断服务程序由中断矢量地址开始执行, 直至遇到RETI为止
5.4.2 中断响应时间
响应时间--从查询中断请求标志位到转向中断服务入 口地址所需的机器周期数。 (1)最快响应时间----3个机器周期
5.2.2 中断矢量
◆矢量中断:就是中断服务程序入口地址。
◆矢量地址由硬件直接给出。
中断源
中断矢量地址
外部中断0(INT0) 0003H
定时器/计数器0(T0) 000BH
外部中断1(INT1) 0013H
定时器/计数器1(T1) 001BH
串行口(RI、TI)
0023H
定时器/计数器2
002BH
5.7 中断服务程序的设计
5个中断源,4个特殊功能寄存器TCON/SCON/IE/IP 主程序中对中断进行设置:
⑴中断入口地址(中断矢量) ⑵ 中断请求的允许与禁止。(IE) ⑶外中断触发方式。(TCON) ⑷优先级别。(IP) ⑸开中断/关中断。(IE) 中断服务程序:保护现场和恢复现场;对中断的控制;
中断源 — — — 串行口 T1 INT1 T0 INT0
★在同一优先级内有一个由内部查询序列确定的 笫二个优先级结构。其排列如下:
中断源
中断优先级
⒈ 外部中断0
最高
⒉ 定时器T0中断
⒊ 外部中断1
⒋ 定时器T1中断
⒌ 串行口中断
⒍ 定时器T2中断
最低(80C52)
5.3.4 外部中断触发方式
◆ IT1、IT0=0低电平触发 ◆ IT1、IT0=l下跳变触发:中断请求信号高、低 电平应至少各保持一个机器周期,才能确保CPU采 集到电平的跳变。
中断 标志
标志 触发 标志 触发
方式
方式
●串行口控制寄存器SCON: (字节地址:98H)
SCON D7 D6 D5 D4 D3 D2 D1
D0
位名称 SM0 SM1 SM2 REN TB8 RB8 TI
RI
功能

串行发送 串行接收 — — — — — 中断标志 中断标志
5.3.2 中断允许控制
●中断允许寄存器IE: (字节地址:0A8H)
5.2 80C51 的中断系统
80C51的中断系统包括: 中断源 中断允许寄存器IE 中断优先级寄存器IP 中断矢量等。
在80C51中,有两级中断优先级。图5–2
5.2.1 中断源
80C51有5个中断源,80C52有6个(增加一个定时器 /计数器T2)
◆2 个 外 部 中 断 源 INT0 和 INT1 : 外 部 设 备 的 中 断请求信号、掉电等故障信号都可以从INT0或INT1引 脚输入。
⒉ 单片微机的中断系统需要解决的问题 ⑴ CPU能及时响应中断(S5P2查询),处理完后能返回 ⑵多个中断源同时申请时,能实现中断优先级的控制 ⑶实现中断嵌套,并能逐级正确返回原断点处
5.1.2 中断的主要功能
⒈ 实现CPU与外部设备的速度配合 通过中断的方法来协调快速CPU与慢速外部设备之间 的工作。 ⒉ 实现实时控制 依靠中断技术能实现实时控制。 ⒊ 实现故障的及时发现及处理 中断技术使单片微机就能及时发现故障并自动处理 ⒋ 实现人机联系 如通过键盘向单片微机发出中断请求
;允许CPU中断 ;允许计数器1中断 ;启动计数
INT2: -----RETI
;外部中断2服务程序
5.6 80C51的单步操作
80C51中断结构有一个重要特性,即执行中断返回指 令RETI后,必须至少执行一条其它指令后,才能响应新的中 断。利用这一特性可以实现单步运行程序。 方法:设置一个单步键(STEP) ,用来产生脉冲,按一次
外部中断INT0、INT1电平触发方式,内部间
5.4.1中断的响应过程
如图5-4 中断采样→中断查询→中断响应 ⒈中断采样:在机器周期的S5P2采样外中断源并置标志
⒉中断查询:在机器周期的S6时按优先级的顺序查询各 中断标志。若有中断标志,则从下一个 机器周期的S1状态开始进行中断响应。
第五章 80C51单片微机的 中断系统原理及应用
● 中断系统概述 ● 80C51的中断系统 ● 中断的控制 ● 中断的响应过程和响应时间 ● 外部中断源的扩展 ● 80C51的单步操作 ● 中断服务程序的设计
5.1 中断系统概述
5.1.1单片微机的中断系统需要解决的问题
⒈ 中断系统的几个概念: ⑴ 中断 如图5-1所示。 ⑵ 中断源:能产生中断的外部和内部事件。 ⑶ 中断优先级 ⑷ 中断嵌套
5.3.5 中断请求的撤除
⑴硬件自动清除: T0、T1中断
INT0、INT1边沿触发方式中断
CPU响应中断后,自动清除中断标志TF0 TF1 IE0 IE1。
而自动撤除中断请求。
⑵软件清除:
串行口中断,在串行中断服务程序中用指令清除TI或 RI 中断标志,才能撤除中断(硬件置位,软件清除)。
⑶软硬结合的方法:
外部中断的电平触发最快,从查询中断请求信号 到中断服务程序需要3个机器周期:
1个周期(查询)+2个周期(长调用LCALL) (2)最长时间
若当前指令是RET、RETI或访问IP、IE指令,紧 接着下一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)+4 个周期乘除指令+2个周期长调用=8个周期。
相关文档
最新文档