




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 中断系统 1内容概要内容概要 本章介绍本章介绍AT89S51片内中断系统的硬件结构和工作原理。片内中断系统的硬件结构和工作原理。 中断系统能够实时地响应片内功能部件和外围设备发出的中中断系统能够实时地响应片内功能部件和外围设备发出的中断请求并及时进入中断服务子程序进行处理。通过本章学习断请求并及时进入中断服务子程序进行处理。通过本章学习,应重点掌握与中断系统有关的特殊功能寄存器以及中断系,应重点掌握与中断系统有关的特殊功能寄存器以及中断系统的应用特性,以及熟练地进行中断系统应用的编程。统的应用特性,以及熟练地进行中断系统应用的编程。2中断的比喻中断的比喻任何一件事情的发生都会任何一件事
2、情的发生都会中断小林看电视的进程而中断小林看电视的进程而去响应和处理事件。例如,去响应和处理事件。例如,邮递员上门送信,小林必邮递员上门送信,小林必须去开门签收信件,当事须去开门签收信件,当事件处理完后,小林回去接件处理完后,小林回去接着看电视。这里,小林比着看电视。这里,小林比喻的就是单片机,而喻的就是单片机,而5 5个可个可能发生的事件为单片机的能发生的事件为单片机的5 5个中断源个中断源外部中断外部中断0 0、外部中断外部中断1 1、Timer 0Timer 0中断、中断、Timer 1Timer 1中断、串行通信中中断、串行通信中断。断。5.1 AT89S515.1 AT89S51中断
3、技术概述中断技术概述 在单片机系统中,中断技术主要用于实时监测与控制,在单片机系统中,中断技术主要用于实时监测与控制,也就是要求单片机能及时地响应中断请求源提出的服务请也就是要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应并及时处理。这些工作就是由单片机求,并作出快速响应并及时处理。这些工作就是由单片机片内的中断系统来实现的。当中断请求源发出中断请求时片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。行的主程序,转到中断服务处理程序
4、处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。中止的程序之处(断点),继续执行被中断的主程序。5图图5-1 5-1 中断响应和处理过程中断响应和处理过程 图图5-15-1显示了单片机对外围设备中断服务请求的整个中断显示了单片机对外围设备中断服务请求的整个中断响应和处理过程。响应和处理过程。 中断的定义中断的定义 所谓中断,是指所谓中断,是指CPUCPU正在处理某些事务的时候,外部又发正在处理某些事务的时候,外部又发生了某一事件,请求生了某一事件,请求CPUCPU及时处理。于是
5、,及时处理。于是,CPUCPU暂时中断当暂时中断当前的工作,转而处理所发生的事件。处理完毕,再回到原前的工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的工作。这样的过程,称为中来被中断的地方,继续原来的工作。这样的过程,称为中断。断。7图图5-2 AT89S515-2 AT89S51的中断系统结构的中断系统结构5.2 AT89S515.2 AT89S51中断系统结构中断系统结构 AT89S51 AT89S51单片机有单片机有5 5个中断源:外部中断个中断源:外部中断0 0(/INT0 /INT0 )、外)、外部中断部中断1 1( /INT1 /INT1)、)、Timer
6、 0Timer 0中断(中断(TF0TF0)、)、Timer 1Timer 1中中断(断(TF1TF1)、串行通信中断()、串行通信中断(RI/TIRI/TI)。当中断使能后,)。当中断使能后,任何一个中断发生时单片机都会到中断向量表所示的对任何一个中断发生时单片机都会到中断向量表所示的对应地址上去执行中断服务子程序。应地址上去执行中断服务子程序。中断服务的指挥中断服务的指挥中断向量表中断向量表中断的响应及处理中断的响应及处理当一个中断产生时,单片机会按以下步骤进行响应与处理。当一个中断产生时,单片机会按以下步骤进行响应与处理。立即暂停当前正在执行的任何指令,并把下一条将要执立即暂停当前正在执
7、行的任何指令,并把下一条将要执行的指令地址压入堆栈中。行的指令地址压入堆栈中。根据中断的类型在中断向量表中找到对应的地址。根据中断的类型在中断向量表中找到对应的地址。到该地址上开始执行中断服务子程序,直到遇到指令到该地址上开始执行中断服务子程序,直到遇到指令“RETIRETI”,中断服务子程序结束。,中断服务子程序结束。执行完中断服务子程序后,从堆栈中弹出在中断产生时执行完中断服务子程序后,从堆栈中弹出在中断产生时保存的将要执行的下一条指令的地址到程序计数器保存的将要执行的下一条指令的地址到程序计数器PCPC中,中,单片机开始从单片机开始从PCPC指示的地址继续执行程序。指示的地址继续执行程序
8、。5.2.2 5.2.2 中断请求标志寄存器中断请求标志寄存器1. TCON1. TCON寄存器寄存器 为定时器为定时器/ /计数器的控制寄存器,计数器的控制寄存器,字节地址为字节地址为88H88H,可位寻,可位寻址址。特殊功能寄存器。特殊功能寄存器TCONTCON的格式如图的格式如图5-35-3所示。所示。 图5-3 特殊功能寄存器TCON的格式 10 外部中断的触发模式外部中断的触发模式有有低电平触发低电平触发和和边沿边沿触发触发。2. SCON2. SCON寄存器寄存器 SCON SCON为串行口控制寄存器,字节地址为为串行口控制寄存器,字节地址为98H98H,可位寻址。,可位寻址。12
9、图5-4 SCON中的中断请求标志位TI/RITI/RI串行口的发送串行口的发送/ /接收中断请求标志位接收中断请求标志位。每完成一次数。每完成一次数据的发送据的发送/ /接收时,硬件使接收时,硬件使TI/RITI/RI自动置自动置“1”1”。 CPUCPU响应串响应串行口中断时,并不清除行口中断时,并不清除TI/RITI/RI中断请求标志,中断请求标志,TI/RITI/RI标志必须标志必须在中断服务程序中用指令对其清在中断服务程序中用指令对其清“0”0”。 5.3 5.3 中断允许与中断优先级的控制中断允许与中断优先级的控制 实现中断允许控制和中断优先级控制分别由特殊功能寄存实现中断允许控制
10、和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器器区中的中断允许寄存器IEIE和中断优先级寄存器和中断优先级寄存器IPIP来实现的来实现的。135.3.1 5.3.1 中断允许寄存器中断允许寄存器IEIE AT89S51 AT89S51的的CPUCPU对各中断源的开放或屏蔽,是由片内的中断允对各中断源的开放或屏蔽,是由片内的中断允许寄存器许寄存器IEIE控制的。控制的。IEIE的字节地址为的字节地址为A8HA8H,可进行位寻址,可进行位寻址。图图5-5 5-5 中断允许寄存器中断允许寄存器IEIE的格式的格式 145.3.2 5.3.2 中断优先级寄存器中断优先级寄存器IPIP 中断请
11、求源有中断请求源有两个中断优先级两个中断优先级,每一中断请求源可由软件设,每一中断请求源可由软件设为高优先级中断或低优先级中断,也可实现两级中断嵌套。为高优先级中断或低优先级中断,也可实现两级中断嵌套。15图图5-6 5-6 两级中断嵌套的过程两级中断嵌套的过程 关于各中断源的关于各中断源的中断优先级关系中断优先级关系,有下面两条,有下面两条基本规则基本规则:(1 1)低优先级可被高优先级中断,反之不行。)低优先级可被高优先级中断,反之不行。(2 2)任何一种中断(不管是高级还是低级),一旦得到响)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被
12、应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被任何其他的中断源的中断请求所中断。,则不能被任何其他的中断源的中断请求所中断。1617图图5-7 IP5-7 IP寄存器的格式寄存器的格式 AT89S51 AT89S51的片内有一个中断优先级寄存器的片内有一个中断优先级寄存器IPIP,其字节地址,其字节地址为为B8HB8H,可位寻址。只要用程序改变其内容,即可进行各,可位寻址。只要用程序改变其内容,即可进行各中断源中断优先级的设置。中断源中断优先级的设置。 【例例】PX1=1PX1=1
13、;外中断;外中断INT1INT1被设置成高优先级被设置成高优先级PT0=0PT0=0;定时器;定时器T0T0被设置成低优先级被设置成低优先级IP=0 x04IP=0 x04;/IP=0000 0100 /IP=0000 0100 将将PX1PX1设为设为1 PT01 PT0设为设为0 0; 另外需要注意,在同时收到几个同一优先级的中断请求时,哪另外需要注意,在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。一个中断请求能优先得到响应,取决于内部的查询顺序。 18由此可见,各中断源在同一个优先级的条件下,由此可见,各中断源在同一个优先级的条件下,外部中断外
14、部中断0 0的的中断优先权最高中断优先权最高,串行口中断的优先权最低。,串行口中断的优先权最低。5.4 5.4 响应中断请求的条件响应中断请求的条件(1 1)总中断允许开关接通,即)总中断允许开关接通,即IEIE寄存器中的中断总允许位寄存器中的中断总允许位EA=1EA=1。(2 2)该中断源发出中断请求,即该中断源对应的中断请求标)该中断源发出中断请求,即该中断源对应的中断请求标志为志为“1”1”。(3 3)该中断源的中断允许位)该中断源的中断允许位=1=1,即该中断被允许。,即该中断被允许。(4 4)无同级或更高级中断正在被服务。)无同级或更高级中断正在被服务。 中断响应就是中断响应就是CP
15、UCPU对中断源提出的中断请求的接受。当对中断源提出的中断请求的接受。当CPUCPU查查询到有效中断请求时,在满足上述条件时,紧接着就进行中询到有效中断请求时,在满足上述条件时,紧接着就进行中断响应。断响应。19 中断响应的中断响应的主要过程主要过程:首先由硬件自动生成一条长调用指:首先由硬件自动生成一条长调用指令令“LCALL addr16”LCALL addr16”。这里的。这里的addr16addr16就是程序存储区中相就是程序存储区中相应的中断入口地址。生成应的中断入口地址。生成LCALLLCALL指令后,紧接着就由指令后,紧接着就由CPUCPU执执行该指令。首先将程序计数器行该指令。
16、首先将程序计数器PCPC的内容压入堆栈以保护断的内容压入堆栈以保护断点,再将中断入口地址装入点,再将中断入口地址装入PCPC,使程序转向响应中断请求,使程序转向响应中断请求的中断入口地址。各中断源服务程序的入口地址是固定的的中断入口地址。各中断源服务程序的入口地址是固定的,如表所示。,如表所示。其中两个中断入口间只相隔其中两个中断入口间只相隔8 8字节,一般情况下难以安放一个字节,一般情况下难以安放一个完整的中断服务程序。因此,通常总是在中断入口地址处放完整的中断服务程序。因此,通常总是在中断入口地址处放置一条无条件转移指令,使程序执行转向在其他地址存放的置一条无条件转移指令,使程序执行转向在
17、其他地址存放的中断服务程序入口。中断服务程序入口。000BH000BHTF0TF0定时定时/ /计数器计数器0(T0)0(T0)002BH002BHTF2TF2定时定时/ /计数器计数器2(T2)2(T2)0023H0023HRI/TIRI/TI串行口接收串行口接收/ /发送发送001BH001BHTF1TF1定时定时/ /计数器计数器1(T1)1(T1)0013H0013HIE1IE1外部中断外部中断1( INT1)1( INT1)0003H0003HIE0IE0外部中断外部中断0( INT0)0( INT0)中断优先级中断优先级中断矢量中断矢量申请标志申请标志中中 断断 源源最高优先级最高
18、优先级最低优先级最低优先级5.5 5.5 外部中断的响应时间外部中断的响应时间 外部中断的外部中断的最短响应时间为最短响应时间为3 3个机器周期个机器周期。外部中断响应的外部中断响应的最长时间为最长时间为8个机器周期个机器周期。外部中断外部中断(INT0,INT1)(INT0,INT1)申请过程申请过程在在CPUCPU已经开放了外部中断允许的前提下:已经开放了外部中断允许的前提下:在在INT0/INT1INT0/INT1引脚输入一个负脉冲或低电平,引脚输入一个负脉冲或低电平, TCONTCON寄存器中的寄存器中的IE0/IE1IE0/IE1标志位自动变标志位自动变“1”1”,检测到检测到IE0
19、/IE1IE0/IE1变变“1”1”后后, ,将产生指令:将产生指令: 执行中断服务程序执行中断服务程序, ,并将并将IE0/IE1IE0/IE1标志位自动清标志位自动清“0”,0”,以备下次申请。以备下次申请。5.6 5.6 中断请求的撤销中断请求的撤销1 1定时器定时器/ /计数器中断请求的撤销计数器中断请求的撤销 定时器定时器/ /计数器中断的中断请求是计数器中断的中断请求是硬件自动撤销硬件自动撤销的的 。2 2外部中断请求的撤销外部中断请求的撤销 电平触发电平触发/ /边沿触发的外部中断请求的都是硬件边沿触发的外部中断请求的都是硬件自动撤销自动撤销的。的。3 3串行口中断请求的撤销串行
20、口中断请求的撤销 CPUCPU对这串口中断标志不进行自动清对这串口中断标志不进行自动清“0”0”,只能使用软件只能使用软件的方法,在中断服务程序中进行,即使用软件在中断服务程的方法,在中断服务程序中进行,即使用软件在中断服务程序中把串行口中断标志位序中把串行口中断标志位TITI、RIRI清清0 0。235.8 5.8 中断函数中断函数中断服务函数的一般形式为:中断服务函数的一般形式为:函数类型函数类型 函数名(形式参数表)函数名(形式参数表) interrupt n using n 关键字关键字interruptinterrupt后面的后面的n n是中断号,取值为是中断号,取值为040424编
21、写编写AT89S51AT89S51单片机中断程序时,应遵循以下规则:单片机中断程序时,应遵循以下规则:(1)中断函数不能进行参数传递,如果中断函数中包含任中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。何参数声明都将导致编译出错。(2)中断函数没有返回值,如果企图定义一个返回值将得中断函数没有返回值,如果企图定义一个返回值将得不到正确的结果,建议在定义中断函数时将其定义为不到正确的结果,建议在定义中断函数时将其定义为void类型,以明确说明没有返回值。类型,以明确说明没有返回值。(3)在任何情况下都不能直接调用中断函数,否则会产生在任何情况下都不能直接调用中断函数,否
22、则会产生编译错误。编译错误。【例例1 1】在在5151单片机的单片机的P1P1口上接有口上接有8 8只只LEDLED。在外部中断。在外部中断0 0输入输入引脚引脚P3.2P3.2(INT0INT0* *)引脚接有一只按钮开关)引脚接有一只按钮开关K1K1。程序要求。程序要求将外部中断将外部中断0 0设置为负跳沿触发。在程序启动时,设置为负跳沿触发。在程序启动时,P1P1口上口上的的8 8只只LEDLED亮。按一次按钮开关亮。按一次按钮开关K1K1,使引脚接地,产生一个,使引脚接地,产生一个负跳沿触发的外中断负跳沿触发的外中断0 0中断请求,在中断服务程序中,让中断请求,在中断服务程序中,让低低
23、4 4位的位的LEDLED和高和高4 4位的位的LEDLED交替闪烁。具体电路如交替闪烁。具体电路如图图5-95-9所所示。示。265.9 C515.9 C51编程举例编程举例5.9.1 5.9.1 单一外中断的应用单一外中断的应用27图5-9 控制8只LED交替闪烁的电路参考程序如下:参考程序如下:#include void Delay(unsigned int i)/*延时函数延时函数Delay( ),i为形式参数,不为形式参数,不能赋初值能赋初值*/unsigned int j;for(;i 0;i-)for(j=0;j333;j+) /*晶振为晶振为12MHz,j的选择与晶振频率有关的
24、选择与晶振频率有关*/;/*空函数空函数*/void main( )/*主函数主函数*/EA=1;/*总中断允许总中断允许*/EX0=1;/*允许外部中断允许外部中断0中断中断*/IT0=1;/*选择外部中断选择外部中断0为跳沿触发方式为跳沿触发方式*/P1=0;/* P1口的口的8只只LED全亮全亮*/while(1); /*循环循环*/28void int0( ) interrupt 0 using 0 /*外中断外中断0的中断服务函数的中断服务函数*/EX0=0;/*禁止外部中断禁止外部中断0中断中断*/P1=0 x0f;/*低低4位位LED灭,高灭,高4位位LED亮亮*/Delay(8
25、00);/*延时延时800ms*/P1=0 xf0;/*高高4位位LED灭,低灭,低4位位LED亮亮*/Delay(800);/*延时延时800ms */EX0=1;/*中断返回前,打开外部中断中断返回前,打开外部中断0中断中断*/本例程包含了两个部分,一是中断系统初始化部分,另一是本例程包含了两个部分,一是中断系统初始化部分,另一是中断处理服务函数部分。中断处理服务函数部分。295.9.2 5.9.2 两个外中断的应用两个外中断的应用当多个中断源时,只需增加相应的中断服务函数即可。当多个中断源时,只需增加相应的中断服务函数即可。【例例2 2】如图如图5-105-10所示,在所示,在5151单
26、片机的单片机的P1P1口上接有口上接有8 8只只LEDLED。在。在外部中断外部中断0 0输入引脚输入引脚P3.2P3.2(INT0INT0* *)引脚接有一只按钮开关)引脚接有一只按钮开关K1K1。在外部中断。在外部中断1 1输入引脚输入引脚P3.3P3.3( INT1 INT1* * )引脚接有一只按钮)引脚接有一只按钮开关开关K2K2。程序要求。程序要求K1K1和和K2K2都未按下时,都未按下时,P1P1口的口的8 8只只LEDLED呈流水呈流水灯显示,仅灯显示,仅K1K1(P3.2P3.2)按下时,左右)按下时,左右4 4只只LEDLED交替闪烁。仅按交替闪烁。仅按下下K2K2(P3.3P3.3),),P1P1口的口的8 8只只LEDLED全部闪亮。两个外中断的优先全部闪亮。两个外中断的优先级相同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级生物上册 2.4.1《细胞分化形成组织》教学设计1 (新版)北师大版
- 2023六年级英语上册 Unit 3 My weekend plan Part A 第二课时教学设计 人教PEP
- 2024一年级数学下册 第8单元 探索乐园 2数图结合规律教学设计 冀教版
- 2023-2024学年人教版九年级化学下册同步教学设计第十一单元《盐 化肥》
- Unit 1 Making new friends Period 3 (教学设计)-2024-2025学年人教大同版(2024)英语三年级上册
- 2018年秋九年级上册(人教部编版)历史教学设计:第12课 阿拉伯帝国
- 七年级体育 第11周 第二十二课教学设计
- 2花的学校教学设计-2024-2025学年三年级上册语文统编版
- 2024秋八年级物理上册 第3章 光现象 第五节 光的反射教学设计3(新版)苏科版
- 老年人的营养管理
- 7.2做中华人文精神的弘扬者 教学设计-2024-2025学年统编版道德与法治七年级下册
- 普通心理学第六版PPT完整全套教学课件
- 2022年《国民经济行业分类》
- License使用成本估算
- OTN传输项目交付实施计划方案
- 固定顶、外浮顶和内浮顶储罐
- 装配钳工技能大赛实操试卷试题
- 图文详解AP1000核电站
- 《网店客服》5套综合模拟试卷期末考试卷带答案
- 看字读颜色--ppt课件
- IH型化工离心泵设计
评论
0/150
提交评论