单片机与嵌入式系统6

上传人:我** 文档编号:117887026 上传时间:2019-12-11 格式:PPT 页数:41 大小:1,010KB
返回 下载 相关 举报
单片机与嵌入式系统6_第1页
第1页 / 共41页
单片机与嵌入式系统6_第2页
第2页 / 共41页
单片机与嵌入式系统6_第3页
第3页 / 共41页
单片机与嵌入式系统6_第4页
第4页 / 共41页
单片机与嵌入式系统6_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《单片机与嵌入式系统6》由会员分享,可在线阅读,更多相关《单片机与嵌入式系统6(41页珍藏版)》请在金锄头文库上搜索。

1、1 第六章 MCS-51MCS-51系列单片机的中断系统系列单片机的中断系统 单片机在某一时刻只能处理一个任务,当 多个任务同时要求单片机处理时,这一要求应 该怎么实现呢? 通过中断可以实现多个任务的资源共享。 Date 2 6.1 中断的概念 6.2 MCS-51中断系统 6.3 中断程序设计 第六章 MCS-51MCS-51系列单片机的中断系统系列单片机的中断系统 Date 3 6.1 中断的概念 执行主程序 中断信号INTx=0 中断请求 暂停执行主程序 中断响应 当前PC值入栈 保护断点 执行中断程序 中断服务 返回主程序 中断返回 某人看书 电话铃响 暂停看书 书中作记号 电话通话

2、继续看书 日常事务程序 中断服务程序 Date 4 中断的过程 调用中断过程 中断嵌套过程 Date 5 6.2 MCS-51中断系统 一、中断源 二、中断的控制 三、中断入口地址与中断过程 Date 6 8051CPU有5个可屏蔽中断源(8052有6个)。分2个中断 优先等级,允许实现二级中断嵌套。 一、中断源 单片机 INT0或 外部输入中断源INT0(P3.2) INT1 或 外部输入中断源INT1(P3.3) T0 片内定时器T0的溢出 T1 片内定时器T1的溢出 串行口 片内串行口发送TI或接收RI中断源 Date 7 中断标志位 CPU 主 程 序 INT0 INT1 T0 T1

3、串口 IE0 TF0 IE1 TF1 TI RI 中断源中断标志位 每一个中断源都有相应的中断标志位; 中断源申请中断,相应中断标志位置1。 Date 8 中断允许 CPU 主 程 序 INT0 INT1 T0 T1 串口 IE0 TF0 IE1 TF1 TI RI 中断源中断标志位 每一个中断源还有相应的中断允许位,1允许,0禁止。 EA总中断允许位,1开放所有中断,0禁止所有中断; 中断允许 ES ET0 EX0 EX1 ET1 EA Date 9 中断系统结构图 Date 10 中断控制寄存器 二、中断的控制 Date 11 申请中断的所有标志位均分别设在特殊功能寄存器 TCON和SCO

4、N中。 (1)TCON中的标志位(计数/定时) 二、中断的控制 Date 12 TF1 TF0 IE1 IT1 IE0 IT0 TCON 88H 外部中断INT1中断标志位 (TCON.3) :INT1引脚有有效中 断时, IE1由硬件置1,中断响 应完成转向中断服务程序时, 由硬件清零。 外部中断INT1触发方式控制 位(TCON.2): IT1=0,电平触发方式 IT1=1, 下降沿触发方式 T1溢出中断标志(TCON.7): T1启动计数后,计满溢出由硬件置位 TF1=1,向CPU请求中断,此标志一直保持到 CPU响应中断后,才由硬件自动清0。也可用软 件查询该标志,并由软件清0。 Da

5、te 13 (2)SCON中的中断标志位(串口) 位地址9FH9EH9DH9CH9BH9AH99H98H 位符号TIRI TI串口发送中断请求标志位 当发送完一帧串行数据后,由硬件置“1”;在转向中断服 务程序后,用软件清“0”。 RI串行口接收中断请求标志位 当接收完一帧串行数据后,由硬件置“1”;在转向中断服 务程序后,用软件清“0”。 Date 14 (3)中断允许寄存器IE 8051系统复位后,IE中各位均被清0,即禁止所有中断。 例如,如果要打开定时/计数器0和串口的中断,程序可以写成 : SETB ET0 ;使ET0=1,允许T0中断 SETB ES ;使ES=1,允许串口中断 S

6、ETB EA ;使EA=1,总允许中断必须打开 位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H 位符号EA/ESET1EX1ET0EX0 * EA中断允许总控制位 * EX0和EX1外部中断允许控制位 * ET0和ET1定时器/计数器中断允许控制位 * ES串行中断允许控制位 Date 15 (4)中断源优先级设定寄存器IP 51单片机有两个中断优先级高级和低级 IP为中断优先级寄存器,用户可用软件设定 相应位为1,对应的中断源被设置为高优先级,为0,低优先级 系统复位时,全部清零,均为低优先级 Date 16 中断系统结构图 Date 17 MCS-51对同级中断源的

7、优先权规定 低优先级中断请求不能打断高优先级的中断服务;但高级可以打 断低级,实现中断嵌套。 如果一个中断请求已被响应,则同级的其它中断服务将被禁止。 即同级不能嵌套。 如果同级的多个中断同时出现,则按CPU查询次序确定哪个中断 请求被响应。其查询次序为:外部中断0定时中断0外部中断 1定时中断1串行中断。 Date 18 例如:某应用系统设置了三种中断源;串口、T1和 INT0,并使优先权顺序为T1最高,INT0次之,串口 最低。 对这样的系统,只要把优先级控制寄存器IP的PT1 位置“1”就可以实现了。 MOV IP,#08H ;00001000B,即PT1=1 在这种设置中,PT1=1,

