版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中断高广春5#B 210 MCS-51单片机的中断系统单片机的中断系统 计算机与外界的联系是通过外部设备(也称为外设、输入/输出设备或I/O设备)与外界联系的。计算机与外设之间不是直接相连的,而是通过不同的接口电路来达到彼此间的信息传送的目的。计算机与外设之间交换信息的方式计算机与外设之间交换信息的方式: (1)无条件传送方式:外设对计算机来说总是准备好的。 (2)查询传送方式:传送前计算机先查询外设的状态,若已经准备好就传送,否则就继续查询/等待。 (3)中断传送方式:外设通过申请中断的方式与计算机进行数据传送。 (4)直接存储器存取方式(DMA):传送数据的双方直接通过总线传送数据, 不经
2、CPU中转。中断的定义中断的定义 所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程。 作用:作用:采用中断技术可以提高CPU效率、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(CPU)。 中断与子程序的最主要区别:中断与子程序的最主要区别:子程序是预先安排好的,中断是随机发生的。 中断涉及的几个环节:中断涉及的几个环节:中断源、 中断申请、开放中断、保护现场、中断服务、恢复现场、中断返回。中断的作用中断的作用
3、由于资源有限,面对多项任务同时由于资源有限,面对多项任务同时要处理时,就会出现资源竞争的现象。要处理时,就会出现资源竞争的现象。 中断技术就是为了解决资源竞争的中断技术就是为了解决资源竞争的一个可行的方法,采用中断技术可使多一个可行的方法,采用中断技术可使多项任务共享一个资源。项任务共享一个资源。 中断的功能中断的功能o 实现实现CPU与外部设备的速度配合以及与外部设备的速度配合以及分时操作分时操作o 实现实时控制实现实时控制o 实现故障的及时发现及处理实现故障的及时发现及处理o 实现人机联系实现人机联系 中断的相关概念中断的相关概念、中断的本质、中断的本质 CPU在执行当前程序的过程中,插入
4、了另外一段程序的运行,相当在执行当前程序的过程中,插入了另外一段程序的运行,相当于调用了一个子程序。换句话说中断的本质是硬件调用子程序的过程。于调用了一个子程序。换句话说中断的本质是硬件调用子程序的过程。2、中断源、中断源 能产生中断的外部和内部事件统称为中断源。能产生中断的外部和内部事件统称为中断源。3、中断优先级、中断优先级 多个中断源同时申请中断时,或者多个中断源同时申请中断时,或者CPU正在处理某个中断源的服务正在处理某个中断源的服务程序时,又有了另一中断源申请中断,程序时,又有了另一中断源申请中断,CPU必须区分哪个中断更重要,从必须区分哪个中断更重要,从而决定优先处理哪个事件,这就
5、是中断优先级问题。而决定优先处理哪个事件,这就是中断优先级问题。4、中断的嵌套、中断的嵌套 当低优先级的中断源正在享用中断服务时,若优先级比它高的中断源当低优先级的中断源正在享用中断服务时,若优先级比它高的中断源提出申请中断,这时要求提出申请中断,这时要求CPU能够停下低优先级中断源的中断服务转而去能够停下低优先级中断源的中断服务转而去执行更高优先级别中断源的服务程序,待完成了高优先级中断的服务程序执行更高优先级别中断源的服务程序,待完成了高优先级中断的服务程序之后,再返回原程序的断点继续执行被打断的低优先级中断服务程序,这之后,再返回原程序的断点继续执行被打断的低优先级中断服务程序,这就是中
6、断嵌套问题。就是中断嵌套问题。中断执行的一般过程:中断执行的一般过程: (1) 外部设备发出脉冲信号向外部设备发出脉冲信号向CPU申请中断;申请中断; (2) CPU在每条指令执行时均检测是否有中断请求;在每条指令执行时均检测是否有中断请求; (3) 若检测到有中断申请,则根据计算机目前状态决定是否响应中断;若检测到有中断申请,则根据计算机目前状态决定是否响应中断; (4) 若要响应中断,则需判别产生中断申请的中断源;若要响应中断,则需判别产生中断申请的中断源; (5) CPU响应中断时,把程序断点处的响应中断时,把程序断点处的PC值压入堆栈保存起来,以备中断处理值压入堆栈保存起来,以备中断处
7、理完毕后能够返回程序的被中断处;完毕后能够返回程序的被中断处; (6) CPU在响应中断后,内部自动关中断,以禁止新的中断请求干扰本中断处在响应中断后,内部自动关中断,以禁止新的中断请求干扰本中断处理的进行。若要求中断过程中允许理的进行。若要求中断过程中允许 CPU 响应比它优先级别更高的中断源的中断,响应比它优先级别更高的中断源的中断,则应在保护现场之后,用软件把中断打开;则应在保护现场之后,用软件把中断打开; (7) CPU按中断源给出中断入口地址,转入被响应的中断处理子程序;按中断源给出中断入口地址,转入被响应的中断处理子程序;以上以上7步是由硬件自动完成的,以下步骤却须由中断处理程序来
8、完成:步是由硬件自动完成的,以下步骤却须由中断处理程序来完成: (8) 保护现场:为了使中断服务程序的执行不破坏被中断了的程序所使用的寄保护现场:为了使中断服务程序的执行不破坏被中断了的程序所使用的寄存器或存储单元的原有内容,要把中断服务程序将要使用而被中断的程序中仍需存器或存储单元的原有内容,要把中断服务程序将要使用而被中断的程序中仍需要继续使用的寄存器或存储单元的内容保护起来;要继续使用的寄存器或存储单元的内容保护起来; (9)执行中断服务程序:中断服务子程序是中断要求处理的具体内容;执行中断服务程序:中断服务子程序是中断要求处理的具体内容; (10)恢复现场:把保护现场时所保存起来的各寄
9、存器或存储单元的内容恢复,恢复现场:把保护现场时所保存起来的各寄存器或存储单元的内容恢复,以便返回被中断的程序后,能够正常运行;以便返回被中断的程序后,能够正常运行; (11)开中断:在返回被中断的程序之前,应该使用开中断的指令把由硬件关开中断:在返回被中断的程序之前,应该使用开中断的指令把由硬件关闭了的中断打开,以使闭了的中断打开,以使 CPU能够响应新的中断;能够响应新的中断; (12)中断返回:中断返回是把程序运行从中断处理程序转回到被中断的程序中断返回:中断返回是把程序运行从中断处理程序转回到被中断的程序中去,通过中断返回指令中去,通过中断返回指令RETI来完成,来完成,RETI除具有
10、子程序返回指令除具有子程序返回指令RET所具有所具有的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断、的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断、自动开中断等功能(可省去第自动开中断等功能(可省去第步骤)。步骤)。中断响应及处理过程o 保护断点o 寻找中断源o 中断处理o 中断返回 保护断点和寻找中断源都是由硬件自动自动完成的,用户不用考虑中断的控制方法中断的控制方法o 实现中断及返回实现中断及返回o 能实现优先权排队能实现优先权排队o 高优先级中断源能中断低优先级中断高优先级中断源能中断低优先级中断源的中断处理源的中断处理n MCS-51中断结构
11、中断结构 n MCS-51的中断应用编程的中断应用编程 中断源:中断源:五个中断源,外部中断源为五个中断源,外部中断源为 、 ,可选择低电平有效或下,可选择低电平有效或下降沿有效;内部中断源为降沿有效;内部中断源为T0、T1溢出中断;串行口的发送和接收部件共用一个中溢出中断;串行口的发送和接收部件共用一个中断源。断源。中断请求标志:中断请求标志:五个中断请求的标志位相应为五个中断请求的标志位相应为IE0、IE1、 TF0、 TF1、TI/RI。中断允许:中断允许:两级串联式的中断允许。两级串联式的中断允许。 EA=1时,开时,开CPU 中断;开某个中断源中中断;开某个中断源中断时,置位该中断源
12、的中断允许位断时,置位该中断源的中断允许位EX0、 EX1、 ET0、ET1、ES。中断优先级管理:中断优先级管理:有两组优先级,即高优先级组与低优先级组,同组时还由硬件有两组优先级,即高优先级组与低优先级组,同组时还由硬件规定有优先级的顺序规定有优先级的顺序(称自然优先级)(称自然优先级) 。INT0INT1P3.2 p3.3INT0INT1T0T1IT0IT1IE0IE1+EA EX0 ET0 ET1 ES EX1 PX0 PT0 PT1 PS PX1(IE) 011 0TF1TF0TI/RI(IP)TIRI高高优优先先级级中断转移中断转移入口入口低低优优先先级级中断转移中断转移入口入口(
13、TC0N/SC0N)中断中断总允许总允许中断优先中断优先级寄存器级寄存器中断允中断允许寄存器许寄存器中断请中断请求标志求标志中断源中断源80C51中断系统结构示意图外部中断外部中断外部中断外部中断0 0( )和外部中断)和外部中断1 1( )。其中断请求信号分别由)。其中断请求信号分别由P3.2P3.2,P3.3P3.3引脚输入。可以有低电平有效的引脚输入。可以有低电平有效的电平触发电平触发、下跳沿、下跳沿 边沿触发边沿触发这两种触发方式,这两种触发方式,分别由分别由 IT0 IT0 和和 IT1 IT1 进行设置;一旦外部中断信号有效,则将进行设置;一旦外部中断信号有效,则将 TCON TC
14、ON 中的中的 IE0 IE0 或或 IE1 IE1 标志位置标志位置1 1,可向,可向CPUCPU申请中断。申请中断。定时器定时器/ /计数器中断计数器中断定时器中断是定时器中断是MCS-51MCS-51单片机内部单片机内部 定时器定时器/ /计数器计数器0 0 和和 定时器定时器/ /计数器计数器1 1 定时时间定时时间到或计数值满产生溢出时,将到或计数值满产生溢出时,将 TCON TCON 中的中的 TF0 TF0 和和 TF1 TF1 置位,向置位,向CPUCPU申请中断。申请中断。串行口中断串行口中断串行口接收和发送部件共用一个中断源,当串行口接收或发送完一帧数据时,将串行口接收和发
15、送部件共用一个中断源,当串行口接收或发送完一帧数据时,将 TCON TCON 中的中断标志位中的中断标志位 RI RI 或或 TI TI 置置1 1,向,向CPUCPU申请中断。申请中断。 INT0INT1 当某个中断源的中断请求被CPU响应之后,CPU将自动把该中断源的中断入口地址(又称中断矢量地址)装入PC,中断服务程序即从该地址开始执行。 MCS-51单片机各中断源的中断矢量地址是固定的,参见表。由表可见,每个中断矢量地址只占8个单元,因此一般在此地址单元中存放一条跳转指令,跳至用户安排的中断服务程序的入口处。最低最低0023H R1或或T1串行口中断串行口中断001BH T1定时器定时
16、器1中断中断0013H 外部中断外部中断1中断中断000BH T0定时器定时器0中断中断最高最高0003H 外部中断外部中断0中断中断同级自然优先级同级自然优先级矢量地址矢量地址中断源中断源INT1INT0 8051的5个中断源的中断服务入口地址之间相差8个单元。这8个存储单元用来存储中断服务程序一般来说是不够的。用户常在中断服务程序地址入口处放一条三字节的长转移指令。一般地,主程序从0030H单元以后开始存放。例如:ORG 0000HLJMP START ; 转入主程序,START为主程序地址标号ORG 0003HLJMP INT0 ; 转外中断中断服务程序ORG 000BHLJMP T0
17、; 转定时器T0中断服务程序ORG 0030HSTART: ; 主程序开始 与中断系统有关的特殊功能寄存器有与中断系统有关的特殊功能寄存器有: TCON :定时器定时器/计数器的控制寄存器计数器的控制寄存器 SCON :串行口控制寄存器串行口控制寄存器 IE :中断允许寄存器中断允许寄存器 IP :中断优先级管理寄存器中断优先级管理寄存器 MCS-51的中断控制通过对这的中断控制通过对这4个个SFR的操作来实现。的操作来实现。 IT0、IT1:外部中断外部中断 、 引脚电平触发方式引脚电平触发方式选择位。当为选择位。当为“0”时低电平有效;为时低电平有效;为“1”时下降沿有效。时下降沿有效。I
18、E0、IE1:外部中断的中断请求标志位。置位时表示有外部中断的中断请求标志位。置位时表示有中断请求。中断请求。TF0、TF1:定时器定时器/计数器计数溢出中断请求标志。置计数器计数溢出中断请求标志。置位时表示有中断请求,中断响应后位时表示有中断请求,中断响应后硬件自动清零硬件自动清零 。 定时器定时器/计数器控制计数器控制寄存器寄存器 TCON 结构结构TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0位地址位地址8FH8EH8DH8CH8BH8AH89H88HINT0INT1特别说明特别说明IE0、IE1复位的问题复位的问题o当外部中断是低电平触发方式时
19、,当外部中断是低电平触发方式时,CPU每个机器周期的每个机器周期的S5P2期间对期间对 引脚采样,若为低电平,则认为有中断申请,随即使其标志位置引脚采样,若为低电平,则认为有中断申请,随即使其标志位置“1”;若为高电平,则认为无中断申请或中断申请已撤除,随即清除中;若为高电平,则认为无中断申请或中断申请已撤除,随即清除中断请求标志位。所以在电平触发方式中,在中断返回前应撤消断请求标志位。所以在电平触发方式中,在中断返回前应撤消 引脚上的低电平,否则将再次中断造成出错。引脚上的低电平,否则将再次中断造成出错。o当外部中断设置为边沿触发方式时当外部中断设置为边沿触发方式时,CPU在每个机器周期的在
20、每个机器周期的S5P2期间期间采样采样 引脚,若在连续两个机器周期分别采样到(先)高、(后)引脚,若在连续两个机器周期分别采样到(先)高、(后)低不同电平,则将中断请求标志位置低不同电平,则将中断请求标志位置“1”,此标志一直保持到,此标志一直保持到CPU响响应中断时,才由应中断时,才由硬件自动清除硬件自动清除 。所以在边沿触发方式中,为保证所以在边沿触发方式中,为保证CPU在两个机器周期内检测到由高至低的负跳变,输入高电平和低电平的持在两个机器周期内检测到由高至低的负跳变,输入高电平和低电平的持续时间起码要保持续时间起码要保持12个振荡器周期即一个机器周期的时间。个振荡器周期即一个机器周期的
21、时间。iINTiINTiINT 串行口控制串行口控制寄存器寄存器 SCON 结构结构SCOND7D6D5D4D3D2D1D0-TIRI位地址位地址 99H98H RI:接收中断标志位;接收中断标志位; CPU响应中断时不能硬件清除响应中断时不能硬件清除RI位,必须由软件清除。位,必须由软件清除。 TI:发送中断标志位。发送中断标志位。 CPU响应中断时不能硬件清除响应中断时不能硬件清除TI位,必须由软件清除。位,必须由软件清除。中断允许寄存器中断允许寄存器 IE 结构结构IED7D6D5D4D3D2D1D0EA-ESET1EX1ET0EX0位地址位地址AFH ACHABHAAHA9HA8H E
22、A:中断总控制位,中断总控制位,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中断控制位。中断控制位。ET0=1,允许
23、,允许T0中断,中断,ET0=0,禁止,禁止T0中断。中断。 EX0:外部中断外部中断0中断控制位,中断控制位,EX0=1,允许外中断,允许外中断0中断,中断,EX0=0,禁止外中断,禁止外中断0中断。中断。 中断优先级管理寄存器中断优先级管理寄存器 IP 结构结构IPD7D6D5D4D3D2D1D0-PSPT1PX1PT0PX0位地址位地址 BCHBBHBAHB9HB8H PS:串行口中断口优先级控制位,串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,串行口中断声明为高优先级中断, PS=0,串行口定义为低优先级中断。,串行口定义为低优先级中断。 PT1:定时器定时器1优先
24、级控制位。优先级控制位。PT1=1,声明,声明T1为高优先级中断,为高优先级中断, PT1=0, 定义定时器定义定时器1为低优先级中断。为低优先级中断。 PX1:外中断外中断1优先级控制位。优先级控制位。PX=1,声明外部中断,声明外部中断1为高优先级中断,为高优先级中断, PX1=0,定义外部中断,定义外部中断1为低优先级中断。为低优先级中断。 PT0:定时器定时器0优先级控制位。优先级控制位。PT0=1,声明,声明T0为高优先级中断,为高优先级中断, PT0=0, 定义定时器定义定时器0为低优先级中断。为低优先级中断。 PX0:外中断外中断0优先级控制位。优先级控制位。PX0=1,声明外部
25、中断,声明外部中断0为高优先级中断,为高优先级中断, PX0=0,定义外中断,定义外中断0为低优先级中断。为低优先级中断。程序通过设置程序通过设置IP寄存器可按需要把各中断源的优寄存器可按需要把各中断源的优先级设置成高、低先级设置成高、低2级。它们遵循级。它们遵循2条基本原则:条基本原则:1、低优先级中断可以被高优先级中断所中低优先级中断可以被高优先级中断所中断,反之不能;断,反之不能;2、一种中断(不管是什么优先级)一旦得一种中断(不管是什么优先级)一旦得到响应,与它同级的中断不能再中断它。到响应,与它同级的中断不能再中断它。 中断系统内部包含着两个不可寻址的中断系统内部包含着两个不可寻址的
26、“优先级激优先级激活活”触发器。一个指示某高优先级的中断正在得到服务,所触发器。一个指示某高优先级的中断正在得到服务,所有后来的中断都被阻断。另一个指示某个低优先级的中断正有后来的中断都被阻断。另一个指示某个低优先级的中断正在得到服务,所有同级的中断请求都被阻断,但不阻断高优在得到服务,所有同级的中断请求都被阻断,但不阻断高优先级中断请求。先级中断请求。 o当当CPU同时收到几个同一优先级的中断请求时,哪一个的请同时收到几个同一优先级的中断请求时,哪一个的请求将优先得到服务,取决于内部的硬件查询顺序,求将优先得到服务,取决于内部的硬件查询顺序,CPU将按将按自然权优先级顺序确定响应哪个中断请求
27、,其自然权优先级自然权优先级顺序确定响应哪个中断请求,其自然权优先级由硬件形成,次序可参见表由硬件形成,次序可参见表6-1中所示中所示 CPU在每个机器周期的在每个机器周期的S5P2期间,各中断标志顺序采样相应的中期间,各中断标志顺序采样相应的中断源。在下一个机器周期的断源。在下一个机器周期的S6期间按优先级的顺序查询各中断标志,若查期间按优先级的顺序查询各中断标志,若查询到某中断标志为询到某中断标志为1,则按优先级的高低进行处理,即响应中断;,则按优先级的高低进行处理,即响应中断; 响应中断后,响应中断后,CPU首先使被响应中断的相应首先使被响应中断的相应“优先级激活优先级激活”触发器触发器
28、置位,以阻挠同级和低优先级的中断的响应。然后,执行硬件生成的长调置位,以阻挠同级和低优先级的中断的响应。然后,执行硬件生成的长调用指令用指令“LCALL”,将程序计数器,将程序计数器PC的内容压入堆栈中保护起来,断点地的内容压入堆栈中保护起来,断点地址的入栈次序是:先低位地址入栈,再高位地址入栈,堆栈指针的值被加址的入栈次序是:先低位地址入栈,再高位地址入栈,堆栈指针的值被加2; 将对应中断源的中断矢量地址装入程序计数器将对应中断源的中断矢量地址装入程序计数器PC,使程序转向该,使程序转向该中断矢量地址,去执行中断服务程序;中断矢量地址,去执行中断服务程序; 中断服务程序由中断矢量地址开始执行
29、,直至遇到中断服务程序由中断矢量地址开始执行,直至遇到RETI为止;为止; 执行执行RETI指令,从堆栈中弹出断点地址进入指令,从堆栈中弹出断点地址进入PC,先弹出高位地址,先弹出高位地址,后弹出低位地址,堆栈指针减后弹出低位地址,堆栈指针减2,恢复原程序的执行。,恢复原程序的执行。 注意!注意!CPU响应中断请求,转而执行中断服务程序,响应中断请求,转而执行中断服务程序,在执行中断返回指令在执行中断返回指令RETI前,中断请求信号前,中断请求信号必须以硬件或软件方式撤除,否则将会再次必须以硬件或软件方式撤除,否则将会再次引起中断而引起出错。引起中断而引起出错。 o同级或高优先级的中断正在进行
30、中。同级或高优先级的中断正在进行中。o现在的机器周期还不是执行指令的最后一个机器周期,即正在现在的机器周期还不是执行指令的最后一个机器周期,即正在执行的指令还没完成前,不响应任何中断。执行的指令还没完成前,不响应任何中断。o正在执行的是中断返回指令正在执行的是中断返回指令RETI或是访问专用寄存器或是访问专用寄存器IE、IP的指令。的指令。 中断系统规定:在执行完这些指令之后,不中断系统规定:在执行完这些指令之后,不会马上响应中断,至少再执行一条其它指令后才会响应。会马上响应中断,至少再执行一条其它指令后才会响应。 一般,在一般,在单级中断系统单级中断系统 中,中断的响应时间中,中断的响应时间
31、最短为最短为3个机器周期,最长个机器周期,最长为为8个机器周期。个机器周期。因为:因为:o查中断请求标志位占查中断请求标志位占1个机器周期,如果这时满足中断响应条件,下一条个机器周期,如果这时满足中断响应条件,下一条执行执行“LCLLA”指令,需指令,需2个机器周期,这样个机器周期,这样机器周期。机器周期。o如果如果正在执行的是中断返回指令正在执行的是中断返回指令RETI或是访问专用寄存器或是访问专用寄存器IE、IP的指的指令,令,占占2个机器周期;个机器周期;执行完后再继续执行一条其它指令,若该指令恰好执行完后再继续执行一条其它指令,若该指令恰好是是4个机器个机器周期的周期的指令;再加上指令
32、;再加上执行执行“LCALL”指令的指令的2个机器周期,这个机器周期,这样样机器周期。机器周期。o如果正在处理如果正在处理同级或高优先级的中断,则同级或高优先级的中断,则还需取还需取决于决于正在处理中的服务程序时间。正在处理中的服务程序时间。 IE0/IE1:外部中断申请标志位(由硬件自动置位(由硬件自动置位 ,中断响应后转向中断,中断响应后转向中断服务程序时,由硬件自动清服务程序时,由硬件自动清0 )。)。 =0:没有外部中断申请; =1:有外部中断申请。TI/RI:串行口发送/接收中断申请标志位(由硬件自动置位,必须由用户在由硬件自动置位,必须由用户在中断服务程序中用软件清中断服务程序中用
33、软件清0)。)。 =0:没有串行口发送/接收中断申请; =1:有串行口发送/接收中断申请。TF0/TF1:定时器溢出中断申请标志位(由硬件自动置位)。 =0:定时器未溢出; =1:定时器溢出(由全“1”变成全“0”)时由硬件自动置位,申请中断,中断被CPU响应后由硬件硬件自动清零。 1、中断请求信号可以由外部设备发出,是随机、中断请求信号可以由外部设备发出,是随机的,而子程序调用是由软件编排好的。的,而子程序调用是由软件编排好的。2、中断响应后由固定的矢量地址转入中断服务、中断响应后由固定的矢量地址转入中断服务程序,而子程序地址是由软件设定的。程序,而子程序地址是由软件设定的。3、中断响应是受
34、控的,其响应时间会受到一些、中断响应是受控的,其响应时间会受到一些因素的影响,而子程序的响应时间是固定的。因素的影响,而子程序的响应时间是固定的。MCS-51的中断应用编程的中断应用编程 1、外部中断编程举例、外部中断编程举例硬件原理如图所示,将硬件原理如图所示,将 P1.4P1.7 作为输入位,作为输入位,P1.0P1.3作为输出位。希望将开作为输出位。希望将开关所设的数据读入单片机内,并关所设的数据读入单片机内,并通过通过 P1.0P1.3 输出来驱动发光输出来驱动发光二极管,以检查二极管,以检查 P1.4P1.7 输入输入的电平情况(若输入为高电平则的电平情况(若输入为高电平则相应的相应
35、的 LED 亮)。现要求采用亮)。现要求采用中断边沿触发方式,每中断一次中断边沿触发方式,每中断一次,完成一次读,完成一次读/写操作。写操作。LEDINT0 P1.7 P1.6 P1.5 P1.480C51 P1.3 P1.2 P1.1 P1.0RRLEDR+5V+5V+5V图图解:采用外部中断解:采用外部中断0,当,当 端输入脉冲有下降沿跳变时,发出中断请求,端输入脉冲有下降沿跳变时,发出中断请求,中断服务程序的矢量地址为中断服务程序的矢量地址为0003H;P1.0P1.3中任何一位输出高电平中任何一位输出高电平“1”时,时,相应的发光二极管就会发光。程序清单如下:相应的发光二极管就会发光。
36、程序清单如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INSER ;转向中断服务程序;转向中断服务程序 ORG 0100H ;主程序;主程序 MAIN: SETB EX0 ;允许外部中断;允许外部中断0中断中断 SETB IT0 ;选择边沿触发方式;选择边沿触发方式 SETB EA ;CPU开中断开中断 WAIT: SJMP WAIT ;等待中断;等待中断 ORG 0200H ;中断服务程序;中断服务程序 INSER:MOV A,#0F0H MOV P1,A ;设;设P1.4P1.7作为输入作为输入 MOV A,P1 ;取开关状态;取开关状态 SWAP A ;A
37、的高、低四位互换的高、低四位互换 MOV P1,A ;输出驱动;输出驱动LED发光发光 RETI ;中断返回;中断返回 ENDINT02、中断优先级调度举例、中断优先级调度举例例、例、上例中,要求当上例中,要求当T0引脚上有脉冲加入后,发光二引脚上有脉冲加入后,发光二极管的显示状态将被保持。极管的显示状态将被保持。 解:可设解:可设T0为计数方式为计数方式2,并在中断优先级寄存器,并在中断优先级寄存器IP中,把中,把T0设置成高优先级。在设置成高优先级。在T0的中断服务程序中屏的中断服务程序中屏蔽外部中断蔽外部中断 ,则,则P1.0P1.3的输出将被保持。的输出将被保持。 当当T0引脚出现负跳
38、变时,即向引脚出现负跳变时,即向CPU申请中断,故此申请中断,故此时的计数初值应为时的计数初值应为X0=0FFH。方式控制寄存器。方式控制寄存器TMOD设设定为定为#06H。程序清单如下:。程序清单如下:INT0ORG 0000HAJMP MAINORG 0003H ;外部中断;外部中断0入口地址入口地址AJMP INSER ;转向;转向 中断服务程序中断服务程序INT0 ORG000BH ;T0溢出中断入口地址溢出中断入口地址 AJMP INTA ;转向;转向T0中断服务程序中断服务程序 ORG 0100H ;主程序;主程序MAIN: MOV TMOD,#06H ;设;设T0为计数方式为计数
39、方式2 MOVTL0,#0FFH ;设;设TL0初值初值 MOVTH0,#0FFH ;设;设TH0初值初值 SETB EX0 ;允许外部中断;允许外部中断0中断中断 SETB IT0 ;选择边沿触发方式;选择边沿触发方式 SETB ET0 ;允许;允许T0溢出中断溢出中断 SETB PT0 ;置;置T0溢出中断为高优先级溢出中断为高优先级 SETB TR0 ;启动计数;启动计数 SETB EA ;CPU中断开放中断开放WAIT: SJMP WAIT ;等待中断;等待中断ORG 0200H ; 中断服务程序中断服务程序INSER: MOV A,#0F0H MOV P1,A ;设;设P1.4P1.
40、7作为输入作为输入MOV A,P1 ;取开关状态;取开关状态SWAP A ;A的高、低四位互换的高、低四位互换MOV P1,A ;输出驱动;输出驱动LED发光发光RETI ;中断返回;中断返回ORG 0300H ;T0溢出中断服务程序溢出中断服务程序INTA: CLR EX0 ;屏蔽外部中断;屏蔽外部中断0中断中断RETI ENDINT0MCS-51的中断扩展的中断扩展1、通过定时器、通过定时器/计数器扩展计数器扩展 2、通过、通过I/O口扩展口扩展1、通过定时器、通过定时器/计数器扩展计数器扩展o即将定时器即将定时器/计数器计数器T0、T1的溢出中断改作外部中的溢出中断改作外部中断源。断源。
41、 MCS-51单片机有两个定时器单片机有两个定时器/计数器计数器T0、T1 ,当设置为计,当设置为计数方式,计数初值为满量程(如方式数方式,计数初值为满量程(如方式1时计数初值为时计数初值为FFFFH)时,)时,一旦外部从其引脚输入一个负跳变信号,计数器加一旦外部从其引脚输入一个负跳变信号,计数器加1,产生中断请,产生中断请求,其入口地址为求,其入口地址为T0、T1溢出中断的入口地址。因此,我们可以溢出中断的入口地址。因此,我们可以把外部中断源作为边沿触发输入信号,接至定时器的把外部中断源作为边沿触发输入信号,接至定时器的T0或或T1引脚引脚上,该定时器的溢出中断标志及中断服务程序作为扩充外部
42、中断源上,该定时器的溢出中断标志及中断服务程序作为扩充外部中断源的标志和中断服务程序。的标志和中断服务程序。2、通过、通过I/O口扩展口扩展o即通过一个外部中断源和即通过一个外部中断源和n个个I/O口线扩展口线扩展n-1个外个外部中断源部中断源 利用利用MCS-51的外部中断的外部中断 输入线输入线 ,通过线或的关系,通过线或的关系连接到多个外部中断源上;连接到多个外部中断源上;同时,利用输入端口线作为同时,利用输入端口线作为各中断源的识别线。各中断源的识别线。4#1#2#3#图图6-5 用用I/O口扩展外部中断源口扩展外部中断源Vcc80C51P1.0P1.1P1.2P1.3INT0iINT
43、 ORG 0003H LJMP INTRP0INTRP0:PUSH PSW PUSHA ; 资源保护资源保护 JBP1.0,DV1 JBP1.1,DV2 JBP1.2,DV3 JBP1.3,DV4 EXIT:POP ACC POP PSW RETI图中无论哪一个外设输出高电平提出中断请求,都可以通过程序查询图中无论哪一个外设输出高电平提出中断请求,都可以通过程序查询P1.0P1.3的逻辑电平来获知。优先级设为的逻辑电平来获知。优先级设为1#装置最高,装置最高, 4#装置最低。软件查询时由最高装置最低。软件查询时由最高至最低的顺序查询。有关的中断服务程序段如下:至最低的顺序查询。有关的中断服务程序段如下:DV1: ;1#装置的中断服务程序装置的中断服务程序 AJMP EXITDV2: ;2#装置的中断服务程序装置的中断服务程序 AJMP EXITDV3: ;3#装置的中断服务程序装置的中断服务程序AJMP EXITDV4: ;4#装置的中断服务程序装置的中断服务程序 AJMP EXIT通过扩展的通过扩展的1#4#装置的中断源,由查询顺序规定了它们之间的优先级别装置的中断源,由查询顺序规定了它们之间的优先级别 定时器定时器/ /计数器应用举例计数器应用举例 例题例题 设一只发光二极管LED和8051的P1.0脚相连。当P1.0脚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械加工采购制度
- 设备采购标准管理制度
- 商业批发企业采购制度
- 红酒代理采购管理制度范本
- 中煤采购制度
- 中石化采购制度汇编
- 采购物料质量把控制度
- 产品采购信息管理制度
- 采购质量验证制度范本
- 保安服务采购制度
- 重庆市制造业领域吸纳高校毕业生急需紧缺岗位目录(2024-2025)征
- 高中数学三年教学规划
- 保卫科部门绩效考核标准
- 《食品安全监测与风险评估》课件
- 硫磺购销合同协议
- 课件:《习近平新时代中国特色社会主义思想学习纲要(2023年版)》第八章 中华人民共和国的成立与中国社会主义建设道路的探索
- 《明清中国版图的奠定与面临的挑战》单元教学设计- 近代前夜的盛世与危机
- 人员退休欢送会34
- DB21T 2385-2014 玉米高产耕层土壤改良技术规程
- 2024年全国中学生生物学联赛试题含答案
- 大学生心理健康与发展学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论