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-1 MCS-51单片机的中断系统,5-2 MCS-51单片机的定时/计数器,5-1 MCS-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 串口控制位,ET1 T1中断控制位,EX1 /INT1控制位,ET0 T0中断控制位,EX0 /INT0控制位,若为“1”,开关接通,允许 例如 SETB EA 若为“0”,开关断开,不允许 例如 CLR IE.7,中断管理的第1级 解决是否允许中断问题,中断优先级,中断管理的第2级 解决谁优先问题,CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后处理顺序 5个中断源可分成高、低两个级别,高级优先,由IP控制,P S 串口的中断优先级别 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次,试编制程序。,ORG 0000H MAIN: AJMP 0100H ORG 0003H AJMP 0500H ORG 0100H ;主程序 SETB IT0 ;设置为边沿触发 SETB EA ;开系统中断 SETB EX0 ;开INT0中断 CLR PX0 ;设INT0为低优先级 ORG 0500H ;INT0中断服务程序入口 CPL P3.2 ;执行应用程序 RETI END,解: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、TL0 CT1的时间常数寄存器TH1、TL1 工作模式控制寄存器TMOD 工作状态寄存器TCON,相关引脚: CT0:T0、/INT0 CT1: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位,04 07,计数寄存器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)、模式3 T1停止计数,但可作波特率发生器 T0分成两独立定时/计数器TL0和TH0 TL0使用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=MN M=213=8192(模式0) M=216=65536(模式1) M=28=256 (模式2、模式3) 定时: X=MN =M t/T t为所要求的定时时间,T为机器周期,(3)工作模式 M1、M0,二、定时/计数器的应用,编程前确定参数:,(1)定时/计数器 T0、T1选择其一,(2)工作方式 C/T及GATE,编制初始化程序: (1)写TMOD GATE、C/T、M1、M0 (2)确定IE、IP PTi (3)写计数初值 THi、TLi; (4)启动计数 TRi,例1:单片机系统时钟为12MHz。利用定时/计数器0控制每隔1ms从P1.0口输出1个TCY宽度的负脉冲。,解: 1)、工作模式设置 设置CT0为模式0,即TMOD=XXXX0000B 2)、时间常数确定 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 取值的方法,7192 16 449 8 16 28 1 1 C,注意这里的长除方法,0001,1100,0001,1000B TH0=11100000H TL0=00011000,4)、程序设计 ORG 0000H AJMP 0100H ORG 000BH AJMP 0200H ORG 0100H MOV SP,#30H ;置栈顶 LOOP: CLR EA CLR 20H.0 ;清标志 MOV A,#0F0H ANL TMOD,A ;设置模式0 MOV TH0,#0E0H ;设置时间常数

温馨提示

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

评论

0/150

提交评论