51中断系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 对于串行接收/发送中断请求和80C52中的定时 器/计数器T2的溢出和捕获中断请求,在CPU响应 中断后,必须在中断服务程序中应用软件清除RI、 TI、TF2和 EXF2这些中断标志,才能撤除中断。 (硬件置位,软件清除) 。 3.采用外加 硬件结合软件清除中断请求。 对于采用电平触发方式的外部中断请求,中断标 志的撤消是自动的,但中断请求信号的低电平可能 继续存在,在以后机器周期采样时又会把已清“0” 的IE0、IE1标志重新置“1”,再次申请中断。为保 证在CPU响应中断后、执行返回指令前,撤除中断 请求,必须考虑另外的措施,保证在中断响应后把 中断请求信号从低电平强制改变为高电平。可在系 统中加入电路。 (硬件置位,硬、软件结合清除)
三、中断响应
响应中断后,由硬件自动生成长调用指令 “LCALL”, 其格式为LCALL addr16,而addr16就 是各中断源的中断矢量地址
中断源 中断矢量地址
0003H 外部中断0(INT0) 定时器/计数器0(T0) 000BH 0013H 外部中断1(INT1) 定时器/计数器1(T1) 001BH
中断源
• • • • • • ⒈ 外部中断0 ⒉ 定时器T0中断 ⒊ 外部中断1 ⒋ 定时器T1中断 ⒌ 串行口中断 ⒍ 定时器T2中断
中断优先级
最高
最低
5-4 中断请求的撤除
CPU响应中断请求,转向中断服务程序执行, 在其执行中断返回指令(RETI)之前,中断 请求信号必须撤除,否则将会再一次引起中断 而出错。 中断请求撤除的方式有三种,即: 1. 由单片微机内部硬件自动复位。 对于定时器/计数器T0、T1 的溢出中断和采 用跳变触发方式的外部中断请求,在CPU响应 中断后,由内部硬件自动清除。(硬件置位, 硬件清除)
ANL P1,#0FEH ;Q置1(SD为直接置位端,低电平有 效) ORL P1,#01H ;SD无效 使P1.0输出一个负脉冲,其持续时间为二个机器周期,足 以使D触发器置位,撤除低电平中断请求。第二条指令是必要 的,否则D触发器的Q端始终输出“1”,无法再接受外部中断 请求。
5-5 中断响应过程
不同点 ⑴ 中断请求信号可以由外部设备发出,是 随机的,比如故障产生的中断请求,比如 按键中断等;子程序调用却是由软件编排 好的。 ⑵ 中断响应后由固定的矢量地址转入中断 服务程序,而子程序地址由软件设定。 ⑶ 中断响应是受控的,其响应时间会受一 些因素影响;子程序响应时间是固定的。
6.恢复现场:恢复被使用寄存器的原有内容。
7.开中断:允许接受其它中断请求信号。 8.中断返回:执行RETI指令,栈顶内容PC,程序跳转回断点 处。
5-2 MCS-51中断系统概述
IT0=0
IT0=1
IT1=0
IT1=1
一.中断源 • 8051中有五个中断源;8052中增加了一个中断 源——定时器/计数器T2,即有六个中断源。 每一个中断源都能被程控为高优先级或低优先级。 8051五个中断源中包括二个外部中断源和三个内 部中断源。 • 二个外部中断源INT0(P3.2)和INT1(P3.3), 外部设备的中断请求信号、掉电等故障信号都可 以从INT0或INT1引脚输入。 • 三个内部中断源为定时器/计数器T0和T1的定 时/计数谥出中断源和串行口发送或接收中断源。
程序
INT NMI 微型机
中断服务 中断服务 程序1 程序2
三.中断源(Interrupt sources) 能发出中断请求信号的各种事件。如I/O设备、定 时时钟、系统故障、软件设定等。
四、中断的主要功能 ⒈ 实现CPU与外部设备的速度配合 ⒉ 实现实时控制 ⒊ 实现故障的及时发现及处理 ⒋ 实现人机联系
中断执行与子程序调用的比较
相似点: ⑴ 都是中断当前正在执行的程序,转去执行子程 序或中断服务程序。 ⑵ 都是由硬件自动地把断点地址压入堆栈,然后 通过软件完成现场保护。 ⑶ 执行完子程序或中断服务程序后,都要通过软 件完成现场恢复,并通过执行返回指令,重新返回到 断点处,继续往下执行程序。 ⑷ 二者都可以实现嵌套,如中断嵌套和子程序嵌 套。
• IE寄存器中各位设置:为0时,禁止中断;为 1时,允许中断。 • 系统复位后IE寄存器中各位均为0,即此时禁止所有中断。 • 与中断有关的控制位共6位,即: • ⒈ EX0(IE.0)——外部中断0中断允许位。 • ⒉ ET0(IE.1)——定时器/计数器T0中断允许位。 • ⒊ EX1(IE.2)——外部中断1中断允许位。 • ⒋ ET1(IE.3)一—定时器/计数器T1中断允许位。 • ⒌ ES(IE.4)——串行口中断允许位。 • ⒍ EA(IE.7)——CPU中断允许位。当EA=1,允许所有 中断开放,总允许后,各中断的允许或禁止由各中断源的中断允 许控制位进行设置;当EA=0时,屏蔽所有中断。
三、SCON寄存器(Serial Control)
低二位锁存接收中断源RI和发送中断源TI。 TI(SCON.1):串行口发送中断源。 发送完一帧,由硬件置位。响应中断后,必须用软 件清 0。 RI(SCON.0):串行口接收中断源。 接收完一帧,由硬件置位。响应中断后,必须用软 件清0。
四、中断允许控制(IE:Interruption Enable)
中断响应的条件
中断响应是有条件的,在接受中断申请时,如遇下 列情况之一时,硬件生成的长调用指令“LCALL” 将被封锁: ⑴ CPU正在执行同级或高一级的中断服务程序中。 因为当一个中断被响应时,其对应的中断优先级触 发器被置“1”,封锁了同级和低级中断; ⑵ 查询中断请求的机器周期不是执行当前指令的 最后一个周期。目的在于使当前指令执行完毕后, 才能进行中断响应,以确保当前指令的完整执行; ⑶ 当前正在执行RETI指令或执行对IE、IP的读/ 写操作指令。80C51中断系统的特性规定,在执行完 这些指令之后,必须再继续执行一条指令,然后才 能响应中断。
串行口(RI、TI) 定时器/计数器2
0023H 002BH
来自百度文库
中断响应过程描述
• 先将程序计数器PC的内容压入堆栈进行保护,先 低位地址,后高位地址,同时堆栈指针SP加2。 • 将对应中断源的中断矢量地址装入程序计数器PC, 去执行中断服务程序。由于各中断矢量区仅8个字节, 通常是在中断矢量区中安排一条无条件转移指令,使 程序执行转向在其它地址中存放的中断服务程序。 • 中断服务程序由中断矢量地址开始执行,直至遇到 RETI指令为止。 • 执行中断返回指令RETI,一是撤销中断申请,弹 出断点地址进入PC,先弹出高位地址,后弹出低位 地址,同时堆栈指针SP减2,恢复原程序的断点地址 执行;二是恢复中断触发器原先状态。
5-3
中断系统控制
D7 TF1 8FH 8EH D6 D5 TF0 8DH 8CH D4 D3 IE1 8BH D2 IT1 8AH D1 IE0 89H TI 99H ET0 A9H PT0 B9H D0 IT0 88H RI 98H EX0 A8H PX0 B8H
一.中断控制寄存器
¼ ´ Æ Ã ³ Ä æ ÷û Æ ¶ Ê Æ ¿ Ö ¨±÷Ø Æ ¼ ´ Æ Ä æ ÷ ´ Ð ¿ ¿ Ö ® Ú Ø Æ ¼ ´ Æ Ä æ ÷ Ö ¶ Ô Ð Ð Ï Ê í ¼ ´ Æ Ä æ ÷ Ö ¶ Ó Ï ¼ Ð Ï Å È ¶ ¼ ´ Æ Ä æ ÷ TCON(88H)
过程:中断采样 一、中断采样 中断查询 中断响应
中断采样是针对外部中断请求信号进行的,而内部中断请 求都发生在芯片内部,可以直接置位TCON或SCON中的 中断请求标志。在每个机器周期的S5P2(笫五状态的第二 节拍)期间,各中断标志采样相应的中断源,并置入相应 标志。
二、中断查询
若查询到某中断标志为1,则按优先级的高低进行 处理,即响应中断。 80C51的中断请求都汇集在TCON和SCON二个特殊 功能寄存器中。而CPU则在下一机器周期的S6期间按优 先级的顺序查询各中断标志。先查询高级中断,再查询 低级中断。同级中断按内部中断优先级序列查询。如果 查询到有中断标志位为“1” ,则表明有中断请求发生, 接着从相邻的下一个机器周期的S1状态开始进行中断响 应。 由于中断请求是随机发生的,CPU无法预先得知, 因此中断查询要在指令执行的每个机器周期中不停地重 复执行。
5-1-2 中断处理过程
一.中断响应条件 1.有中断请求信号 2. 系统处于开中断状态 二.中断响应过程 1.关中断:屏蔽其它中断请求信号。 2.保护断点:将断点地址压入堆栈保存,即当前PC值入栈。 3.寻找中断源:中断服务程序入口PC,转入中断服务。 4.保护现场:将中断服务程序使用的所有寄存器内容入栈。 5.中断处理:执行中断源所要求的程序段。
5-1-1 中断概念
某人看书 电话铃响 暂停看书 执行主程序 中断信号INT=0 日常事务 中断请求 保护断点
暂停执行主程序 中断响应
书中作记号 当前PC入栈
电话谈话
继续看书
执行I/O程序
返回主程序
中断服务
中断返回
一.两种中断
1.可屏蔽中断(maskable) 可程控“开中断/关中断”。软件 设置允许/禁止CPU响应中断。 2.非屏蔽中断(Nonmaskable) 不可程控“关中断”。有中断请 求信号,CPU必须响应。 日常事务 二.中断优先权 1.当同时有多个中断请求 信号,先响应优先级别高的 中断请求。 2.高优先级中断请求信号 可中断低优先级中断服务。
• TF1(TCON.7)—T1计数溢出,由硬件置位,响应中断时 由硬件复位。不用中断时用软件清0。 • TF0(TCON.5)—T0计数溢出,由硬件置位,响应中断时 由硬件复位。不用中断时用软件清0。 • IE1(TCON.3)—IE1=1时,外部中断1向CPU申请中断。 • IE0(TCON.l)—IE0=1时,外部中断0向CPU申请中断。 • IT1(TCON.2)、IT0(TCON.0)分别为T0、T1的中断 申请触发方式控制位。 IT0、IT1=0:外部低电平触发;IT0、IT1=1:外部下降沿 触发。
第5章
8051中断系统 (Interrupt system)
5-1 中断技术概述 5-2 MCS-51中断系统概述 5-3 中断系统控制 5-4 中断请求的撤除 5-5 中断响应过程 5-6 中断系统应用举例
5-1
中断技术概述
日 常 事 务 程 序 中 断 服 务 程 序
中断系统是计算机的 重要组成部分之一。
五、中断优先级寄存器IP(Interrupt Priority)
在80C51中有高、低两个中断优先级(Priority level) ,通过中断优先级寄存器IP来设定。 IP寄存器中各位设置: 为0时,为低中断优先级;为1时,设为高中断优先 级。 系统复位后IP寄存器中各位均为0,即此时全部设定为 低中断优先级。
中断优先级说明
• 中断优先级控制,除了中断优先级控制寄存器之外,还有二 个不可寻址的优先级状态触发器,其中一个用于指示某一高 优先级中断正在进行服务,而屏蔽其它高优先级中断;另一 个用于指示某一低优先级中断正在进行服务,从而屏蔽其它 低优先级中断,但不能屏蔽高优先级中断。 • 在中断执行过程中,高中断优先级可以中断低中断优先级 的中断过程。但是若在中断服务程序中,关掉所有中断 (CLR EA)或关掉部分中断时除外。 • 当CPU同时接收到二个不同优先级的中断请求时,先响应高 优先级的中断,如果CPU同时接收到的是几个同一优先级的 中断请求时,则由内部的硬件查询序列确定它们的优先服务 次序,即在同一优先级内有一个由内部查询序列确定的笫二 个优先级结构。其排列如下:
» Ø · Î µ Ö
SCON(98H)
» Ø · Î µ Ö
IE(A8H)
» Ø · Î µ Ö
9FH EA AFH
9EH
9DH
9CH ES ACH PS BCH
9BH ET1 ABH PT1 BBH
9AH EX1 AAH PX1 BAH
IP(B8H)
» Ø · Î µ Ö
二、TCON寄存器(Timer Control)