单片机第3章第1部分.

上传人:我** 文档编号:117886780 上传时间:2019-12-11 格式:PPT 页数:29 大小:621KB
返回 下载 相关 举报
单片机第3章第1部分._第1页
第1页 / 共29页
单片机第3章第1部分._第2页
第2页 / 共29页
单片机第3章第1部分._第3页
第3页 / 共29页
单片机第3章第1部分._第4页
第4页 / 共29页
单片机第3章第1部分._第5页
第5页 / 共29页
点击查看更多>>
资源描述

《单片机第3章第1部分.》由会员分享,可在线阅读,更多相关《单片机第3章第1部分.(29页珍藏版)》请在金锄头文库上搜索。

1、 3.1 MCS-51中断概述 一、中断的概念 CPU在执行程序的过程中,由于某种外界的原因,必 须尽快终止CPU当前的程序执行,而去执行相应的处理 程序,待处理结束后,再回来继续执行开始被终止的程 序。这种程序在执行过程中由于外界的原因而被中间打 断的情况称为“中断”。 二、中断的作用 可以实现CPU与外部设备的并行工作,提高CPU利用效率 。 可以实现CPU对外部事件的实时处理,进行实时控制。 实现多项任务的实时切换。 三、MCS-51单片机的中断源 定时中断:由单片机的定时器/计数器的溢 出标志触发的中断,MCS-51单片机有T0和 T1两个定时中断。 串行口中断:为单片机的串行数据传输

2、设 置的中断,MCS-51单片机有1个串行中断 。 MCS-51单片机具有多中断控制 它由以下几部分组成: 外中断:由外部信号触发的中断,MCS-51 有2个中断(INT0)和(INT1)组成。 四、MCS-51中断系统内部结构示意图 五、中断控制 MCS-51单片机的中断控制主要是通过以 下几个寄存器的设置实现: IE(中断允许控制寄存器) IP(中断优先级控制寄存器) TCON(定时器控制寄存器) SCON(串行口控制寄存器) IE-中断允许控制寄存器 EX0ET0EX1ET1ESEA D0D1D2D3D4D5D6D7 EA:总中断允许控制位。EA = 1,开放所有中断,各 中断源的允许和

3、禁止可通过相应的中断允许位单独加 以控制;EA = 0,禁止所有中断。 ES:串行口中断允许位。ES = 1,允许串行口中断; ES = 0,禁止串行口中断。 ET1:定时器1中断允许位。ET1 = 1,允许定时器1中 断;ET1 = 0,禁止定时器1中断。 EX1:外部中断1中断允许位。EX1 = 1,允许外部中 断1中断;EX1 = 0,禁止外部中断1中断。 ET0:定时器0中断允许位。ET0 = 1,允许定时器0中 断;ET0 = 0,禁止定时器0中断。 EX0: 外部中断0中断允许位。EX0 = 1,允许外部中断 0中断;EX0 = 0,禁止外部中断0中断。 IP-中断优先级控制寄存器

4、 PX0PT0PX1PT1PS D0D1D2D3D4D5D6D7 PS:串行口中断优先控制位 PS = 1,设定串行口为高优先级中 断;PS = 0,设定串行口为低优先级中断。 PT1:定时器T1中断优先控制位 PT1 = 1,设定定时器T1中断为 高优先级中断;PT1 = 0,设定定时器T1中断为低优先级中断。 PX1:外部中断1中断优先控制位 PX1 = 1,设定外部中断1为高 优先级中断;PX1 = 0,设定外部中断1为低优先级中断。 PT0:定时器T0中断优先控制位 PT0 = 1,设定定时器T0中断为 高优先级中断;PT0 = 0,设定定时器T0中断为低优先级中断。 PX0:外部中断

5、0中断优先控制位 PX0 = 1,设定外部中断0为高 优先级中断;PX0 = 0,设定外部中断0为低优先级中断。 当系统复位后,所有中断源均设定为低优先级中断 。 MCS-51单片机的中断优先级控制原则 低优先级中断不可以打断高优先级中断;但高优 先级中断可以打断低优先级中断。 如果一个中断请求已经响应,则同级的其他中断 服务将被禁止。 当多个同级的中断请求同时出现时,则有以下一 个响应的顺序: 外部中断0 定时中断0 外部中断1 定时中断1 串行口中断 TCON-定时器/计数器控制寄存器 D7D6D5D4D3D2D1D0 TF1TR1TF0TR0IE1IT1IE0IT0 TF1:定时器1的溢

6、出中断标志。T1被启动计数后,从初值 做加1计数,计满溢出后由硬件置位TF1,同时向CPU发出 中断。 TF0:定时器0溢出中断标志。其操作功能同TF1。 IE1:外部中断1标志。IE1 = 1,外部中断1向CPU申请中 断。 IT1:外中断1触发方式控制位。当IT1 = 0时,外部中断1 控制为电平触发方式。当IT1 = 1时,外部中断1控制为电 平触发方式。 IE0:外部中断0中断标志。其操作功能与IE1相同。 IT0:外中断0触发方式控制位。其操作功能与IT1相同。 SCON-串行口控制寄存器 D7D6D5D4D3D2D1D0 SM0SM1SM2RENTB8RB8TIRI TI:串行发送