8、使T1处在高级优先中,其它中断源 都处于低级优先权中,且因在同级中INT0最高。所以满足: PX1(T1) PX0(INT0) PS(串行口)的优先顺序。 Date 19 三、MCS-51中断入口地址与中断过程 外部中断0 入口地址 0003H LJMP ZD0 例: Date 20 程序存储器ROM 0000H:复位后,程序的入口地址(PC=0000H) 0023H:串口中断入口 0003H:INT0中断入口 000BH:T0中断入口 0013H:INT1入口 001BH:T1中断入口 002AH ORG 0000H LJMP MAIN ORG 0003H LJMP INTR MAIN: ;

9、主程序 SJMP $ INTR: ;中断服务程序 RETI END RETI指令功能:把断点地址 取出送回到PC;通知中断系 统已完成中断处理,将清除优 先级状态触发器。 决不能用RET替换! 中断向量表(指令型) Date 21 中断响应过程 1. 中断采样(仅对外部中断) 电平触发方式(IT0/IT10)的外部中断请求采样到低电 平时,IE0/IE1由硬件自动置“1”,表明有外中断请求发生。 脉冲触发式(IT0/IT11)的外中断请求采样到由高电平 变为低电平时,则IE0/IE1由硬件自动置“1”。 2. 中断查询 在每个机器周期都要查询TCON和SCON中各中断标志位和 允许位的状态,按

10、优先级顺序查询出该响应的标志位,硬件 产生一条调用指令,从下一机器周期开始进行中断响应。 保护断点地址;把程序转向中断服务程序的入口地址。 以上这些工作是硬件自动完成的! 3. 中断响应 Date 22 并不是所有的请求都被响应,当遇到下列情况之一时不响 应这些中断请求: (1)CPU正在处理一个同级或者高级的中断服务 (2)当前指令还没有执行完毕 (3)当前指令是RET、RETI或者是访问访问 IP、IE的指令, 执执行完这这些指令后,还还必须须再执执行一条指令,才响应应中断请请 求。 中断响应阻断 Date 23 中断源发中断请求 中断响应条件 是否满足? 相应中断入口地址送入PC, 转向

11、中断服务程序 N 中断是否受阻? Y Y 把PC断点地址压入堆栈 N 由硬件 自动完成 中断处理过程示意图 Date 24 关中断 保护现场 中断服务 开中断 关中断 恢复现场 开中断 中断返回 断点地址由堆栈弹入PC 保护和恢复现场之 后的开中断是为了 允许有更高级中断 打断此中断服务程 序。 中断服务程序 硬件自 动完成 保护现场和 恢复现场的 过程中不允 许中断,以 免现场遭到 破坏。 Date 25 CPU响应某中断请求后,在中断返回前,应该撤除该中断 请求,否则会引起另一次中断。 定时器0或1溢出:CPU在响应中断后,硬件清除有关的中断 请求标志TF0或TF1,即中断请求是自动撤除的

12、。 边沿激活的外部中断:CPU在响应中断后,也是用硬件自动 清除有关的中断请求标志IE0或IE1。 串行口中断:CPU响应中断后,没有用硬件清除TI、RI, 故这些中断不能自动撤除,而要软件清除相应的标志。 中断请求的撤除 Date 26 在电平触发方式中,CPU响应中断时不会自动清除IE1 或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚 上的低电平。 在硬件上,CPU对INT0和INT1引脚的信号不能控制, 所以要通过硬件额外添加D触发器配合软件来解决。 一般不提倡外部中断源选用低电平触发方式。 电平激活的外部中断源中断标志的撤除 89C5189C51 直接置 位端 ORL

13、P1 ,#01H ; P1输出高电平 ANL P1 ,#0FEH ;P1 输出 低电平 Date 27 51单片机需要多个外部中断源时,如 何进行扩展? 一、利用用T0和T1外部计数脉冲扩展 以T0为例,将其设为计数器功能模式、方式2(自动 重复装载初值),赋初值为255,这样外部引脚T0(P3.4 )每送入一个脉冲,就使计数器产生一次溢出中断。 Date 28 二、利用并口扩展(类似于触键中断功能) 任一按键按下,都会通过或非门产生一个外部中断, 在中断服务子程序中进一步通过查询判断是哪一路中断, 查询顺序决定优先级。 Date 29 三、利用专用中断控制器8259扩展 Date 30 Da

14、te 31 6.3 中断程序设计 一、硬件电路 二、整个程序的设计功能 三、中断程序的任务 设计中断服务程序往往要考虑: (1)设置中断允许控制寄存器IE的相应标志位; (2)设置中断优先级寄存器IP的相应位,确定并分配所使 用 的中断源优先级; (3)若是外部中断源,还要设置中断请求的触发方式IT0或 IT1,以满足硬件电路提供的中断方式; (4)编写中断服务程序,处理中断要求。 Date 32 ORG 0000H ;上电或复位入口地址 LJMP TO_MAIN ;无条件转移到主程序 ORG 0003H ;外部中断0入口地址 LJMP TO_INT0 ;跳到外部中断0中断服务程序处 ORG 001BH ;定时/计数器1入口地址 LJMP TO_T1 ;跳到定时/计数器1的中断服务程序 处 ORG 0023H ;串口中断入口地址 LJMP TO_SBUF ;跳到串口中断服务程序处 例如,有外部中断0,、定时计数器1、串口三个中断源,要求 T1优先级最高,INT0优先级最低且为下降沿触发。程序结 构为: Date 33 ORG 0100H ;程序区 ;-外部中断0中断服务程序- TO_INT0: ;处理中断 RETI ;返回主程序 ;-定时/计数器1的中断服务程序-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号