第6章 中断系统与定时计数器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/1/31MCS-51单片机原理与应用1本章导读介绍MCS-51中断系统和定时/计数器,80C51有5个中断源和2个16位定时/计数器,对它们的控制是一个软硬结合的过程。一方面要了解它们的硬件结构原理,另一方面要学会对它们的初始化编程。第6章中断系统与定时计数器2020/1/31MCS-51单片机原理与应用2中断系统是单片机系统的重要组成,有了它单片机可以“一芯多用”,大大提高了单片机系统的效率。1.中断概念中断过程的示意如图,CPU只有在执行中断服务子程序的短暂时间里才同外设打交道,CPU的工作效率就大大提高,从而有可能为众多外设服务,实现了资源共享。6.1中断系统概述2020/1/31MCS-51单片机原理与应用3中断系统:能够实现中断功能的部件。中断与子程序的区别:子程序调用是事先在程序中用调用指令安排好中断调用在程序中却无法事先给定,中断没有相应的调用指令,而是由外设随机地通过硬件向CPU发中断请求,才把CPU拉到中断服务子程序中去的。整个中断是一个软硬件结合的过程。2020/1/31MCS-51单片机原理与应用4中断源:引起中断的原因或向CPU发出中断请求的来源。中断源可以是外设、实时控制中被控对象、故障源和单片机内部的定时/计数器、串行口等。2.中断的特点(1)实现分时操作数据传送时慢速的外设远远跟不上高速的CPU的节拍,采用中断方式,匹配了两者之间的传送速度,使得CPU也能可以与多个外设同时并行工作,实现分时操作。2020/1/31MCS-51单片机原理与应用5(2)实现实时处理各被控对象可以随时对CPU发中断请求,CPU也能够及时响应,进行处理。(3)进行故障处理由故障源向CPU发中断请求,再由CPU转到相应的故障处理服务程序,进行处理。3.中断系统的功能(1)中断响应与返回2020/1/31MCS-51单片机原理与应用6当外设向CPU发中断请求后,如果中断是开放的,则CPU在执行完当前指令后将响应这一中断请求。首先硬件自动执行保护断点,把压入堆栈保存;接着执行用户编写的保护现场程序,将相关寄存器内容和标志位状态压入堆栈保存;此后就转到相应外设的中断服务子程序并执行,一般在中断服务程序最后,执行用户编写的恢复现场程序,直到遇RETI指令,执行中断返回。当前PC2020/1/31MCS-51单片机原理与应用7(2)中断判优与中断嵌套中断系统根据轻重缓急给每个中断源规定了一个优先级别,当多个中断源同时向CPU发出中断请求时,CPU总是先响应优先级最高的中断请求,只有优先级高的中断处理结束后才能响应优先级低的中断。中断嵌套:当CPU正在处理某一中断时,若出现了更高优先级的中断请求,则CPU会暂停正在处理的的中断服务程序,保留这个程序的断点,转去响应更高优先级的中断处理.2020/1/31MCS-51单片机原理与应用8待高级中断处理结束后,再回到原中断服务程序,继续执行,这个过程称为中断嵌套。如果发出新的中断请求的中断源的优先级与正在处理的中断源同级或更低,则新中断请求将被屏蔽,直至正在处理的中断执行完毕,才能响应新的中断请求。2020/1/31MCS-51单片机原理与应用96.2.1中断系统结构框图与中断源1.中断系统8051中断系统提供5个中断源,2个中断优先级,可实现二级中断服务程序嵌套.5个中断源:2个为外部中断源,2个为片内定时/计数器T0和T1溢出中断TF0和TF1,1个为片内串行口的发送中断TI或接收中断RI。2020/1/31MCS-51单片机原理与应用102020/1/31MCS-51单片机原理与应用11中断系统涉及到的特殊功能寄存器有4个,其主要作用有3个方面。(1)中断请求标志:中断请求标志位由定时器控制寄存器TCON与串行控制寄存器SCON的相应位来锁存;(2)中断允许寄存器IE:控制CPU是否响应中断源的中断请求。(3)中断优先级寄存器IP:安排各中断源的优先级,每一个中断源可编程为高优先级中断或低优先级中断。2020/1/31MCS-51单片机原理与应用122.中断源(1)外部中断源两个外中断请求由和引脚输入,有电平触发和脉冲触发两种方式。由定时器控制寄存器TCON中IT0或IT1位状态来设定触发方式,由IE0或IE1来锁存中断请求标志。INT0INT12020/1/31MCS-51单片机原理与应用13以外中断1和定时器1控制位来说明。①IT1:外中断1触发方式控制位用软件置位或清除,IT1=1,选择外中断1为下降沿触发;IT0=0,选择外中断1为低电平触发。②IE1:外中断1中断请求标志位对于脉冲触发方式,当检测到引脚上出现的外部中断信号的下降沿时,由硬件置位,使IE1=1,请求中断;中断响应后由硬件自动清除,使IE1=0。INT12020/1/31MCS-51单片机原理与应用14对于低电平触发方式,当检测到上有效的低电平信号时,置位IE1=1,请求中断;但中断响应后硬件不会清除此标志,而仍保持IE1=1。所以用户应在中断服务程序撤消引脚上的低电平,以免CPU在中断返回后再次响应,引起一次请求,多次响应。中断系统在每个机器周期的S5P2检测一次,检测方式由中断触发方式定。INT1INT1INT12020/1/31MCS-51单片机原理与应用15低电平触发时要求引脚上的低电平一直保持到CPU响应中断为止;下降沿触发方式要求外中断请求信号的高低电平至少各保持一个机器周期,以使CPU在前一周期检测到高电平,而在后一周期检测到低电平,以确定中断请求的提出。TCON的高4位分别是定时器0、1的运行控制位TR0、TR1和中断标志位TF0、TF1。INT12020/1/31MCS-51单片机原理与应用16(2)定时/计数器溢出中断源定时/计数器溢出中断属于内部中断,常用于定时/计数控制。TCON的TF1、TF0分别是定时器1、0的中断溢出标志位。定时器1运行后,开始从设定的初值作加1计数,当最高位产生溢出时,由硬件置位,使TF1=1,请求中断;中断响应后由硬件自动清除,使TF1=0。2020/1/31MCS-51单片机原理与应用17(3)串行口中断源串行口的发送中断和接收中断也是内部中断,常用于串行通信,串行口的接收中断标志RI和发送中断标志TI锁存在串行口控制寄存器SCON的低2位。2020/1/31MCS-51单片机原理与应用18串口每发送完一帧串行数据,发送中断标志TI=1;每接收完一帧串行数据,接收中断标志RI=1。RI和TI向CPU发中断请求。当CPU响应中断后,首先需要判断RI和TI中哪一个是中断源,从而进入对应的中断处理程序。为此,可在串口中断服务程序中安排一条对RI和TI的状态的判断指令来区分。同样,中断响应后内部硬件电路不会自动清除中断标志RI和TI,所以也要在中断处理程序中由软件给以清除。2020/1/31MCS-51单片机原理与应用196.2.2中断控制寄存器1.中断允许寄存器IE中断系统通过IE中的中断允许总控位EA和各个中断源本身的中断允许控制位,对中断请求的开放和关闭进行两级控制。IE的字节地址为A8H,可位寻址,IE中写入的是中断控制字。2020/1/31MCS-51单片机原理与应用20图中各控制位的功能都是“1允许,0禁止”;ET0和EX0的含义分别与ET1和EX1相同;ET2为定时器T2的中断允许控制位,52系列单片机才有。单片机复位后,IE被全部清零。2020/1/31MCS-51单片机原理与应用21可通过程序置位或复位IE相应的位,实现中断允许或禁止。只有总控位EA和相应中断源的源控位都置1,该中断源的中断请求才会被CPU响应。如开放外中断1,可以用位操作指令:SETBEA;开中断,开放中断允许总闸SETBEX1;开放外中断1也可用字节操作指令:MOVIE,#10000100B2.中断优先级寄存器IP中断系统通过中断优先级控制寄存器IP,字节地址为2020/1/31MCS-51单片机原理与应用22B8H,可位寻址,图中各控制位对优先级的控制都是“1高级,0低级”;PT0和PX0的含义分别与PT1和PX1相同,PT2为定时器T2的中断允许控制位,52系列单片机才有。每个中断源的优先级都可以通过指令,对中断优先级控制寄存器IP中的相应位来设定。2020/1/31MCS-51单片机原理与应用23例如要将T0、串行口设置为高优先级,其余中断源设置为低优先级,可以用位操作指令:SETBPT0;PT0=1,设置定时器T0为高优先级SETBPS;PS=1,设置串行口为高优先级也可用字节操作指令:MOVIP,#00010010BCPU对中断优先级判定原则为:(1)正在执行的低优先级中断服务程序,能被高级中断请求中断,实现中断嵌套;2020/1/31MCS-51单片机原理与应用24(2)正在执行的高优先级中断服务程序,不能被同级或低级中断请求所中断;(3)对同一优先级并发中断请求,由内部的硬件查询逻辑,按自然优先级确定响应次序。自然优先级顺序由硬件形成,其排列的顺序是:外中断0→定时器0中断→外中断1→定时器1中断→串行口中断。复位后,IP被全部清零,所有的中断源为低级中断。2020/1/31MCS-51单片机原理与应用256.3中断响应1.完整的中断过程一个完整的中断过程可分为4个阶段:中断请求,中断响应,中断服务及中断返回。CPU在执行程序过程中,在每一个机器周期的S5P2期间,会对各个中断源进行采样。找到所有已触发的中断请求,并按照优先级和同级的优先权排好队,在下一机器周期,只要不受阻断,CPU就将响应其中优先级最高的中断请求。2020/1/31MCS-51单片机原理与应用26(1)同级或高优先级的中断正在进行中;(2)当前的机器周期还不是正在执行的指令的最后一个机器周期,也就是说,当前正在执行的指令完成前,不会响应中断。(3)正在执行的指令为RETI以及任何访问IE或IP的指令,也就是说,只有在这些指令后面至少要再执行完一条其它指令后才会响应中断请求。2020/1/31MCS-51单片机原理与应用27CPU响应中断的过程如下:(1)将相应的优先级状态触发器置1,以阻断后来的同级和低级的中断请求。(2)清零中断请求源标志,如TF1、TF0及下降沿触发的外部中断IE1、IE0。(3)把压入堆栈,产生执行一个硬件子程序调用,把相应的中断服务程序的入口地址送入PC。当前PC2020/1/31MCS-51单片机原理与应用28中断请求和中断响应过程由中断系统硬件自动完成,但中断服务程序由用户按照实际需要进行编写,用软件进行保护现场和恢复现场。CPU从中断入口开始执行中断服务程序,直至遇RETI指令为止,这一过程为中断处理过程。2020/1/31MCS-51单片机原理与应用29执行RETI指令时,将恢复断点,即恢复,使CPU返回断点处继续执行原主程序;同时清除在中断响应时所设置的优先级状态位,使其他中断请求能得到响应,这一功能是RET指令没有的。2.中断请求的撤除在中断返回前,必须撤除中断请求,否则会错误地引起再次中断。中断请求的撤除有以下几种情况:当前PC2020/1/31MCS-51单片机原理与应用30(1)对于定时器T0或Tl溢出中断与下降沿触发的外中断,CPU在响应中断后,会由硬件自动清除其中断标志位TF0或TF1与IE0或IE1,无须用户采取措施。(2)对于串行口中断,CPU在响应中断后,由于中断系统硬件不能自动清除中断请求标志位TI与RI,需要用户在中断服务程序中用指令将其清除。2020/1/31MCS-51单片机原理与应用31(3)对于电平触发方式的外中断,CPU在响应中断后,却无法对自己的引脚和进行控制;也不能用指令将其中断请求标志位IE0或IE1清除;需要另建外电路并配合相应指令来清除其中断请求。中断程序设计特色部分是要进行中断初始化编程,也就是对4个与中断有关的复位后它们全都被清零,按照中断控制要求必须对相关的控制位进行预置。INT1INT02020/1/31MCS-51单片机原理与应用32相邻中断源的入口地址只有8个字节,一般的中断服务程序是

1 / 68
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功