null第5章 MCS-51中断系统第5章 MCS-51中断系统中断的概念中断举例日常生活中的中断与计算机中断的比较中断与子程序的最主要区别中断系统的结构和中断控制中断概念:中断概念:关键词:能力、过程。
随机发生、 中止、转到、返回 CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。
CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。
处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。日常生活中的中断与计算机中断的比较:日常生活中的中断与计算机中断的比较:客人 中断源 敲门 中断申请 门卫、秘书 中断系统 客人登记 中断标志 识别、处理 中断响应(过程) 预约 [CPU]中断允许(标志) 接待 [CPU]中断处理 送客后继续工作 [CPU]中断返回 几个名词几个名词中断系统:实现中断功能的部件称为中断系统,又称中断机构。
中断源:产生中断的请求源称为中断源。
中断申请:中断源向CPU提出的处理请求,称为中断请求或中断申请。
中断响应过程:CPU暂时中止自身的事物,转去处理事件的过程,称为CPU的中断响应过程。
中断服务:对事件的整个处理过程,称为中断服务(或中断处理)。
中断返回:中断处理完毕,在返回到原来被中止的地方,称为中断返回。
中断方式的特点中断方式的特点1、中断方式消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。
2、将从现场采集的数据通过中断方式及时传送给CPU,经过处理后可立即作出反应,实现现场控制。采用查询方式很难做到及时采集,实时控制。中断技术实现的功能中断技术实现的功能1、分时操作
2、实时处理
3、故障处理分时操作
计算机的中断系统可以使CPU与外设同时工作。
CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。当外设准备就绪时,就向CPU发出中断请求,CPU响应该中断请求并为其服务完毕后,返回原来的断点处继续运行主程序。外设在得到服务后,也继续进行自己的工作。
因此,CPU可以使多个外设同时工作,并分时为各外设提供服务,从而提高了CPU的利用率和输入和输出的速度。实时处理
当计算机用于实时控制时,请求CPU提供服务时随机发生的。有了中断系统,CPU就可以立即响应并加以处理。故障处理
计算机在运行时往往会出现一些故障,如断电、存储器奇偶校验出错、运算溢出等。
有了中断系统,当出现上述情况时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。中断与子程序的最主要区别:
何时转移、转向何处?中断与子程序的最主要区别:
何时转移、转向何处?中断系统的结构和中断控制:中断系统的结构和中断控制:中断源
8051有5个中断源:
(1)外部中断源
由INT0 、INT1 ( P3.2 、 P3.3 )端口线引入
(2)内部中断源
定时器T0、 T1溢出及串口的中断请求
中断申请
事件发生:如INT0端口上出现了低电平或下降沿。
如T0定时器发生了溢出。
中断系统的结构和中断控制:中断系统的结构和中断控制:中断标志----自动置位
中断允许----由CPU参与,靠指令事先设置。
中断标志各控制位的含义中断标志各控制位的含义1、TF1:定时器/计数器T1溢出中断请求标志位。
当启动T1计数后,T1从初值开始加1计数,计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,硬件将自动对TF1清0。
2、TF0:定时器/计数器T0溢出中断请求标志位。
含义与TF1类同。
中断系统的结构和中断控制:中断标志各控制位的含义3、IE1:外部中断1的中断请求标志。 INT1(P3.3)。
当检测到外部中断引脚1 上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应中断请求时,由硬件使IE1清0。
4、IE0:外部中断0的中断请求标志。INT0(P3.2)。
其含义与IE1类同。
5、IT1:外部中断1的中断触发方式控制位。
IT1=0时,外部中断1程控为电平触发方式。
CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断1请求为低电平,则使IE1置1;若为高电平,则使IE1清0。
中断标志各控制位的含义中断标志各控制位的含义5、IT1:外部中断1的中断触发方式控制位。
IT1=1时,外部中断1程控为边沿触发方式。
CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使IE1置1。直到CPU响应该中断时,才由硬件使IE1清0。
6、IT0:外部中断0的中断触发方式控制位。
其含义与IT1类同。
中断标志各控制位的含义中断系统的结构和中断控制:中断系统的结构和中断控制:中断响应
当满足了中断响应条件,中断系统就会自主地做出响应,包括保存断点地址、自动清除中断标志以及自动转向相应的中断服务子程序的入口地址---中断向量。
中断向量
中断系统的结构和中断控制:中断系统的结构和中断控制:中断响应条件
①有中断源发出中断请求。
②中断总允许位EA=1,即CPU中断。
③申请中断的中断源的中断允许位为1,中断没有被屏蔽。
④无同级或更高级中断正在被服务。
⑤当前的指令周期已经结束。
⑥若现行指令为RETI或是访问IE或IP指令时,该指令以及紧接着的另一条指令已执行完。中断系统的结构和中断控制:中断系统的结构和中断控制:中断响应过程
① 把当前PC值压入堆栈,保护断点。
② 将相应的中断服务程序的入口地址送入PC。
③ 对有些中断源,CPU会自动清除中断标志。
中断系统的结构和中断控制:中断响应时间中断系统的结构和中断控制:CPU不是在任何情况下都对中断请求予以响应,而不同的情况下对中断响应的时间是不同的。
对于顺利的中断响应,其最短的响应时间为3个机器周期。
对于受阻的中断响应,则响应时间会更长一些。
若中断系统只有一个中断源,则响应时间为3~8个机器周期之间。null若M1周期的S5P2前某中断生效,在S5P2期间其中断请求被锁存到相应的标志位中去;M2恰逢指令的最后一个机器周期,且该指令不是RETI或访问IE、IP的指令。于是,M3和M4便可以执行硬件LCALL指令,M5周期将进入了中断服务程序。
80C51的中断响应时间(从标志置1到进入相应的中断服务),至少要3个完整的机器周期。 中断系统的结构和中断控制:中断系统的结构和中断控制: RETI指令的具体功能是:
将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断的地方继续执行程序;
将相应中断优先级状态触发器清0,通知中断系统,中断服务程序已执行完毕。注意,不能用RET指令代替RETI指令。在中断服务程序中PUSH指令与POP指令必须成对使用,否则不能正确返回断点。中断返回结论:硬件及编程上的要求结论:硬件及编程上的要求 ① 关于中断初始化
② 关于中断向量
③ 关于中断服务子程序
④ 关于事件的发生 举例:举例:null例题:
任务1描述: 单片机上电,D4灯亮。按动接在P3.2上的开关,灯灭;再按,再亮。。。关注主程序的框架,关注四个要素 ORG 0000H
SJMP MAIN;上电,转向主程序
ORG 0003H;外部中断0入口地址
SJMP INSER;转向中断服务程序
ORG 0030H ;主程序
MAIN: SETB EX0 ;允许外部中断0中断
SETB IT0 ;选择边沿触发方式
SETB EA ;CPU开中断
CLR P1.0
HERE:SJMP HERE ;等待中断
ORG 0200H ;中断服务程序
INSER:CPL P1.0
RETI ;中断返回
ENDnull任务2描述:单片机上电,单灯按1Hz频率循环,一旦按下P3.2所接的按键,发光二极管全亮,2秒钟后,单灯继续原来的循环。1、流水灯的源程序2、流水灯的源程序+中断初始化程序3、中断服务程序及延时子程序4、 用查询程序实现上述任务5、从INT0输入,并采用了去抖动电路。null1、流水灯的源程序
ORG 0000H
SJMP MAIN ORG 0030H ;主程序
MAIN: mov a, #0feh
mov r5, #4
Output: mov p1,a
rl a
call Delay
djnz r5, Output
Ljmp MAIN
Delay: mov r6, #0
mov r7, #0
Dela: djnz r7, Dela
djnz r6, Dela
ret
endnull2、流水灯的源程序+中断初始化程序
ORG 0000H
SJMP MAIN;上电,转向主程序
ORG 0003H;外部中断0入口地址
SJMP INSER;转向中断服务程序
ORG 0030H ;主程序
MAIN: SETB EX0 ;允许外部中断0中断
SETB IT0 ;选择边沿触发方式
SETB EA ;CPU开中断
MAIN1: mov a, #0feh
mov r5, #4
Output: mov p1,a
rl a
call Delay
djnz r5, Output
Ljmp MAIN1
null3、中断服务程序及延时子程序
ORG 0200H
INSER :PUSH P1
MOV P1, #00H
ACALL DEL2S
POP P1
RETI
DEL2S: MOV R4, #20
LLL: ACALL DEL100MS
DJNZ R4, LLL
RET
DEL100MS: ;250×200×2=100000
mov r6, #250
Delay: mov r7, #200
Dela: djnz r7, Dela
djnz r6, Delay
ret
ENDINSER :PUSH P1
MOV B, R7
MOV P1, #00H
ACALL DEL2S
MOV R7, B
POP P1
RETInull ORG 0000H
SJMP MAIN ORG 0030H
MAIN: mov a, #0feh
Output: mov p1,a
rl a
call Delay
jb p1.0, output
mov p1, #00h
acall delay2s
sjmp output
Delay: mov r6, #0
mov r7, #0
Dela: djnz r7, Dela
djnz r6, Dela
ret
Delay2s:
ret
end8位的流水灯+键查询流程图4、 用查询程序实现上述任务null作业 2009-10-20作业 2009-10-20P117 1,3,6,9
简述89C51单片机的中断响应过程。