7、中断标志 CPU将数据写入发送缓冲器 SBUF时,就启动发送,每发送完一个串行帧,硬件将 使TI置位。 v 注意:CPU响应中断时并不清除TI,必须由软件清除。 RI:串行接收中断标志 在串行口允许接收时,每接收 完一个串行帧,硬件将使RI置位。 v 注意:CPU在响应中断时不会清除RI,必须由软件清除 六、中断处理过程 中断的处理包括以下几个过程: 中断请求 中断查询和响应 中断处理 中断返回 中断请求 MCS-51单片机的中断请求由硬件自动完成。 定时中断和串行中断在单片机内部自动完成。 外部中断的中断请求信号要由INT0(P3.2) 和INT1(P3.3)两个引脚由单片机外部提供。 中断

8、查询和响应 MCS-51单片机的中断查询:CPU在每个机器周期 测试TCON和SCON中各个标志位的状态。 MCS-51单片机的中断响应是CPU对中断源提出的 中断请求的接受。 v注意在下列条件下,单片机不能够响应中断: 当前CPU在处理比申请源级别高或同级别的中断; 当前正在执行的指令没有完成; 正在执行RETI指令或正在访问IE、IP寄存器。 中断响应过程流程图 中断的处理 中断的处理即为用户根据自己的需要编写 的中断服务程序,在编写时应该注意: 中断现场保护和恢复 中断的现场保护主要是在中断时刻单片机的 存储单元中的数据和状态的存储。中断的恢复 是恢复单片机在被中断前存储单元中的数据和

9、状态。 开中断和关中断 对于一个不允许在执行中断服务程序时被打 扰的重要中断,可以在进入中断时关闭中断系 统,在执行完后,再开放中断系统。 中断返回 中断返回是在中断服务程序的最后一句指 令“RETI”执行时进行的。它的主要功能是 :中断响应时压入堆栈的程序计数器“PC” 的值从堆栈中取出,重新赋予“PC”,使程 序重新执行被中断前的程序。 3.2 .5 MCS-51单片机的外中断 MCS-51单片机具有两个外中断源: INT0:外中断0 v 中断入口地址:0003H v 中断允许控制位:EX0 v 中断请求标志:IE0 v 中断触发方式选择位:IT0 v 优先级设置位:PX0 INT1:外中

10、断1 v 中断入口地址:0013H v 中断允许控制位:EX1 v 中断请求标志:IE1 v 中断触发方式选择位:IT1 v 优先级设置位:PX1 初始化时设置 初始化时设置 外中断的初始化 外中断的初始化内容 设定中断的优先级(在大部分情况下,可以使用 默认方式) 设定中断的触发方式 开中断允许 开总中断允许 方法1 CLR PX0 ;设定外中断0为低优先级 SETB IT0 ;设定外中断0为边沿触发方式 SETB EX0 ;开放外中断0允许 SETB EA ;开CPU中断允许 方法2 MOV IP, #00H ;设定外中断0为低优先级 MOV TCON,#01H ;设定外中断0为边沿触发方

11、 式 MOV IE, #81H ;开外中断0和CPU中断允许 外中断的初始化 外中断应用举例1 在如图所示的电路中,用P1口输出控制的8只发光二极管 ,实现8位二进制计数器,对INT0上出现的脉冲进行计数 。 脉冲产生电路 显示电路 在该电路中,有两个与非门构成硬件去抖动电 路,开关S每动作一次,在单片机的INT0引脚 上就会收到一个脉冲信号。 如果把外中断0设定为脉冲触发方式,则每当 S动作一次,则外中断触发一次 在外中断的中断服务程序中计数,并把计数的 结果从P1口输出。 题意分析 程序清单 ORG 0000H AJMP MAIN ;转主程序 ORG 0003H ;外中断入口地址 AJMP

12、 SER ;中断服务程序 MAIN:SETB IT0 ;设定外中断0为边沿触发 SETB EX0 ;开外中断0允许 SETB EA ;开CPU中断允许 CLR A ;计数单元清0 MOV P1,A ;清显示 HERE:SJMP $ ;等待中断 SER:INC A ;计数单元加1 MOV P1,A ;显示 RETI ;中断返回 END 中断程序的主 程序和中断服 务程序的布局 中断的 初始化 主 程 序 中 断 服 务 程 序 外中断应用举例2 在如图所示的电路中,P1口输出控制8只发光二极管呈现循环灯状态 ,当开关按下时,发光二极管全部熄灭一段时间,然后回到原来的 状态。 流程图 开始 设置堆

13、栈地址 设置中断方式 开外中断0 设置显示初值 输出显示 显示值移位 延时,保持 中断入口地址 保存中断时的 存储器单元内容 置P1口为00H 中断返回 延时,保持 恢复中断时存 储器单元内容 和P1口的状态 主程序:中断程序 : v一定要开 辟在用户 区00H- 7FH中 程序清单(主程序) ORG 0000H AJMP ST ORG 0003H AJMP SER ST:MOV SP,#40H MOV IE,#81H MOV IP,#01H MOV TCON,#00H MOV A,#01H ;ACC初始化 RES:MOV P1,A ;显示 RL A ;循环移位 LCALL DEL ;延时保持

14、 SJMP RES ;循环 中断的 初始化 中断程序的主 程序和中断服 务程序的布局 主程序 循环体 程序清单(中断服务程序) SER: PUSH ACC ;存当前的ACC值 MOV 30H,R1 ;存延时程序的计数值 MOV 31H,R2 MOV P1,#00H ;把二极管熄灭 MOV R3,#10 ;保持 LOOP:LCALL DEL DJNZ R3,LOOP MOV R1,30H ;取延时程序的计数值 MOV R2,31H POP ACC ;取当前的ACC值 MOV P1,ACC RETI ;中断返回 DEL:MOV R1,#123 ;延时程序 DEL1:MOV R2,#200 DEL2:DJNZ R2,DEL2 DJNZ

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

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

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