预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章中断7.1中断的概念7.2MCS-51单片机的中断系统及其管理IT0:选择外部中断请求0为边沿触发方式或电平触发方式的控制位。IT0=0,为电平触发方式,低电平有效;IT0=1,为边沿触发方式,输入脚上电平由高到低的负跳变有效。IT0可由软件置“1”或清“0”。 IE0:外部沿触发中断0请求标志。当IT0=0即电平触发方式时,每个机器周期的S5P2采样,若为低电平,将直接触发外部中断。当IT0=1即为边沿触发方式时,当第一个机器周期采样到为高电平,第二个机器周期采样到为低电平时,由硬件置位IE0,并以此来向CPU请求中断。当CPU响应中断,转向中断服务程序时由硬件清“0”IE0。 IT1:外部中断1触发方式控制位,和IT0类似。 IE1:外部沿触发中断1请求标志,其意义和IE0相同。 外部中断与IEx之间的关系如下图所示 SCON:串行口控制寄存器,字节地址为98H。 SCON的低二位锁存串行口的接收中断和发送中断标志,其格式如下。 TI:8051串行口的发送中断标志。TI=1表示串行口发送器正在向CPU申请中断。CPU响应发送器中断请求,转向执行中断服务程序时并不清“0”TI,TI必须由用户在中断服务程序中清“0”,即中断服务程序中必须有CLRTI或ANLSCON,#FDH等清“0”TI的指令。 RI:串行口接收中断标志。RI为1表示串行口接收器正向CPU申请中断,同样RI必须由用户的中断服务程序清“0”。 2.中断的开放、禁止及优先级 对于每个中断源,其开放与禁止由专用寄存器IE中的某一位控制。 中断次序(优先级)可由专用寄存器IP中相应位是置1还是清0决定其为高优先级还是低优先级,这在硬件上有相应的优先级触发器予以保证。IE:中断允许寄存器 EA:开放或禁止所有中断。如EA=0,则不响应中断。如EA=1,每个中断源分别由各自的允许位的置位或清除确定开放或禁止。 ES:开放或禁止串行通道中断。如ES=0,则禁止串行通道中断。 ET1:开放或禁止定时器1溢出中断。如ET1=0,则禁止定时器1中断。 EXl:开放或禁止外部中断源1。如果EXl=0,则禁止外部中断1。 ET0:开放或禁止定时器0溢出中断。如果ET0=0,则禁止定时器0中断。 EX0:开放或禁止外部中断源0。如果EX0=0,则禁止外部中断0。 用户可据需要置“1”或清“0”IE相应的位,来允许或禁止各中断源的中断申请。欲使某中断源允许中断,必须同时使EA=1,首先使CPU开放中断。所以EA相当于中断允许的“总开关”。IP:中断优先级寄存器 PS:决定串行通道中断优先级。PS=1,则编程为高优先级。 PT1:决定定时器1中断优先级。PT1=1,则编程为高优先级。 PX1:决定外中断1优先级。PX1=1,则编程为高优先级。 PT0:决定定时器0中断优先级。PT0=1,则编程为高优先级。 PX0:决定外中断0优先级。PX0=1,则编程为高优先级。8051单片机的中断系统MCS-51单片机对中断优先级的处理原则: 不同级的中断源同时申请中断时:先高后低; 处理低级中断又收到高级中断请求时:停低转高; 处理高级中断却收到低级中断请求时:高不睬低; 同一级的中断源同时申请中断时:事先规定。 对于同—优先级,单片机对其中断次序安排如下: 中断源同一级的中断优先级 外部中断0最高 定时/计数器T0溢出中断 外部中断1 定时/计数器T1溢出中断 串行口中断最低7.2.2单片机响应中断的条件及响应过程2.中断的响应过程 单片机一旦响应中断,首先置位相应的优先级有效触发器(中断系统包含了两个不可编程的“优先等级生效”触发器,一个用于指明已进行高优先级的中断服务,以阻止其他的中断请求,另一个用于指明已进入低优先级的中断服务,阻止除高优先级以外的全部其他中断请求),然后执行一个硬件子程序调用,把断点地址压人堆栈,再把与各中断源对应的中断服务程序的首地址送程序计数器PC,同时清除中断请求标志(TI和RI除外),从而控制程序转移到中断服务程序。以上过程均由中断系统自动完成。 由上述过程可知,单片机响应中断后,只保护断点而不保护现场(如标志位寄存器PSW的内容),且不能清除串行口中断请求标志TI和RI,也无法清除外中断输入电平申请信号,所有这些应在用户编制中断处理程序时予以考虑。各中断源所对应的中断服务程序首地址如下: 中断源 入口地址 外部中断0 0003H 定时器计数器T0 000BH 外部中断1 0013H 定时器计数器T1 001BH 串行口中断 0023H CPU从此地址开始执行中断服务程序直至遇到一条RETI指令为止。RETI指令表示中断服务程序的结束,CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器,一方面由栈顶弹出断点地址送程