2019/12/23 单片机原理及其应用 CH551单片机的中断系统 ■中断的基本概念 第五章51单片机的中断系统 ■中断系统的设置 中断的应用 08-51中断系统 T/V 入口地址 响应中断 1.中新源 MCS-51单片机共有5个中断源, 中斯 ●外部中断源(2个】 外部中断0、1通过引脚INT0(P3.2)、NT1(P3.3)接受外 部中断请求信号,可选择电平触发或边沿触发(跳变触发)方 中斯返 式。 ●内部中断源(3个】 定泽赘器T0、1造出中断:串行口发送/接收中断(供用
2019/12/23 1 第五章 51单片机的中断系统 中断的基本概念 中断系统的设置 中断的应用 主 程 序 中 断 服 务 程 序 继 续 执 行 主 程 序 中断请求 响应中断 中断返回 断点地址 入口地址 1.中断源 MCS-51单片机共有5个中断源。 外部中断源(2个) 外部中断0、1通过引脚INT0(P3.2)、INT1(P3.3)接受外 部中断请求信号,可选择电平触发或边沿触发(跳变触发)方 式。 内部中断源(3个) 定时器/计数器T0、T1溢出中断;串行口发送/接收中断(共用 一个中断源)。 MCS-51中断系统 1 2 3 4
2019/12/23 2.中断允许控制 ■中断入口地址 ■中断允许控制寄存器E ●中断入口地址(中断矢量)是指中断服务程序的入口地址。 ●5个中断源的中断入口地址止: D7 D6 D5 D4 D3 D2 D1 DO EA ES ET1 EX1 ETO EX0 总允许 源允许 外第中0定时警T0外部中1定时播T1串行口 EA:CPU中断允许控制位.EA=L,开CPU中断。 0003H000BH0013H001BH0023H EX0、EX1=1时,允许外部中断0、1中断。 ET0、ET1=1时,允许T0、T1计数溢出中断. ES=1时,允许申行口发送/接收中断。 E可位寻址。复位后,E=00H 禁止所有中断源中新。 3.中断优先级管理 MCS-51中断系统的中断优先级 ■中新嵌套原则 ●中断优先级(权)就是指当有多个中断源同时申请 ●高优先级中断可以中断低优先级中断,反之不能: 中断时,CPU所采取的响应顺序的原则。 ●同级或低优先级的中断源不能中断正在执行的中断服务程序。 竿终蜂餐整共餐宝垫源为离优先级 ■中断优先级寄存器P D7 D6 D5 D4 D3 D2 D1 DO PS PT1 PX1 PTO PXO 1P可位寻址。复位后,IP=00H(所有中断源均为低优先级)。 执行主程市
2019/12/23 2 中断入口地址 中断入口地址(中断矢量)是指中断服务程序的入口地址。 5个中断源的中断入口地址: 外部中断0 定时器T0 外部中断1 定时器T1 串行口 0003H 000BH 0013H 001BH 0023H 2.中断允许控制 中断允许控制寄存器IE EA:CPU中断允许控制位。EA=1,开CPU中断。 EX0、EX1=1时,允许外部中断0、1中断。 ET0、ET1=1时, 允许T0、T1计数溢出中断。 ES=1时,允许串行口发送/接收中断。 IE可位寻址。复位后,IE=00H 禁止所有中断源中断。 D7 D6 D5 D4 D3 D2 D1 D0 EA ES ET1 EX1 ET0 EX0 总允许 源允许 3. 中断优先级管理 MCS-51中断系统的中断优先级 中断优先级(权)就是指当有多个中断源同时申请 中断时,CPU所采取的响应顺序的原则。 MCS-51单片机中断系统允许软件设置每个中断源为高优先级 中断或低优先级中断,并可实现两级中断嵌套。 中断嵌套原则 高优先级中断可以中断低优先级中断,反之不能; 同级或低优先级的中断源不能中断正在执行的中断服务程序。 中断优先级寄存器IP IP可位寻址。复位后,IP=00H(所有中断源均为低优先级)。 D7 D6 D5 D4 D3 D2 D1 D0 PS PT1 PX1 PT0 PX0 5 6 7 8
2019/12/23 ■中断请求标志 ■自然优先级 ●定时器控制寄存器TCON中的中断请求标志 若同一优先级中断源有多个同时申请中断,则CPU按自然 优先级原则确定响应颜序。 D7 D6 D5 D4 D3 D2 D1 DO TF1TFOIE1 IT1 IEOITO 外部中断和 高 1T0、T1:外年中前和、1电平触度方式流醉位。“0”能电平有藏: 定时器T0 “1”下降沿有。 外部中断1 自然优 IE0、1E1:外部中斯0、1中晰请求兼态。里位时有中前请求,中晰响 应后向动清草。 定时婆T1 TF0、下:克时幕/计款幕T0、T1计款道曲中断诗求#态。直位时有中 串行口 听请求,中新响应后前剪清年, ·T00酬可位子址。复位后,T0O种00H, 10 4.中畜系统的控制 ■中断系统的设置 ●串行口控制寄存器SCON中的中断请求标志 对4个与中断有关的特殊功能寄存器:TCON、SCON、IE和 D7 D6 D5 D4 D3 D2 D1 DO P中的相关位进行管理和设置。这4个SFR均可位寻址】 n刚 例:系统有两个中断源,分别为外部中断0和串口,要求串口中 断优先,编写初始化程序 T1/瓜:◆行口发避/楼妆中嘶清求标态。事行发进/楼收完一 ·MOV SP,#60H 情后向动亚位,背求中断。需要再次夏是/楼妆时,应道过指伞 ·SETB EA 清学, ·SETB EXO ·300W可位号装,是位岳,80000州. ·SETB ES ·SETB PS 11
2019/12/23 3 自然优先级 若同一优先级中断源有多个同时申请中断,则CPU按自然 优先级原则确定响应顺序。 外部中断0 高 定时器T0 外部中断1 定时器T1 串行口 低 自 然 优 先 级 中断请求标志 定时器控制寄存器TCON中的中断请求标志 IT0、IT1:外部中断0、1电平触发方式选择位。“0”低电平有效; “1”下降沿有效。 IE0、IE1:外部中断0、1中断请求标志。置位时有中断请求,中断响 应后自动清零。 TF0、TF1:定时器/计数器T0、T1计数溢出中断请求标志。置位时有中 断请求,中断响应后自动清零。 TCON可位寻址。复位后,TCON=00H。 D7 D6 D5 D4 D3 D2 D1 D0 TF1 TF0 IE1 IT1 IE0 IT0 串行口控制寄存器SCON中的中断请求标志 TI/RI:串行口发送/接收中断请求标志。串行发送/接收完一 帧后自动置位,请求中断。需要再次发送/接收时,应通过指令 清零。 SCON可位寻址。复位后,SCON=00H。 D7 D6 D5 D4 D3 D2 D1 D0 TI RI 4. 中断系统的控制 中断系统的设置 对4个与中断有关的特殊功能寄存器:TCON、SCON、IE和 IP中的相关位进行管理和设置。这4个SFR均可位寻址。 例:系统有两个中断源,分别为外部中断0和串口,要求串口中 断优先,编写初始化程序: • MOV SP, #60H • SETB EA • SETB EX0 • SETB ES • SETB PS 9 10 11 12
2019/12/23 中断处理过程 ■中断处理过程 大致包含中断请求、中断响应、中断服务、中断返回四个 ■中断请求标志的撒除 阶段。 中断响应后 ■中断响应条件 (1】外部中断、定时器中断请求标志由硬件自动撒除: ●允许中断: ●CPU此时没有响应同级或更高级的中断: (2】串行口中断请求标志(T、R)必须由软件清0. ●当前正处于所执行指令的最后一个机器周期: ●正在执行的指令不是RET或访问IE、P的指令。 13 14 中斷系统的应用 中断系统的应用 2.中斯系统应用要解决的问题 1.响应中新时单片机自动完成的操作 ■电路连接 外部中断请求信号电平及持续时间应符合要求, ■置位中断优先级触发器,关闭同级和低级中断: 应用程序设计 ■跳转到中断程序入口地址,当前断点地址入栈: ·主程序部分【中断系统初始化】 ④设置堆栈指针SP: 执行中断服务程序 @若为外部中断,定义触发方式: @根据需要给P赋值,定义中断优先级: ④开放中断。 16
2019/12/23 4 中断处理过程 中断处理过程 大致包含中断请求、中断响应、中断服务、中断返回四个 阶段。 中断响应条件 允许中断; CPU此时没有响应同级或更高级的中断; 当前正处于所执行指令的最后一个机器周期; 正在执行的指令不是RETI或访问IE、IP的指令。 中断请求标志的撤除 中断响应后 (1)外部中断、定时器中断请求标志由硬件自动撤除; (2)串行口中断请求标志(TI、RI)必须由软件清0。 中断系统的应用 1.响应中断时单片机自动完成的操作 置位中断优先级触发器,关闭同级和低级中断; 跳转到中断程序入口地址,当前断点地址入栈; 执行中断服务程序 中断系统的应用 2.中断系统应用要解决的问题 电路连接 外部中断请求信号电平及持续时间应符合要求。 应用程序设计 主程序部分(中断系统初始化) 设置堆栈指针SP; 若为外部中断,定义触发方式; 根据需要给IP赋值,定义中断优先级; 开放中断。 13 14 15 16
2019/12/23 3.中断系统应用举例 ·中断服务程序部分 [例1:利用中断设计一个应用系统,实时计算P32引脚上出现的负跳 ①在相应的中新入口地址设置一条就转指今,转移到中断服务程 变脉冲的个数.从低到高位依次存入30H、31H. 序的实际入口处: ®根据需要保护现场: 分析:解此题利用中断系统,主程序对中断系统进行初始化以及实时 ©若为电平触发的外部中断,应有中断请求信号数除操作:若是 显示脉冲个数:利用P3.2引脚上出现的负院变信号作为中断请求信号 串行口中断,对T1.R清0: 每中断一次,将30H~31H单元内容加1. ®安排中斯服务所做的操作(中断服务程序的主体】: ⑤恢复现场: 中断返回(RET)· 11 18 ORG0000H:主程序入口 LMP MAIN;转实际主程序 ORG0200H:中断服务程序,从0003H转来 ORG0003H外部中断0中断入口地址 INTO:PUSH ACC JMP INT0:转中断服务程序 ORG 0030H PUSH PSW:保护现场 MAIN:MOV SP,#7OH;设置堆指针 INC 30H SETB IT0:置外部中断0为边沿触发方式 MOV A.30H SETB EA:CPLU开中斯 JNZ GOON SETB EXO0允许外部中斯0中断 INC 31H MOV30H,0;计数单元置初值 GOON :POP PSW MOV 31H.#0 POP ACC:恢复现场 SJMP S RET;中断返阿 20
2019/12/23 5 中断服务程序部分 在相应的中断入口地址设置一条跳转指令,转移到中断服务程 序的实际入口处; 根据需要保护现场; 若为电平触发的外部中断,应有中断请求信号撤除操作;若是 串行口中断,对TI、RI清0; 安排中断服务所做的操作(中断服务程序的主体); 恢复现场; 中断返回(RETI)。 3. 中断系统应用举例 [例1]:利用中断设计一个应用系统,实时计算P3.2引脚上出现的负跳 变脉冲的个数。从低到高位依次存入30H、31H。 分析:解此题利用中断系统,主程序对中断系统进行初始化以及实时 显示脉冲个数;利用P3.2引脚上出现的负跳变信号作为中断请求信号, 每中断一次,将30H~31H单元内容加1。 ORG 0000H ;主程序入口 LJMP MAIN ;转实际主程序 ORG 0003H ;外部中断0中断入口地址 LJMP INT0 ;转中断服务程序 ORG 0030H MAIN:MOV SP,#70H ;设置堆栈指针 SETB IT0 ;置外部中断0为边沿触发方式 SETB EA ;CPU开中断 SETB EX0 ;允许外部中断0中断 MOV 30H,#0 ;计数单元置初值 MOV 31H,#0 SJMP $ ORG 0200H;中断服务程序,从0003H转来 INT0:PUSH ACC PUSH PSW;保护现场 INC 30H MOV A,30H ; JNZ GOON INC 31H GOON :POP PSW POP ACC;恢复现场 RETI ;中断返回 17 18 19 20