单片机原理及应用第2版张兰红第6章中断系统及应用优质PPT.pptx
《单片机原理及应用第2版张兰红第6章中断系统及应用优质PPT.pptx》由会员分享,可在线阅读,更多相关《单片机原理及应用第2版张兰红第6章中断系统及应用优质PPT.pptx(48页珍藏版)》请在冰豆网上搜索。
中断源在单片机内部的为内中断,中断源在单片机外部的为外中断。
常见的中断源主要有以下几种:
(1)输入/输出设备
(2)实时时钟或计数信号(3)故障源,09:
31,6,1.实现分时操作,6.1.2中断技术的应用,中断可以解决快速的CPU与慢速的外设之间的矛盾,使CPU和外设并行工作。
CPU在启动外设工作后继续执行主程序,同时外设也在工作。
每当外设做完一件事就发出中断申请,请求CPU中断它正在执行的主程序,转去执行中断服务程序(一般情况是处理输入/输出数据),中断处理完成之后,CPU继续执行主程序,外设也继续工作。
这样,CPU可以控制多个外设同时工作,大大地提高了CPU的效率。
2.实时处理,在实时控制系统中,现场的各种参数、信息均随时间和现场而变化。
这些外界变量可根据要求随时向CPU发出中断申请,请求CPU及时处理发生的情况。
如中断条件满足,CPU马上就会响应,进行相应的处理。
3.故障处理,单片机在运行过程中会出现难以预料的情况或故障,如掉电、存储出错、运算溢出等,此时可以通过中断系统由故障源向CPU发出中断请求,再由CPU转到相应的故障处理程序进行处理。
31,7,6.1.3中断系统的功能,1.能实现中断及返回,2.能实现优先权排队,3.能实现中断嵌套,当中断源向CPU发出中断申请时,CPU能决定是否响应这个中断请求。
若中断源有效且CPU开中断,则CPU在现行的指令执行完后,保护好被中断的主程序的断点地址(下一条应该执行的指令地址)及现场信息,然后,将中断服务程序的首地址送给PC,转去执行中断服务程序。
中断服务程序的最后一条指令是中断返回指令RETI,该指令使CPU返回断点,继续执行主程序,这个过程如图6-1所示。
通常,单片机系统中有多个中断源,有时会遇到多个中断源同时提出中断请求的情况。
这就要求单片机既能区分各个中断源的请求,又能确定先为哪一个中断源服务。
当CPU响应某一外设的中断请求,正在进行中断处理时,若有优先权级别更高的中断源提出中断请求,则CPU能中断正在进行的中断服务程序,响应高级中断,在高级中断处理完后,再继续执行被中断的中断服务程序。
这一过程称为中断嵌套,,09:
31,8,中断嵌套,09:
31,9,6.280C51单片机中断系统,6.2.1中断系统的结构,中断系统结构示意图,09:
31,10,80C51单片机的中断系统有5个中断源,两个中断优先级,可实现2级中断服务程序嵌套。
由片内特殊功能寄存器中的定时器/计数器控制寄存器TCON和串行口控制寄存器SCON对中断源进行控制,由中断允许寄存器IE控制CPU是否响应中断请求;
由中断优先级寄存器IP安排各中断源的优先级;
相同优先级内各中断同时提出中断请求时,不能通过程序控制,而是由CPU内部的查询顺序决定谁优先响应。
31,11,1.中断源80C51单片机的中断系统有5个中断源,它们是:
(1)外部中断0:
由(P3.2)引脚输入,由IT0选择其为低电平有效还是下降沿有效,当CPU检测到引脚上出现有效的中断请求信号时,中断请求标志位IE0置1,向CPU申请中断。
(2)外部中断1:
由(P3.3)引脚输入,由IT1选择其为低电平有效还是下降沿有效,当CPU检测到引脚上出现有效的中断请求信号时,中断请求标志位IE1置1,向CPU申请中断。
(3)定时器/计数器T0溢出中断请求,当T0定时时间到或计数满后,中断请求标志位TF0由硬件置1,向CPU申请中断。
31,12,(4)定时器/计数器T1溢出中断请求,当T1定时时间到或计数满后,中断请求标志位TF1被硬件置1,向CPU申请中断。
(5)串行口中断请求,当串行口接收完一帧数据时,中断请求标志RI被硬件置1,或当串口发送完一帧数据时,中断请求标志TI被硬件置1。
31,13,中断源的中断请求标志位分别由特殊功能寄存器TCON和SCON的相应位锁存,TCON和SCON寄存器的字节地址分别为88H和98H,可进行位寻址。
2.中断标志寄存器TCON和串行口控制寄存器SCON,09:
31,14,IT0:
外部中断的触发方式选择位。
当IT0=0时,外部中断为电平触发方式,即引脚上的信号为低电平有效。
当IT0=1时,外部中断为边沿触发方式,即引脚上的信号出现从高到低的负跳变有效。
IT0位可由软件置1或清0。
31,15,IE0:
外部中断中断请求标志位。
当IT0=0时,外部中断为电平触发方式,CPU在每个机器周期的S5P2采样引脚电平,若采样到为低电平时,IE0置1表示向CPU申请中断;
若采样到为高电平时,IE0清0。
注意:
在电平触发方式下,CPU响应中断时,不能自动将IE0清0,因为IE0的状态完全由状态决定,所以在中断返回前必须撤除引脚上的低电平。
31,16,当IT0=1,外部中断为边沿触发方式,CPU在每个机器周期的S5P2采样引脚电平,如果在连续的两个机器周期里检测到引脚由高电平到低电平,即在第一个机器周期的S5P2采样到=1,在第二个机器周期的S5P2采样到=0,则IE0置1表示向CPU申请中断。
在边沿触发方式,CPU响应中断时,由硬件自动清除IE0标志。
为了保证CPU能检测到负跳变,的高低电平至少应保持一个机器周期。
31,17,IT1:
外部中断的触发方式选择位,其操作功能与IT0类似。
IE1:
外部中断中断请求标志位,其操作功能与IE0类似。
TF0:
定时器/计数器T0溢出中断请求标志位。
当T0启动计数后,T0从计数初值开始加1,直至最高位产生溢出由硬件将TF0置1,向CPU申请中断,CPU响应中断时,由硬件自动将TF0清0。
如果定时器/计数器T0工作在查询方式,T0计数溢出后,TF0必须由软件清0。
TF1:
定时器/计数器T1溢出中断请求标志位,其操作功能与TF0类似。
31,18,TR0、TR1这两个与中断无关,仅与定时器/计数器T0和T1有关,用来启动和停止定时器工作,它们的功能将在定时器/计数器这一章介绍。
31,19,SCON为串行口控制寄存器,与中断有关的是它的低两位TI和RI,SCON各位定义如下:
31,20,RI:
串行口接收中断标志位,当允许串行口接收数据时,串行口每接收完一帧数据,由硬件将RI置1,CPU响应串行口接收中断时,CPU并不自动清除RI中断标志位,必须在中断服务程序中由软件对RI清零。
TI:
串行口发送中断标志位,CPU将8位数据写入串行口发送缓冲器SBUF时,就启动了一帧数据的发送,每发送完一帧数据后,由硬件将TI置1,CPU响应串行口发送中断时,CPU并不自动清除TI中断标志位,必须在中断服务程序中由软件对TI清零。
单片机复位时,TCON和SCON各位清0,TCON和SCON中所有能产生中断的标志位均可由软件置1或清0。
31,21,IE各位定义如下:
单片机复位时,IE各位清0,禁止所有中断。
3.中断允许寄存器IE,09:
31,22,EA:
总中断允许控制位EA=0,CPU屏蔽所有的中断请求,称为CPU关中断;
EA=1,CPU开放所有中断,称为CPU开中断。
在EA=1的条件下,由各个中断控制位确定相应中断的打开与关闭。
ES:
串行口中断允许位ES=0,禁止串行口中断;
ES=1,允许串行口中断。
31,23,ET1:
定时器/计数器T1的溢出中断允许位ET1=0,禁止T1溢出中断;
ET1=1,允许T1溢出中断。
EX1:
外部中断1的中断允许位EX1=0,禁止外部中断1中断;
EX1=1,允许外部中断1中断。
31,24,ET0:
定时器/计数器T0的溢出中断允许位ET0=0,禁止T0溢出中断;
ET0=1,禁止T0溢出中断;
EX0:
外部中断0的中断允许位EX00,禁止外部中断0中断;
EX01,允许外部中断0中断。
31,25,例6-1若允许外部中断0和外部中断1中断,禁止其它中断源的中断请求,请编写出设置IE的相应程序段。
解:
(1)用位操作指令来编写程序段如下:
ES=0;
禁止串口中断ET1=0;
禁止定时器/计数器T1中断EX1=1;
允许外部中断1中断ET0=0;
禁止定时器/计数器T1中断EX0=1;
允许外部中断1中断EA=1;
CPU开中断
(2)用字节操作语句编写为:
IE=0x85,09:
31,26,80C51单片机有两个中断优先级,即可实现两级中断嵌套,每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位来规定的。
IP各位定义如下:
4.中断优先级寄存器IP,09:
31,27,PS:
串行口中断优先级控制位PS=0,串行口中断定义为低优先级中断;
PS=1,串行口中断定义为高优先级中断。
PT1:
定时器/计数器T1中断优先级控制位PT1=0,T1定义为低优先级中断;
PT1=1,T1定义为高优先级中断。
31,28,PX1:
外部中断1中断优先级控制位PX1=0,外部中断1中断定义为低优先级中断;
PX1=1,外部中断1中断定义为高优先级中断。
PT0:
定时器/计数器T0中断优先级控制位PT0=0,T0定义为低优先级中断;
PT0=1,T0定义为高优先级中断。
PX0:
外部中断0中断优先级控制位PX00,外部中断0中断定义为低优先级中断;
PX01,外部中断0中断定义为高优先级中断。
31,29,80C51单片机的中断系统有两个不可寻址的优先级激活触发器,其中一个指示某高优先级的中断正在执行,所有后来的中断均被阻止。
另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。
80C51单片机高优先级中断能够打断低优先级中断形成两级中断嵌套,同优先级中断之间,或低级对高级中断都不能形成中断嵌套,若几个同级中断同时向CPU申请中断,哪一个中断请求优先得到响应,按照单片机内部的查询顺序,这是由中断系统硬件确定的自然优先级。
31,30,各中断源的默认内部中断优先级、序号和中断服务程序入口地址如表6-1所示。
31,31,例6-2设置IP寄存器的初始值,使2个外部中断请求为低优先级,其它中断请求为高优先级。
解
(1)用位操作语句来编写程序段PX0=0;
2个外中断为低优先级PX1=0PS=1;
串口为高优先级中断PT0=1;
2个定时器/计数器为高优先级中断PT1=1
(2)用字节操作语句编写为:
IP=0x1a,09:
31,32,假设IP按照例6-2进行设定。
如果CPU正在处理