单片机 第5章 MCS-51单片机的中断系统及定时器.ppt
-
资源ID:82795478
资源大小:1.01MB
全文页数:94页
- 资源格式: PPT
下载积分:16金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
单片机 第5章 MCS-51单片机的中断系统及定时器.ppt
第五章 MCS-51单片机的中断系统及定时器内容提要内容提要:5.15.1 输入输入/输出的控制方式输出的控制方式5.2 5.2 MCS-51MCS-51单片机的中断系统单片机的中断系统55.4.4 MCS-51MCS-51单片机的单片机的定时定时/计数器计数器5.3 5.3 MCS-51MCS-51单片机中断处理单片机中断处理过程过程5.15.1 输入输入/输出的控制方式输出的控制方式一、无条件传送一、无条件传送(同步传送)方式同步传送)方式二、程序查询传送(异步传送)方式二、程序查询传送(异步传送)方式三、中断传送方式三、中断传送方式四、直接存储器存取(四、直接存储器存取(DMA)方式方式5.2 5.2 MCS-51MCS-51单片机的中断单片机的中断系统系统5.2.1MCS-51中断系统的结构中断系统的结构5.2.2MCS-51的中断源的中断源5.2.3MCS-51中断的控制中断的控制5.2.1MCS-51中断系统的结构中断系统的结构一、概念一、概念与上对比,单片机中也有同样的问题。与上对比,单片机中也有同样的问题。CPU正正在执行原程序,突然,被意外事情打断,转去执行在执行原程序,突然,被意外事情打断,转去执行新程序。新程序。CPU执行新程序结束后,又回到原程序中执行新程序结束后,又回到原程序中继续执行。这样的过程就叫继续执行。这样的过程就叫。中断中断 什么叫中断?什么叫中断?举例:某同学正在教室写作业,忽然被人叫出去,回来举例:某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。后,继续写作业。这就是生活中中断的例子。中断过程示意图中断源中断源中断请求(中断申请)中断请求(中断申请)中断响应过程中断响应过程中断服务中断服务中断返回中断返回中断的几个概念中断的几个概念日常生活中日常生活中的中断与的中断与单片机单片机中断的比较:中断的比较:某同学某同学 单片机单片机 过程说明过程说明正在看书正在看书 执行主程序执行主程序有人找出去有人找出去 中断信号中断信号 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点出去做事出去做事 执行中断程序执行中断程序 中断服务中断服务回来继续看回来继续看 返回主程序返回主程序 中断返回中断返回 对突发事故,做出紧急处理。对突发事故,做出紧急处理。根据现场随时变化的各种参数、信息,做出实时监控。根据现场随时变化的各种参数、信息,做出实时监控。CPUCPU与外部设备并行工作与外部设备并行工作,以中断方式相联系以中断方式相联系,提高工提高工作效率。作效率。解决快速解决快速CPU与慢速外设之间的矛盾。与慢速外设之间的矛盾。在多项外部设备同时提出中断请求情况下,在多项外部设备同时提出中断请求情况下,CPUCPU能根能根据轻重缓急响应外设的中断请求。据轻重缓急响应外设的中断请求。中断的作用:中断的作用:8051单片机中断系统的组成:由五个中断源、四个中断控制寄存器构成。1、五个中断源、五个中断源:2个外部、2个定时器/计数器、1个串行通信中断2、四个中断控制寄存器、四个中断控制寄存器(标志、允许、优先级标志、允许、优先级):中断控制寄存器IE、中断优先级寄存器IP、定时器/计数器控制寄存器TCON(6位)、串行通信寄存器SCON(2位),控制中断类型、中断的开关、中断的优先级二、二、8051中断系统结构中断系统结构对于对于MCS-51单片机中断系统的组成可以用一句话来讲,单片机中断系统的组成可以用一句话来讲,叫做:叫做:“五源中断,两级管理五源中断,两级管理”中中断断源源的的中中断断请请求求,如如何何通通知知CPU?利用中断请求标志位来通知!利用中断请求标志位来通知!5.2.2MCS-51的中断源的中断源一、中断源1外部中断源由P3.2端口线引入,低电平或下降沿引起。由P3.3端口线引入,低电平或下降沿引起。2内部中断源T0:定时/计数器0中断,由T0回零溢出引起。T1:定时/计数器1中断,由T1回零溢出引起。TI/RI:串行I/O中断,完成一帧字符发送/接收引起。以上以上6个中断请求标志位分别分布在个中断请求标志位分别分布在TCON、SCON两个寄存器中。两个寄存器中。TCONIT0IE0IT1IE1TR0TF0TR1TF1TF1T1的溢出中断标志的溢出中断标志硬件置硬件置1,硬件清,硬件清0(也可软件清(也可软件清0)TF0T0的溢出中断标志。(同的溢出中断标志。(同TF1,只是针对只是针对T0的)的)IE1外部中断外部中断1(/INT1)请求标志。请求标志。外部有中断请求时,硬件使外部有中断请求时,硬件使IE1置置1,硬件清,硬件清0。IE0外部中断外部中断0(/INT0)请求标志。请求标志。IT1外部中断外部中断1(/INT1)触发类型控制位。触发类型控制位。IT1=0,低电平触发。低电平触发。IT1=1 IT1=1,下降沿触发。下降沿触发。IT0外中断外中断0(/INT0)触发类型控制位,用法同触发类型控制位,用法同IT1。二、中断请求标志二、中断请求标志定时定时/计数器控制寄存器计数器控制寄存器SCON RI TIRB8TB8RENSM2SM1SM0TI串口发送中断标志位。串口发送中断标志位。发送完数据,硬件使发送完数据,硬件使TI置置1,软件清,软件清0(CLRTI)RI串行口接收中断标志位。串行口接收中断标志位。硬件置硬件置1,软件清,软件清0。串行口控制寄存器在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。一、中断允许控制即中断屏蔽(第一级管理)一、中断允许控制即中断屏蔽(第一级管理)IEEX0ET0EX1ET1 ES EAEA总控制位总控制位“”未定义位未定义位ES串口控制位串口控制位ET1T1中断控制位中断控制位EX1/INT1控制位控制位ET0T0中断控制位中断控制位EX0/INT0控制位控制位若为若为“1”,开关接通,允,开关接通,允许许例如例如SETBEA若为若为“0”,开关断开,不,开关断开,不允许允许例如例如CLRIE.75.2.3MCS-51中断的控制(两级管理)中断的控制(两级管理)例:假设某单片机系统允许片内定时器/计数器中断,禁止其它的中断。试设置IE的值。方法一:用字节操作指令 MOV IE,#8AH或 MOV 0A8H,#8AH方法二:用位操作指令 SETB ET0 SETB ET1 SETB EA二、中断优先级控制(第二级管理)二、中断优先级控制(第二级管理)为什么要有为什么要有中断优先级中断优先级?CPU同同一一时时间间只只能能响响应应一一个个中中断断请请求求。若若同同时时来来了了两两个个或或两两个个以上中断请求,就必须有先有后。以上中断请求,就必须有先有后。!为此将为此将5个中断源分成高级、低级两个级别,高级优先,由个中断源分成高级、低级两个级别,高级优先,由IP控制。控制。IPPX0PT0PX1PT1 PSPS串口的中断优先级别串口的中断优先级别PT1定时定时/计数器计数器T1的中断优先级别的中断优先级别PX1外部中断外部中断1的中断优先级别的中断优先级别PT0定时定时/计数器计数器T0的中断优先级别的中断优先级别PX0外部中断外部中断0的中断优先级别的中断优先级别该位是该位是“1”时,为高级优先级时,为高级优先级该位是该位是“0”时,为低级优先级时,为低级优先级 中断优先级次序:中断优先级次序:(1)高优先级中断能够打断低优先级中断服务程序实现中断嵌套。(2)同级优先级的次序 相同优先级中断不能够打断其中断服务程序实现中断嵌套。同一级中的同一级中的5个中断源的优先顺序是个中断源的优先顺序是:/INT0中断中断T0溢出中断溢出中断/INT1中断中断T1溢出中断溢出中断串口中断串口中断高高低低出厂前已由厂家固化顺序出厂前已由厂家固化顺序事先约定事先约定中断优先原则:(概括为四句话)中断优先原则:(概括为四句话)1、低级不打断高级、低级不打断高级2、高级不睬低级、高级不睬低级3、同级不能打断、同级不能打断4、同级、同时中断、同级、同时中断,事先约定事先约定。例:假设某单片机系统片外中断为高优先级,片内中断为低优先级。试设置IP的值。方法一:用字节操作指令 MOV IP,#05H或 MOV 0B8H,#05H方法二:用位操作指令 SETB PX0 SETB PX1 CLR PS CLR PT0 CLR PT15.3 5.3 MCS-51MCS-51单片机中断处理单片机中断处理过程过程中断处理过程分为三个阶段:中断响应、中断处理过程分为三个阶段:中断响应、中断处理、中断返回中断处理、中断返回5.3.1中断响应条件和时间中断响应条件和时间5.3.2中断响应过程中断响应过程5.3.3中断返回中断返回5.3.4中断程序举例中断程序举例一、中断响应条件(一、中断响应条件(3条)条)(1)有中断请求;)有中断请求;(2)CPU开放中断,即开放中断,即EA=1;(3)对应的中断源允许中断;对应的中断源允许中断;只有同时满足这三个条件时,只有同时满足这三个条件时,CPU才有可能响应才有可能响应中断中断5.3.1中断响应条件和时间中断响应条件和时间单片机在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。中断得到响应后自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。CPU每个机器周期都需要顺序检查每个中断源,当检测到有中每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:断请求时,能否响应,还要看下述情况是否存在:(1)CPU正处理相同级别或更高级别的中断;正处理相同级别或更高级别的中断;(2)正在执行指令,还未到最后一个机器周期;)正在执行指令,还未到最后一个机器周期;(3)正在执行的指令是)正在执行的指令是RETI或访问或访问IP、IE指令,则执行完上指令,则执行完上 述指令后,再执行一条指令后,才会响应新中断。述指令后,再执行一条指令后,才会响应新中断。(38个机器周期个机器周期)1、基本响应时间、基本响应时间(3个机器周期个机器周期)(1)查询中断标志:)查询中断标志:1个机器周期;个机器周期;(2)转去执行中断服务程序:)转去执行中断服务程序:2个机器周期。个机器周期。2、额外的处理时间、额外的处理时间(05个机器周期个机器周期)RETI指令:指令:2个机器周期;个机器周期;MUL或或DIV指令:指令:4个机器周期。个机器周期。二、中断响应时间二、中断响应时间注意:注意:1)保护断点与保护现场以及恢复断点与恢复现场的区别。)保护断点与保护现场以及恢复断点与恢复现场的区别。2)外部中断响应时间在)外部中断响应时间在38个机器周期之间。个机器周期之间。利用外部中断实现单步操作利用外部中断实现单步操作:8031+5v在主程序中在主程序中:CLRIT0SETBEASETBPX0SETBEX0在中断服务子程序中在中断服务子程序中:JNBP3.2,$JBP3.2,$RETI响应过程:(假设已使某中断请求标志置响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用,)执行一个硬件子程序的调用,1)硬件清零相应中断请求标志()硬件清零相应中断请求标志(TI、RI除外)除外)2)将当前)将当前PC内容压入堆栈内容压入堆栈保护断点;保护断点;3)将中断服务子程序入口地址送)将中断服务子程序入口地址送PC转移。转移。(3 3)执行中断服务程序执行中断服务程序5.3.2中断响应过程中断响应过程五个中断源:五个中断源:入口地址入口地址外部中断外部中断0(/INT0)0003HT0溢出中断溢出中断000BH外部中断外部中断1(/INT1)0013HT1溢出中断溢出中断001BH串口中断串口中断0023H中断请求源(中断请求源(“五源中断五源中断”)返回过程:(返回过程:(RETI执行后)执行后)(1)使相应优先级状态触发器清)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送)从堆栈中弹出栈顶的两个字节内容送PC恢复断点。恢复断点。(3)CPU接着中断处继续执行原程序。接着中断处继续执行原程序。5.3.3中断返回中断返回5.3.4中断程序举例中断程序举例中断服务程序的结构中断服务程序的结构1、保护现场;、保护现场;2、处理中断的程序;、处理中断的程序;3、恢复现场;、恢复现场;4、中断返回:、中断返回:RETI编写中断服务程序编写中断服务程序应注意的几点应注意的几点1、中断程序入口处的处理;、中断程序入口处的处理;2、程序中可以禁止高级中断;、程序中可以禁止高级中断;3、在保护和恢复现场时可、在保护和恢复现场时可关闭关闭CPU中断,以免造成混中断,以免造成混乱。乱。多中断源系统多中断源系统当外部中断源多于中断输入引脚时,可采取以下措施:1.用定时器计数输入信号端T0、T1作外部中断入口引脚2.用串行口接收端RXD作外部中断入口引脚3.用一个中断入口接受多个外部中断源,并加入中断查询电路。处理外部中断举例处理外部中断举例 要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。一、跳变触发:每次跳变引起一次中断请求ORG0000H AJMP MAINORG0003H;中断入口AJMP PINT0ORG0100H;主程序 MAIN:SETB EA;开总允许开关 SETBEX0;开INT0中断 SETBIT0 ;负跳变触发中断 Here:SJMP Here ;相当于执行其 它任务 ORG0200H;中断服务程序 PINT0:CPL P1.0;改变LED RETI;返回主程序单片机单片机INT0P1.01+5V1软件等待按键释放。2硬件清除中断信号。电平触发:避免一次按键引起多次中断响应。电平触发:避免一次按键引起多次中断响应。单片机单片机INT0P1.01+5VORG 0000H;AJMP MAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序 MAIN:SETB EA ;开总允许开关 SETB EX0 ;开INT0中断 CLR IT0 ;低电平触发中断 Here:SJMP Here ;相当于执行其它 任务 ORG 0200H;中断服务程序 PINT0:CPL P1.0 ;改变LED WAIT:JNB P3.2,WAIT;等按键释放 RETI;返回主程序 中断处理流程小小结结1、MCS-51单单片片机机中中断断系系统统有有几几个个中中断断源源?分分别别是是什什么么?事先约定的优先顺序是怎样的?事先约定的优先顺序是怎样的?2、如何进行中断允许控制?如何进行中断优先级控制?、如何进行中断允许控制?如何进行中断优先级控制?3、中断优先的规则是什么?、中断优先的规则是什么?55.4.4 MCS-51MCS-51单片机的单片机的定时定时/计数器计数器5.4.1 5.4.1 定时定时/计数器的结构和工作原理计数器的结构和工作原理5.4.2 5.4.2 定时定时/计数器的控制计数器的控制5.4.3 5.4.3 定时定时/计数器的工作方式计数器的工作方式5.4.4 5.4.4 定时定时/计数器应用举例计数器应用举例在实时控制系统中,常常要求有实时时在实时控制系统中,常常要求有实时时钟以实现定时或延时控制,也常需要有钟以实现定时或延时控制,也常需要有计数功能实现对外界事件进行计数。计数功能实现对外界事件进行计数。常用的方法有常用的方法有:软件定时软件定时不可编程的硬件定时不可编程的硬件定时可编程的硬件定时可编程的硬件定时5.4.1 5.4.1 定时定时/计数器的结构和工作原理计数器的结构和工作原理一、定时一、定时/计数器的结构计数器的结构51子系列单片机内有子系列单片机内有两个两个十六位十六位增一增一定时定时/计数器计数器TH0计数值高八位计数值高八位TL0计数值低八位计数值低八位TH1计数值高八位计数值高八位TL1计数值低八位计数值低八位TMODTCON工作方式工作方式定时定时/计数控制计数控制控控制制控控制制定时/计数器结构定时/计数器简称定时器,8031单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。8051单片机内单片机内有两个有两个16位定时器位定时器/计数器计数器,常称为,常称为定时器定时器0和定时器和定时器1,简称为简称为T0和和T1;均可作定时器均可作定时器用也可计数器,用也可计数器,为加为加1计数器计数器;用于定时控制、延时、用于定时控制、延时、外部计数和检测等。其结构如下图所示。外部计数和检测等。其结构如下图所示。外部控制门外部控制门作为定时器用时的计时速度:作为定时器用时的计时速度:一个机器周期计数一个机器周期计数器加器加1,直至计满溢出。,直至计满溢出。如晶振为如晶振为12MHz的单片机,一个机器周期为的单片机,一个机器周期为1S,其其计数频率为振荡频率的计数频率为振荡频率的1/12。作为计数器用时的计数速度:作为计数器用时的计数速度:每两个机器周期计每两个机器周期计数器加数器加1,计数频率最高为振荡频率的,计数频率最高为振荡频率的1/24。在在S5P2对计数输入引脚对计数输入引脚T0、T1进行采样,进行采样,下降沿下降沿计数计数。说明:说明:定时器定时器/计数器在工计数器在工作期间不占用作期间不占用CPU的时间。的时间。1、工作方式控制寄存器、工作方式控制寄存器TMODTMOD M0 M1C /GATE M0 M1C /GATET1T0GATE门控位。门控位。GATE=0启动不受启动不受/INT0或或/INT1的控制;的控制;GATE=1启动受启动受/INT0或或/INT1的控制。的控制。C/T外部计数器外部计数器/定时器方式选择位定时器方式选择位C/T=0定时方式;定时方式;C/T=1计数方式计数方式。M1M0工作模式选择位(编程可决定四种工作模式)工作模式选择位(编程可决定四种工作模式)。5.4.2 5.4.2 定时定时/计数器的控制计数器的控制TMOD各位的意义如下:各位的意义如下:2、定时、定时/计数器控制寄存器计数器控制寄存器TCONTCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0能否启动定时能否启动定时/计数器工作与计数器工作与GATE有关,分两种情况:有关,分两种情况:GATE=0时,若时,若TRi=1,开启开启Ti计数工作;计数工作;(i=0或或1)若若TRi=0,停止停止Ti计数。计数。GATE=1时,若时,若TRi=1且且/INTi=1时开启时开启Ti计数;计数;若若TRi=1且且/INTi=0时不能开启时不能开启Ti计数。计数。若若TRi=0,停止停止Ti计数。计数。TR0定时定时/计数器计数器0运行控制位。运行控制位。软件置位,软件复位。软件置位,软件复位。TR1定时定时/计数器计数器1运行控制位。(运行控制位。(用法与用法与TR1类似)类似)TCON各位的意义如下:各位的意义如下:定时定时/计数器的四种工作模式计数器的四种工作模式M1M0模式模式说明说明00013位定时位定时/计数器计数器高八位高八位TH(70)+低五位低五位TL(40)01116位定时位定时/计数器计数器TH(70)+TL(70)1028位计数初值自动重装位计数初值自动重装TL(70)TH(70)113T0运行,而运行,而T1停止工作,停止工作,8位定时位定时/计数。计数。5.4.3 5.4.3 定时定时/计数器的工作方式计数器的工作方式1 1、机构计数寄存器、机构计数寄存器TLi低低5位位+THi8位位 (T1、T0的等效逻辑结构)的等效逻辑结构)TLi(5位)THi(8位)TFi中断控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=104 07一、方式一、方式0C/T=0定时;定时;C/T=1对外计数。对外计数。定时:定时:fosc/12=1/(12/fosc)=1/T波形等间隔,次数已定,时间确定波形等间隔,次数已定,时间确定即对机器周期进行计数。即对机器周期进行计数。左图定时时间为左图定时时间为N*TN个方波个方波T计数:脉冲不等间隔。计数:脉冲不等间隔。每个下降沿计数一次每个下降沿计数一次确认一次负跳变需两个机器周期,确认一次负跳变需两个机器周期,所以,计数频率最高为所以,计数频率最高为fosc/24。模式模式0工作时的构成工作时的构成:(1)运行)运行控制部分控制部分;(;(2)定时)定时/计数计数信号源信号源;(3)13位计数器;(位计数器;(4)溢出标志。)溢出标志。2、特点、特点1、可定时(、可定时(C/T=0)、)、可计数(可计数(C/T=1);2、13位方式(位方式(TL0、1的低的低5位和位和TH0、1的的8位);位);3、INT0、INT1是定时器是定时器/计数器计数器0、1的外部门,的外部门,GATE=1允许使用外部门(允许使用外部门(TR0、1应置应置1),此时用此时用外部门控制运行外部门控制运行GATE=0禁止外部门,此时用禁止外部门,此时用TR0、1控制运行;控制运行;3、计数值、计数值N和定时时间和定时时间t的计算的计算:N=213-初值初值Xt=(213-初值初值X)*振荡周期振荡周期*12=(213-初值初值X)*机器周期机器周期Tcy最大计数值为:最大计数值为:213=81924、应用举例、应用举例例:例:设定时器设定时器T0选择工作模式选择工作模式0,定时时间为,定时时间为1ms,osc=6MHz。试确定试确定T0初值,计算最大定时时间初值,计算最大定时时间T。解:解:(1)求)求T0的初值的初值X由公式:由公式:t=(213-T0初值初值)*机器周期机器周期Tcyt=1ms=1000s机器周期机器周期Tcy=12/osc=12/6000000s=2s得得1000=(213-X)*2所以初值所以初值X=8192-500=7692=1111000001100BT0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0H(2)最大定时时间最大定时时间T当当T0的初值的初值=0时为最大定时时间时为最大定时时间T=(213-0)*2=8192*2s=16384s=16.384ms769232商为高商为高8位,位,余数为低余数为低5位位例:例:设设T1以模式以模式0定时,定时时间为定时,定时时间为1ms,osc=6MHz,编程实现其定时功能。编程实现其定时功能。解解:(1)计算初值(同上,略)计算初值(同上,略)F0HTH0,0CHTL0(2)程序清单程序清单ORG0000HRESET:AJMPMAINORG000BHAJMPIT0P;主程序主程序ORG0100HMAIN:MOVSP,#5FHMOVTL0,#0CHMOVTH0,#0F0HSETBTR0SETBET0SETBEASJMP$;中断服务程序;中断服务程序ORG0120HIT0P:MOVTL0,#0CHMOVTH0,#0F0HCPLP1.0RETI例:例:利用利用T0的工作模式的工作模式0产生产生1ms的定时,编程实的定时,编程实现在现在P1.0引脚上输出周期为引脚上输出周期为2ms的方波。设单片机的的方波。设单片机的晶振频率晶振频率 osc=12MHz。解解:方法:方法:定时定时1ms,对对P1.0取反,然后继续定时取反,然后继续定时(1)设置模式字)设置模式字TMOD=*0000B=00000000B=00H(2)计算初值计算初值由公式:由公式:t=(213-T0初值初值)*机器周期机器周期t=1ms=1000s,机器周期机器周期Tcy=12/osc=12/12000000s=1s得得1000=(213-X)*1=(8192-X)*1所以初值所以初值X=7192=1110000011000BT0的低的低5位:位:11000B=18HT0的高的高8位:位:11100000B=E0H1ms2ms719232商为高商为高8位,位,余数为低余数为低5位位(3)程序清单)程序清单方法一:中断方式方法一:中断方式ORG0000HRESET:LJMPMAINORG000BHLJMPCTC0;主程序主程序ORG0030HMAIN:MOVSP,#5FHMOVTMOD,#0MOVTL0,#18HMOVTH0,#0E0HSETBEASETBET0SETBTR0SJMP$;中断服务程序中断服务程序ORG0100HCTC0:MOVTL0,#18HMOVTH0,#0E0HCPLP1.0RETI方法二:查询方式方法二:查询方式ORG0000HSTART:MOVSP,#5FHMOVTMOD,#0MOVTL0,#18HMOVTH0,#0E0HSETBTR0LOOP:JBCTF0,NEXTSJMPLOOPNEXT:MOVTL0,#18HMOVTH0,#0E0HCPLP1.0SJMPLOOP可替换为可替换为:LOOP:JNBTF0,$CLRTF0MOVTL0,#18H:与模式与模式0相似。与模式相似。与模式0的区别:计数位数不同。的区别:计数位数不同。计数计数 寄寄 存存 器:器:THi(高高8位)位)+TLi(低低8位)位)1、方式、方式1工作时的结构构成:工作时的结构构成:(1)定时)定时/计数信号源;(计数信号源;(2)运行控制部分;)运行控制部分;(3)16位计数器;位计数器;(4)溢出标志。)溢出标志。TFi中断TLi(8位)THi(8位)07 07控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1二、方式二、方式12、特点、特点1、可定时(、可定时(C/T=0)、)、可计数(可计数(C/T=1);2、16位方式位方式(TL0、1为低为低8位,位,TH0、1为高为高8位位);3、INT0、INT1是定时器是定时器/计数器计数器0、1的外部门,的外部门,GATE=1允许使用外部门(允许使用外部门(TR0、1应置应置1),此时此时用外部门控制运行用外部门控制运行GATE=0禁止外部门,此时用禁止外部门,此时用TR0、1控制运行;控制运行;4、计数值、计数值N和定时时间和定时时间t的计算的计算:N=216-初值初值Xt=(216-初值初值X)*机器周期机器周期Tcy最大计数值为:最大计数值为:216=65536例:用定时器例:用定时器T1产生一个产生一个50Hz的方波,由的方波,由P1.1输输出。使用程序查询方式,设出。使用程序查询方式,设 osc=12MHz。解解:(1)计算初值)计算初值方波周期方波周期T为:为:T=1/50s=0.02s=20ms定时时间为:定时时间为:t=T/2=10ms=10000s由公式:由公式:t=(216-X)*机器周期机器周期Tcy因因Tcy=1s,得得10000=(216-X)*1,10000=65536-XX=55536=D8F0H55536256商为高商为高8位,位,余数为低余数为低8位位 (2)模式字)模式字TMODTMOD=0001*B=10H(3)源程序源程序 ORG0000HMOVTMOD,#10HSETBTR1LP:MOVTH1,#0D8HMOVTL1,#0F0HJNBTF1,$CLRTF1CPLP1.1SJMPLP与模式与模式0、1的区别:的区别:1)计数位数不同;)计数位数不同;2)初值自动重装。)初值自动重装。1 1、方式方式2工作时的结构构成:工作时的结构构成:(1)定时)定时/计数计数信号源信号源;(2)运行控制运行控制部分;部分;(3)8位带装入位带装入计数器计数器;(4)溢出标志溢出标志。TFi中断TLi(8位)THi(8位)控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1三、方式三、方式22、特点、特点1、可定时(、可定时(C/T=0)、)、可计数(可计数(C/T=1);2、8位自动装入方式(位自动装入方式(TL0和和TH0装入相同数);装入相同数);3、INT0、INT1是定时器是定时器/计数器计数器0、1的外部门,的外部门,GATE=1允许使用外部门(允许使用外部门(TR0、1应置应置1),此时此时用外部门控制运行用外部门控制运行GATE=0禁止外部门,此时用禁止外部门,此时用TR0、1控制运行;控制运行;4、计数值、计数值N和定时时间和定时时间t的计算的计算:N=28-初值初值Xt=(28-初值初值X)*机器周期机器周期Tcy最大计数值为:最大计数值为:28=256说明:说明:常用常用T1以模式以模式2工作作为串口的波特率发生器工作作为串口的波特率发生器。例例:当当P3.4引脚上输入的电平发生负跳变时,从引脚上输入的电平发生负跳变时,从P1.0输出一个输出一个500s的同步脉冲,请编程实现该功能。的同步脉冲,请编程实现该功能。设设 osc=6MHz。解题思路:解题思路:先令先令T0以模式以模式2计数计数,其初值设为,其初值设为FFH,当当P3.4引引脚上输入的电平发生负跳变时,计数器加脚上输入的电平发生负跳变时,计数器加1使溢出标使溢出标志置志置1;然后令然后令T0以模式以模式2定时定时,使,使P1.0输出一个输出一个500s的同步负脉冲。的同步负脉冲。解解:1、T0以模式以模式2计数计数(1)计数初值)计数初值X=0FFH(2)模式字模式字TMOD=*0110B=06H2、T0以模式以模式2定时定时(1)定时初值)定时初值X计算计算t=500s,Tcy=2s由公式:由公式:t=(28-X)*机器周期机器周期Tcy得得500=(256-X)*2X=6(2)模式字模式字TMOD=*0010B=02H3、程序清单:、程序清单:ORG0000HSTART:MOVTMOD,#6;T0以模式以模式2计数计数MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0JNBTF0,$CLRTF0CLRTR0MOVTMOD,#2;T0以模式以模式2定时定时MOVTH0,#06MOVTL0,#06CLRP1.0SETBTR0JNBTF0,$SETBP1.0CLRTF0CLRTR0SJMPSTART例例:利用定时器利用定时器T1的模式的模式2对外部信号计数,要求对外部信号计数,要求每计满每计满100次对次对P1.0端取反。端取反。解:解:(1)计算计数初值)计算计数初值X100=28-XX=256-100=156=9CH(2)模式字模式字TMOD=0110*B=60H(3)程序清单程序清单;用中断方式;用中断方式ORG0000HMAIN:MOVTMOD,#60HMOVTL1,#156MOVTH1,#156MOVIE,#88HSETBTR1SJMP$;中断服务程序中断服务程序ORG001BHCPLP1.0RETIT0定定时时/计计数数,而而T1停停止止计计数数,但但可可作作波波特特率率发发生生器器。T0分分成成两两独独立立定定时时/计计数器数器TL0和和TH0。TL0使使用用C/T、GATE、TR0、/INT0、TF0定定时时/计计数数,TH0使使用用TR1、TF1因此,只能用于定时因此,只能用于定时1、方式、方式3工作时的结构构成:工作时的结构构成:(1)定时)定时/计数信号源;(计数信号源;(2)两个运行控制部分;)两个运行控制部分;(3)两个)两个8位计数器;位计数器;(4)两个溢出标志。)两个溢出标志。TF0中断控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1TL0(8位)振荡器1/12TH0TF1中断(a)TL0作8位定时/计数器(b)TH0作8位定时器四、方式四、方式3模式模式3时,时,T1可定时为模式可定时为模式0、1、2的定时的定时/计数,但不可中断,所计数,但不可中断,所以一般只作串口波特率发生器用。以一般只作串口波特率发生器用。振荡器1/12TL1(5位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)振荡器1/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)TLi(8位)THi(8位)振荡器1/12C/T=0C/T=1T1(P3.5)串行口(a)T0模式模式3时时T1模式模式0(b)T0模式模式3时时T1模式模式1(c)T0模式模式3时时T1模式模式22、特点、特点 1、仅、仅T0具有模式具有模式3,为,为两个两个8位方式位方式,用用TL0和和TH0(1)用用TL0的既的既可计数也可定时可计数也可定时,与其它模式完全相同;,与其它模式完全相同;(2)用)用TH0的的仅能够定时仅能够定时,不能用外部控制门,且占用,不能用外部控制门,且占用T1的资源的资源TR1和和TF1,有运行控制有运行控制和溢出和溢出中断请求中断请求。2、T1可以模式可以模式02定时或计数,但溢出无中断请求,定时或计数,但溢出无中断请求,且开关已经接通。且开关已经接通。常以模式常以模式2工作工作,作为串口的波特率,作为串口的波特率发生器。如下图所示。发生器。如下图所示。例设某单片机系统中已经使用了两个外部中断源,例设某单片机系统中已经使用了两个外部中断源,并置定时器并置定时器T1为模式为模式2,作串行口波特率发生器用。,作串行口波特率发生器用。现要求再增加一个外部中断源,并由现要求再增加一个外部中断源,并由P1.0引脚输出一引脚输出一个个5kHz的方波。的方波。osc=12MHz。解:解:1、确定定时器的工作方式、确定定时器的工作方式将将T0设置为模式设置为模式3计数,计数,T0的引脚接外部中断源,的引脚接外部中断源,TL0的计数初值设为的计数初值设为FFH,下降沿产生中断;下降沿产生中断;T0的的TH0为为8位定时器,可产生方波,用中断方式;位定时器,可产生方波,用中断方式;T1设设为模式为模式2定时,作串行口的波特率发生器。定时,作串行口的波特率发生器。2、计算各个初值、计算各个初值(1)TL0的初值的初值为为0FFH(2)TH0的初值的初值产生产生5kHz的方波的周期为:的方波的周期为:T=1/5000s=0.2ms=200s因此因此TH0的定时时间为:的定时时间为:t=T/2=100s,Tcy=1s得得100=(256-X)*TcyX=256-100=156TH1=TL1,由波特率值确定由波特率值确定3、TMOD值值:00100111B=27HTCON值值:01010101B=55H4、程序清单程序清单:(1)中断入口部分)中断入口部分:ORG0000HSTART:LJMPMAINLJMPE0INTORG000BHLJMPTL0INTORG0013HLJMPE1INTORG001BHLJMPTH0INT(2)主程序部分:)主程序部分:MAIN:MOVSP,#5FHMOVTMOD,#27HMOVTL0,#0FFHMOVTH0,#156MOVTH1,#dataMOVTL1,#dataMOVIE,#9FH;开中断开中断:(3)中断处理程序部分:)中断处理程序部分:TL0溢出中断服务程序溢出中断服务程序:TL0INT:MOVTL0,#0FFH(外部中断处理)外部中断处理)RETITH0溢出中断服务程序:溢出中断服务程序:TH0INT:MOVTH0,#156CPLP1.0ERTI(其它外部中断服务程序略)其它外部中断服务程序略)编程前确定参数:编程前确定参数:(1)定时)定时/计数器计数器T0、T1选择其一,选择其一,(2)工)工作作