MCS-51的中断系统、定时.计数器.ppt_第1页
MCS-51的中断系统、定时.计数器.ppt_第2页
MCS-51的中断系统、定时.计数器.ppt_第3页
MCS-51的中断系统、定时.计数器.ppt_第4页
MCS-51的中断系统、定时.计数器.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章MCS-51的中断系统、定时/计数器,5-1MCS-51单片机的中断系统,5-2MCS-51单片机的定时/计数器,5-1MCS-51单片机中断系统,一、概述,当中央处理器CPU正在处理某件事情的时候,外部发生了某一更为重要或更为紧迫的事件,需要CPU暂时停下正在执行的工作去处理这一突发事件,之后再继续执行以前被暂停下来的工作,这个过程就叫中断,1、什么叫中断?,信息交换过程中,如果CPU完全采用查询方式等待诸如打印机这类低速设备,那么整个计算机系统将陷于严重的低效率运行状态。我们常利用中断去提高执行效率,CPU与外设的数据传送方式:1、无条件传送方式2、查询传送方式3、中断传送方式,中断常用于处理如:掉电、现场故障、外部强行干预等可能发生但未知发生时刻的事件中断也常用于CPU与外设之间的数据传输,实现与低速设备的同步。CPU与外部设备并行工作,以中断方式相联系,提高工作效率,2、中断的作用,掉电保护,信号采集,打印机串口通信,CPU中能够控制实现这种中断响应的逻辑机构称为中断系统。中断有以下优点:,实现故障处理,避免系统灾难。对突发事故,做出紧急处理,提高实时处理系统的即时性。根据现场随时变化的各种参数、信息,做出实时监控,3、中断响应与子程序调用的区别,子程序调用是程序设计者的主动行为,完全是计划内的任务,它是为主程序服务的,我们知道何时去调用子程序,也就是说,子程序的断点是已知的。但是,对于中断我们却不知道应该具体什么时候去执行中断响应程序,中断的断点是未知的,中断的发生也是随机的,也许有些中断永远都不会发生,中断响应就是停下正在执行的程序转而去执行另一个子程序。显然,中断响应的过程与子程序调用的作用基本相似,1、中断逻辑结构,二、MCS51单片机中断系统,中断允许与优先控制,中断入口地址发生,控制寄存器,2、中断源,5个中断源,外部中断,内部中断,INT0,INT1,CT1,定时器中断,串行口中断,CT0,可设置为电平或边沿触发,16位,4种方式,UART,全双工,2个中断优先级,高优先级,低优先级,中断逻辑,中断允许寄存器IE,中断优先权寄存器IP,中断的开/关设置,中断的优先权设置,每个中断源都可设置为高或低优先级,5个标志触发器,IE0、IE1以及TF0、TF1位于特殊功能寄存器TCON中TI、RI位于特殊功能寄存器SCON中,3、MCS51单片机的中断控制,4个特殊功能寄存器与中断控制相关,中断允许寄存器IE,中断优先权寄存器IP,定时/计数器状态寄存器TCON,串行口状态寄存器SCON(用2位),中断允许寄存器IE,IE:,EA总控制位,未定义位,ES串口控制位,ET1T1中断控制位,EX1/INT1控制位,ET0T0中断控制位,EX0/INT0控制位,若为“1”,开关接通,允许例如SETBEA若为“0”,开关断开,不允许例如CLRIE.7,中断管理的第1级解决是否允许中断问题,中断优先级,中断管理的第2级解决谁优先问题,CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后处理顺序5个中断源可分成高、低两个级别,高级优先,由IP控制,PS串口的中断优先级别PT1定时/计数器T1的中断优先级别PX1外部中断1的中断优先级别PT0定时/计数器T0的中断优先级别PX0外部中断0的中断优先级别,该位是“1”时,为高优先级该位是“0”时,为低优先级,同一级中的5个中断源的默认优先顺序,/INT0中断CT0溢出中断/INT1中断CT1溢出中断串口中断,高,低,复位时默认为同一级,中断优先原则:1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,按默认顺序响应,4、MCS-51中断的响应过程,中断源有请求CPU允许中断,即EA=1中断源允许中断,即中断允许寄存器IE相应位置1,中断被响应的前提条件:,无同级或高级中断正在服务现行指令执行到最后一个机器周期且已结束若现行指令为RETI或是访问特殊寄存器IE或IP的指令,则需执行完该指令以及紧随其后的另一条指令,在每个机器周期内,单片机都要对所有中断源进行顺序检测,并可在任一个周期的S6状态期间,找到所有有效的中断请求,并对其进行优先级排队。中断被响应的必要条件:,中断被响应的条件:,总结:系统中只有1个中断源时,响应时间为38个机器周期。若还有其它中断源,则响应时间由其优先级别以及具体应用程序执行情况而定,中断响应入口:,中断响应时间:,中断逻辑系统中有专门的中断入口矢量地址发生电路,当某中断源被CPU响应时,该电路负责将对应的中断源的中断入口地址提供给程序指针PC,外部中断请求信号在每个机器周期的S5P2期间被锁存到IE0或IE1,CPU在下一个机器周期才会查询到这些值。CPU响应中断时,需执行一条两个机器周期的调用指令,以转到相应的中断服务入口。这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,至少需3个机器周期,如在申请中断时,CPU正在执行乘除法指令,则至少需6个机器周期,如在申请中断时,CPU正在执行RETI或访问IE、IP指令,则至少需8个机器周期,响应过程:,假设某中断请求被响应,即获得系统权限,则:(1)置位相应低或高优先级有效触发器设置级别(2)执行一个硬件调用,清零相应中断请求标志(UART的TI、RI需软件清除)清除请求(3)将当前PC内容压入堆栈保护断点(4)将中断矢量地址送PC,中断服务,中断返回的过程即是RETI的执行过程。硬件自动从栈顶弹出的两个字节,送PC恢复断点,返回过程,单片机响应中断后,只保护断点而不保护程序现场。PC断点的保护由是硬件自动完成,而对ACC、PSW、DPTR、B、Rn等应用程序现场的保护则必须由软件在中断服务程序中完成,断点恢复硬件自动实现,现场恢复则同样由软件完成,可略去,单片机响应中断后,定时/计数器中断申请标志TF0和TF1以及外部中断申请标志IE0和IE1由硬件自动清除串行口中断申请标志TI和RI则不能由硬件自动清除,需采用软件清除,中断请求的撤除,系统硬件可以自动撤除外部中断申请标志IE0和IE1,但无法清除外部中断INT0和INT1申请源信号。因此,对于电平方式的外部中断,仍然存在对外部中断的重复响应的可能用户在编制中断服务程序时,一方面可以通过软件控制外部中断申请源复位,另一方面也应该采用诸如单稳态触发等方法对中断源进行预处理,图为一个典型的外部中断撤除电路,中断响应后,软件控制从P1.0口输出低电平0使D触发器置1,撤除外部中断申请,中断请求的撤除,外部中断源重复响应问题,例:图示MCS51单片机系统,开光每按下1次由P3.2口控制继电器翻转1次,试编制程序。,ORG0000HMAIN:AJMP0100HORG0003HAJMP0500HORG0100H;主程序SETBIT0;设置为边沿触发SETBEA;开系统中断SETBEX0;开INT0中断CLRPX0;设INT0为低优先级ORG0500H;INT0中断服务程序入口CPLP3.2;执行应用程序RETIEND,解:INT0设置为边沿触发方式。,设置,服务,入口,思考1、MCS-51单片机中断系统有几个中断源?分别是什么?事先约定的优先顺序是怎样的?2、IE和IE分别是什么?3、中断入口地址是哪些?4、一个中断源被响应的时间大约需多少?,18051单片机提供了几个中断源?它们的中断标志是什么?又如何清除陈这些中断标志?各中断源所对应的中断欠量地址是多少?28051单片机有几级中断优先级别?试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?若可能,则应如何设置中断源的中断级别?否则,请简述不可能的理出,(1)定时器T0溢出中断,定时器T1溢出中断,外中断0,外中断1,串行口中断;(2)串行口中断,外中断0,定时器T0滥出中断,外中断1,定时器T1溢出中断;(3)外中断0,定时器T1溢出中断,外中断1,定时器T0溢出中断,串行口中断;(4)外中断0,外中断1,串行口中断,定时器T0溢出中断,定时器T1溢出中断;3外部中断有几种触发方式?如何选择?4解释断点保护与现场保护?,作业,5-2定时/计数器,一、基本结构与功能,1.基本结构,2个16位可编程定时/计数器,可编程工作于4种模式:模式0、模式1、模式2、模式3,相关的寄存器包括:CT0的时间常数寄存器TH0、TL0CT1的时间常数寄存器TH1、TL1工作模式控制寄存器TMOD工作状态寄存器TCON,相关引脚:CT0:T0、/INT0CT1:T1、/INT1,在SFR存储体中,51子系列单片机内有2个十六位增1定时/计数器,有6个工作寄存器与之相关,2.工作寄存器,THi、TLi:设置计数器初值TMOD:设置工作模式(计数or定时、4种模式选择)TCON:设置工作状态(启or停),(1)工作方式控制寄存器TMOD,GATE门控位C/T定时/计数方式选择位M1、M0模式控制位,注意:TMOD不可以位寻址,定时/计数器逻辑结构,定时or计数?,开启or停止?,TRi启/停控制位(在SCON中)GATE门控位,对/INTi引脚实施门控/INTi引脚用于对外部脉宽信号进行测量,C/T定时/计数方式选择,都为1?,TRi、GATE、/INTi启/停控制开启的条件:TRi=1,同时GATE=0或TRi=1,同时GATE=1,/INTi1,软件置1,启动软件清0,停止,CTi溢出(由全1再加1变为全0时)使TFi=1,并申请中断系统响应中断服务后自动清除该标志,3、四种工作模式,(1)、模式013位,0407,计数寄存器TLi(低5位)+THi(高8位),计数:对Ti引脚外部脉冲计数,脉冲可以不等间隔,C/T=0定时;C/T=1对外计数,波形等间隔,次数已定,时间确定即对机器周期进行计数,每个下降沿计数一次确认一次负跳变需两个机器周期,所以,计数频率最高为fosc/24,定时:时钟基准为内部时钟源,fosc/12=1/(12/fosc)=1/TCY,(2)、模式116位计数寄存器:THi(高8位)+TLi(低8位)与模式0相似,区别仅为:计数位数不同,(3)模式28位自动重装载模式0、1的区别:1)计数位数不同2)初值自动重装,溢出后自动将THi中的初值送TLi,重新启动,模式2主要用于URAT波特率发生,(4)、模式3T1停止计数,但可作波特率发生器T0分成两独立定时/计数器TL0和TH0TL0使用C/T、GATE、TR0、/INT0、TF0定时/计数TH0使用TR1、TF1因此,只能用于定时,(a)TL0作8位定时/计数器,拆解位3个受限定的定时/计数器应用较少,模式3时,T1可定时为模式0、1、2的定时/计数,但不可中断,所以一般只作串口波特率发生器用,(a)T0模式3时T1模式0,(b)T0模式3时T1模式1,(c)T0模式3时T1模式2,(4)计数初值加1计数、16位,计数:X=MNM=213=8192(模式0)M=216=65536(模式1)M=28=256(模式2、模式3)定时:X=MN=Mt/Tt为所要求的定时时间,T为机器周期,(3)工作模式M1、M0,二、定时/计数器的应用,编程前确定参数:,(1)定时/计数器T0、T1选择其一,(2)工作方式C/T及GATE,编制初始化程序:(1)写TMODGATE、C/T、M1、M0(2)确定IE、IPPTi(3)写计数初值THi、TLi;(4)启动计数TRi,例1:单片机系统时钟为12MHz。利用定时/计数器0控制每隔1ms从P1.0口输出1个TCY宽度的负脉冲。,解:1)、工作模式设置设置CT0为模式0,即TMOD=XXXX0000B2)、时间常数确定C/T=0,选择系统时钟作为基准源,M1M0=00设置为方式0,C/T=0,选择系统时钟作为基准源,GATE0=0,不需要/INT0管脚参与,系统时钟=12106Hz设定时/计数器0为模式0,是13位定时/计数方式,采用加计数时间常数为X即计数器的初值X为即得X=7192=1C18H=0001,1100,0001,1000B取后13位为1110000011000B高8位送TH0=0E0H取低5位TL0的高3位无效,以000补齐,TL0=18H即TH0=0E0H,TL0=18H,注意这里TH0、TL0取值的方法,7192164498162811C,注意这里的长除方法,0001,1100,0001,1000BTH0=11100000HTL0=00011000,4)、程序设计ORG0000HAJMP0100HORG000BHAJMP0200HORG0100HMOVSP,#30H;置栈顶LOOP:CLREACLR20H.0;清标志MOVA,#0F0HANLTMOD,A;设置模式0MOVTH0,#0E0H;设置时间常数,3)、中断设置EA=1,开中断,ET0=1,开定时/计数器0中断,MOVTL0,#18HSETBET0;允许定时/计数器0中断SETBEA;开系统中断SETBTR0;启动定时/计数器0工作JNB20H.0,;定时未到1ms,等待SJMPLOOP;定时到1ms,从新启动定时ORG0200H;定时/计数器0中断服务程序CLRP1.0;输出1TCY低电平宽度脉冲SETBP1.0SETB20H.0;给出标志RETI,例2:系统时钟为12MHZ,试应用定时/计数器编制一程序,每隔50ms调用1次LED扫描程序。解:(应用模式1,略),例3:图为一个自动包装系统。单片机系统时钟为6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论