授课日期 班次 授课时数 2
课题,任务十 单片机流水灯控制教学目的,掌握单片机中断系统中断源与中断请求标志熟悉单片机中断系统的结构以及中断系统的处理过程重点,单片机中断系统中断源与中断请求标志难点,单片机中断系统的结构教具,多媒体作业,5.15 5.16
自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程,一、复习提问单片机定时 /计数器控制和工作方式二、新授由任务十:单片机流水灯控制引入本次课内容
1,任务描述
2.硬件电路与工作原理
3.相关知识
1) MCS- 51中断系统的结构结合日常生活中的中断现象如接电话、客人来访等类似的情况,将人处理问题与单片机处理程序对比来讲解
2)中断源
3)中断的控制(方式字的设定、中断请求标志)
4)中断响应的条件
5 )中断处理过程
4.课堂小结课后小结:
5,2 任务十 单片机流水灯控制任务描述:,单片机上电,单灯按 1HZ频率循环,一旦按下 P3.2所接的按键,发光二极管按双灯循环,松开此键,单灯继续原来的循环
5,2,1 硬件电路与工作原理
5,2 任务十 单片机流水灯控制
5,2,2 控制程序
MO V A,#0F E H
开始初始化
Y
N
N
MO V P 1,A
延时 0.5 秒到?
R L A
开始
MO V A,#0F B H
Y
N
N
MO V P 1,A
延时 0.5 秒到?
R L A
按键松否?
N
Y
N
返回
5,2 任务十 单片机流水灯控制
5,2,3 源程序的编辑、编译、下载开始定时器重赋初值中断次数 - 1
返回
5,2 任务十 单片机流水灯控制
5,2,4 相关知识
中断的概念中断是指计算机在执行某一程序的过程中,由于计算机系统内,外的某种原因,而必须中止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程 。
采用了中断技术后的计算机,可以解决 CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力 。
5,2 任务十 单片机流水灯控制
5,2,4 相关知识
单片机如何中断原来的工作?
MCS-51的中断结构
5,2 任务十 单片机流水灯控制
5,2,4 相关知识
中断处理流程
(1) 在每条指令结束后,系统都自动检测中断请求信号,如果有中断请求,且 CPU处于开中断状态下,则响应中断 。
(2) 保护现场,在保护现场前,一般要关中断,以防止现场被破坏 。 保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈 。
(3) 中断服务,即为相应的中断源服务 。
(4) 恢复现场,用堆栈指令将保护在堆栈中的数据弹出来,在恢复现场前要关中断,以防止现场被破坏 。 在恢复现场后应及时开中断 。
(5) 返回,此时 CPU将推入到堆栈的断点地址弹回到程序计数器,从而使 CPU继续执行刚才被中断的程序 。
5,2 任务十 单片机流水灯控制
5,2,4 相关知识
中断源中断源是指在计算机系统中向 CPU发出中断请求的来源,中断可以人为设定,也可以是为响应突发性随机事件而设置 。 通常有 I/O设备,实时控制系统中的随机参数和信息故障源等 。 8051的中断源如下
5,2 任务十 单片机流水灯控制
5,2,4 相关知识
单片机如何中断原来的工作?
中断的控制
MCS - 51单片机有 5个 ( 8052有 6个 ) 中断源,为了使每个中断源都能独立地被允许或禁止,以便用户能灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器 。
只有该触发器无效,它所对应的中断请求信号才能进入 CPU,即此类型中断开放 。 否则,即使其对应的中断标志位置 1,CPU也不会响应中断,即此类型中断被屏蔽了 。 同时 CPU内还设置了一个中断允许触发器,它控制
CPU能否响应中断 。
5,2 任务十 单片机流水灯控制
5,2,4 相关知识
MCS-51的对中断的开放和屏蔽是由中断允许寄存器 IE控制来实现的,IE的结构格式如下
IE寄存器结构
IE D7 D6 D5 D4 D3 D2 D1 D0EA - - ES ET1 EX1 ET0 EX0
位地址 AFH
AC
H
AB
H
AA
H A9H A8H
5,2 任务十 单片机流水灯控制对 IE寄存器的各控制位进行介绍:
· EA:中断总控制位,EA=1,CPU开放中断。 EA=0,CPU禁止所有中断。
· ES:串行口中断控制位,ES=1允许串行口中断,ES=0,屏蔽串行口中断。
· ET1:定时 /计数器 T1中断控制位。 ET1=1,允许 T1中断,ET1=0,
禁止 T1中断。
· EX1:外中断 1中断控制位,EX1=1,允许外中断 1中断,EX1=0,
禁止外中断 1中断。
· ET0:定时 /计数器 T0中断控制位。 ET1=1,允许 T0中断,ET1=0,
禁止 T0中断。
· EX0:外中断 0中断控制位,EX1=1,允许外中断 0中断,EX1=0,
禁止外中断 0中断。
5,2 任务十 单片机流水灯控制
中断优先级
MCS-51有两个中断优先级,即高优先级和低优先级,每个中断源都可设置为高或低中断优先级。如果有一低优先级的中断正在执行,那么高优先级的中断出现中断请求时,CPU则会响应这个高有限级的中断,
也即高优先级的中断可以打断低优先级的中断。而若 CPU正在处理一个高优先级的中断,此时,就算是有低优先级的中断发出中断请求,CPU
也不会理会这个中断,而是继续执行正在执行的中断服务程序,一直到程序结束,执行最后一条返回指令,返回主程序然后再执行一条指令后才会响应新的中断请求为了实现上述功能,MCS-51的中断系统有两个不可寻址的优先级状态触发器,一个指出 CPU是否在执行高优先级中断服务程序,另一个指出 CPU是否正在执行低优先级的中断服务程序,这两个中断触发器的 1
状态分别屏蔽所有中断申请和同一级别的其他中断申请。
5,2 任务十 单片机流水灯控制
MCS-51还有一个申请优先级寄存 IP,IP的格式如下,字节地址是 B8H。
IP中断控制寄存器结构
IP D7 D6 D5 D4 D3 D2 D1 D0- - - PS PT1 Px1 PT0 PX0
位地址 BCH BBH BAH B9H B8H
· PS:串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,PS=0,串行口定义为低优先级中断。
· PT1:定时器 1优先级控制位。 PT1=1,声明定时器 1为高优先级中断,PT1=0定义定时器 1为低优先级中断。
· PX1:外中断 1优先级控制位。 PT1=1,声明外中断 1为高优先级中断,PX1=0定义外中断 1为低优先级中断。
· PT0:定时器 0优先级控制位。 PT1=1,声明定时器 0为高优先级中断,PT1=0定义定时器 0为低优先级中断。
· PX0:外中断 0优先级控制位。 PT1=1,声明外中断 0为高优先级中断,PX1=0定义外中断 0为低优先级中断。
5,2 任务十 单片机流水灯控制
中断的响应
MCS-51CPU在每一个机器周期顺序检查每一个中断源,在机器周期的
S6按优先级处理所有被激活的中断请求,此时,如果 CPU没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者 CPU不是正在执行 RETI指令或访问 IE和 IP的指令
(因为按 MCS-51中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断),CPU在下一个机器周期响应激活了的最高级中断请求。
中断源的服务程序入口地址如右表中断源 入口地址外中断 0 0003H
定时 /计数器 0 000BH
外中断 1 0013H
定时 /计数器 0 001BH
串行口中断 0023H
5,2 任务十 单片机流水灯控制
单片机中断程序怎样编制?
首先必须对中断系统进行初始化,包括:
开中断,即设定 IE寄存器。
设定中断优先级,即设置 IP寄存器。
如果是外部中断,还必须设定中断响应方式,即设定 IT0,IT1位。
如果是计数、定时中断必须先设定定时、计数的初始值。
初始化结束后,对于定时、计数器而言,还应该记得启动定时或计数,
即设定 TR0,TR1位。串口接收中断,要记得允许接收位 REN应该设置。
中断初始化结束后,就可以编制中断服务程序编制中断服务程序时注意:
5,2 任务十 单片机流水灯控制
中断服务程序,第一条指令必须安排在相应的中断入口地址,
并且应该是转移指令,由于中断响应时,已经由硬件执行了 LCALL
指令,中断程序断点地址已经入栈,所以不能再用子程序调用指令。
由于中断的产生是随机的,所以对程序中的公共单元(其他程序中已经使用,中断程序中也使用了的单元),必须在中断服务程序开始处,采用堆栈进行保护,即入栈。子程序返回前再出栈。
中断服务程序必须以 RETI结束,因为 RETI指令具有两个功能:
第一,将断点地址弹回 PC指针,以保证能继续原来的程序,第二,
能将中断优先级状态触发器清零,以保证新的中断请求能够被相应。
课堂小结:
1、任务十的硬件电路与工作原理
2、程序流程图
3、单片机如何中断原来的工作?
4、如何编制单片机的中断程序?
作业:
1、预习单片机流水灯控制实验实训项目,完成预习报告,编写控制程序
2,P136 5.15 5.16