第5章中断与定时.ppt

上传人:s****8 文档编号:68701798 上传时间:2022-12-29 格式:PPT 页数:82 大小:1.13MB
返回 下载 相关 举报
第5章中断与定时.ppt_第1页
第1页 / 共82页
第5章中断与定时.ppt_第2页
第2页 / 共82页
点击查看更多>>
资源描述

《第5章中断与定时.ppt》由会员分享,可在线阅读,更多相关《第5章中断与定时.ppt(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第5 5章章 单片机的中断单片机的中断/定时系统定时系统 主要介绍:主要介绍:5.1 80C51的中断系统5.2 80C51的中断处理过程的中断处理过程5.3 80C51的定时的定时/计数器计数器 与上对比,单片机中也有同样的问题。与上对比,单片机中也有同样的问题。CPU正正 在执行原程序,突然,被意外事情打断,转去执行在执行原程序,突然,被意外事情打断,转去执行 新程序。新程序。CPU执行新程序结束后,又回到原程序中执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫继续执行。这样的过程就叫 。中断中断 什么叫中断?什么叫中断?举例:某同学正在教室写作业,忽然被人叫出去,回来举例:某

2、同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。后,继续写作业。这就是生活中中断的例子。5.1 80C51的中断系的中断系统统 5.1.1 80C515.1.1 80C51的中断系的中断系统结统结构构一、中断的概念一、中断的概念 CPUCPU在在处处理某一事件理某一事件A A时时,发发生了另一事件生了另一事件B B请请求求CPUCPU迅速去迅速去处处理(理(中断中断发发生生););CPUCPU暂时暂时中断当前的工作,中断当前的工作,转转去去处处理事件理事件B B(中中断响断响应应和中断服和中断服务务););待待CPUCPU将事件将事件B B处处理完理完毕毕后,

3、再回到原来事件后,再回到原来事件A A被被中断的地方中断的地方继续处继续处理事件理事件A A(中断返回中断返回),),这这一一过过程称程称为为中断中断 。引起引起CPU中断的根源,称为中断的根源,称为中断源中断源。中断源向。中断源向CPU提出提出的中断请求。的中断请求。CPU暂时中断原来的事务暂时中断原来的事务A,转去处理事件,转去处理事件B。对事件对事件B处理完毕后,再回到原来被中断的地方(即处理完毕后,再回到原来被中断的地方(即断点断点),),称为中断返回。实现上述中断功能的部件称为称为中断返回。实现上述中断功能的部件称为中断系统中断系统(中断机构)。(中断机构)。随着计算机技术的应用,人

4、们发现中断技随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速术不仅解决了快速主机与慢速I/O设备的数据设备的数据传送问题,而且还具有如下优点:传送问题,而且还具有如下优点:n 分时操作分时操作。CPU可以分时为多个可以分时为多个I/O设备服设备服务,提高了计算机的利用率;务,提高了计算机的利用率;n实时响应实时响应。CPU能够及时处理应用系统的随能够及时处理应用系统的随机事件,系统的实时性大大增强;机事件,系统的实时性大大增强;n可靠性高可靠性高。CPU具有处理设备故障及掉电等具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。突发性事件能力,从而使系统可靠性提高。二、

5、二、80C51中断系统的结构中断系统的结构 80C5180C51单片机的中断源共有单片机的中断源共有5 5个,其中个,其中2 2个为外部中个为外部中断源、断源、2 2个定时中断源和个定时中断源和1 1个串行中断源。个串行中断源。1 1、2 2个外部中断源个外部中断源 外外部部中中断断是是由由外外部部事事件件引引起起的的中中断断,分分别别由由引引脚脚P3.2P3.2和和P3.3 P3.3 引引入入外外部部中中断断请请求求。有有两两种种信信号号方方式式 ,可可通通过过设设置置控控制位制位ITXITX(X=0X=0,1 1)进行定义。)进行定义。2 2、2 2个定时中断源个定时中断源 定时中断是为单

6、片机的计数定时中断是为单片机的计数/定时器设置的中断。当定时定时器设置的中断。当定时器器TxTx对单片机内部定时脉冲或对外部计数脉冲进行计数发对单片机内部定时脉冲或对外部计数脉冲进行计数发生溢出时,置位生溢出时,置位TFxTFx,并向,并向CPUCPU申请中断。申请中断。3 3、1 1个串行中断个串行中断 串行中断是为串行数据传送的需要而设置的中断。当串串行中断是为串行数据传送的需要而设置的中断。当串行口接收完一帧串行数据时置位行口接收完一帧串行数据时置位RIRI或当串行口发送完一帧或当串行口发送完一帧串行数据时置位串行数据时置位TITI,向,向CPUCPU申请中断。申请中断。二、二、80C5

7、1中断系统的结构中断系统的结构 80C51的中断系统有的中断系统有5个中断源,个中断源,2个优先级,个优先级,可实现二级中断嵌套可实现二级中断嵌套。二、中断请求标志二、中断请求标志1、TCON的中断标志的中断标志IT0(TCON.0),外部中断),外部中断0触发方式控制位。触发方式控制位。当当IT0=0时,为电平触发方式。时,为电平触发方式。当当IT0=1时,为边沿触发方式(下降沿有效)。时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断),外部中断0中断请求标志位。中断请求标志位。IT1(TCON.2),外部中断),外部中断1触发方式控制位。触发方式控制位。IE1(TCON.

8、3),外部中断),外部中断1中断请求标志位。中断请求标志位。TF0(TCON.5),定时),定时/计数器计数器T0溢出中断请求标志位。溢出中断请求标志位。TF1(TCON.7),定时),定时/计数器计数器T1溢出中断请求标志位。溢出中断请求标志位。利用中断请求标志位来通知利用中断请求标志位来通知CPU中断请求!中断请求!TF1 T1的溢出中断标志的溢出中断标志 硬件置硬件置1,硬件清,硬件清0(也可软件清(也可软件清0)TF0 T0的溢出中断标志。(用法同的溢出中断标志。(用法同TF1,针对,针对T0的)的)IE1 外部中断外部中断1(/INT1)请求标志。请求标志。外部有中断请求时,硬件使外

9、部有中断请求时,硬件使IE1置置1,硬件清,硬件清0。IE0 外部中断外部中断0(/INT0)请求标志。请求标志。(用法同(用法同IE1)IT1 外部中断外部中断1(/INT1)触发类型控制位。触发类型控制位。IT1=0,低电平触发。低电平触发。IT1=1 IT1=1,下降沿触发。,下降沿触发。IT0 外中断外中断0(/INT0)触发类型控制位,用法同触发类型控制位,用法同IT1。2、SCON的中断标志的中断标志nRI(SCON.0),串行口接收中断标志位。当允),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由许串行口接收数据时,每接收完一个串行帧,由硬件置位硬件置位RI

10、。但是,。但是,RI必须由软件清除必须由软件清除。nTI(SCON.1),串行口发送中断标志位。当),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬就启动了发送过程。每发送完一个串行帧,由硬件置位件置位TI。CPU响应中断时,不能自动清除响应中断时,不能自动清除TI,TI必须由软件清除必须由软件清除。一、中断允许控制一、中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和屏对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器蔽是由中断允许寄存器IE控制的。控制的。5.1.3

11、80C515.1.3 80C51中断的控制中断的控制 nEX0(IE.0),外部中断,外部中断0允许位;允许位;nET0(IE.1),定时,定时/计数器计数器T0中断允许位;中断允许位;nEX1(IE.2),外部中断,外部中断1允许位;允许位;nET1(IE.3),定时,定时/计数器计数器T1中断允许位;中断允许位;nES(IE.4),串行口中断允许位;,串行口中断允许位;nEA(IE.7),CPU中断允许(总允许)位。中断允许(总允许)位。若为若为“1”,开关接通,允许,开关接通,允许例如例如 SETB EA若为若为“0”,开关断开,不允,开关断开,不允许许例如例如 CLR IE.7为什么要

12、有为什么要有中断优先级中断优先级?CPU同同一一时时间间只只能能响响应应一一个个中中断断请请求求。若若同同时时来来了了两两个个或或两两个个以上中断请求,就必须有先有后。以上中断请求,就必须有先有后。!为此将为此将5个中断源分成高级、低级两个级别,高级优先,由个中断源分成高级、低级两个级别,高级优先,由IP控制。控制。二、中断优先级控制二、中断优先级控制 80C51单片机有两个中断优先级,即可实现二单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器中断优先级寄存器IP中的相应位的状态来规定的中的相应位的状态来

13、规定的。nPX0(IP.0),外部中断),外部中断0优先级设定位;优先级设定位;nPT0(IP.1),定时),定时/计数器计数器T0优先级设定位;优先级设定位;nPX1(IP.2),外部中断),外部中断1优先级设定位;优先级设定位;nPT1(IP.3),定时),定时/计数器计数器T1优先级设定位;优先级设定位;nPS(IP.4),串行口优先级设定位。),串行口优先级设定位。该位是该位是“1”时,为高级优先时,为高级优先级级该位是该位是“0”时,为低级优先时,为低级优先级级 同一优先级中的中断申请不止一个时,则有中同一优先级中的中断申请不止一个时,则有中断优先权排队问题。断优先权排队问题。同一优

14、先级的中断优先权同一优先级的中断优先权排队,排队,由中断系统硬件确定的由中断系统硬件确定的自然优先级自然优先级形成,其排列如形成,其排列如所示:所示:80C51单片机的中断优先级有三条原则:单片机的中断优先级有三条原则:nCPU同时接收到几个中断时,同时接收到几个中断时,首先响应优先级别最首先响应优先级别最高的中断请求。高的中断请求。n正在进行的中断过程正在进行的中断过程不能被新的同级或低优先级的不能被新的同级或低优先级的中断请求所中断。中断请求所中断。n正在进行的低优先级中断服务,正在进行的低优先级中断服务,能被高优先级中断能被高优先级中断请求所中断。请求所中断。为了实现上述后两条原则,为了

15、实现上述后两条原则,中断系统内部设有两中断系统内部设有两个用户不能寻址的优先级状态触发器。个用户不能寻址的优先级状态触发器。其中一个置其中一个置1,表示正在响应高优先级的中断,它将阻断后来所,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置有的中断请求;另一个置1,表示正在响应低优先级,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。中断,它将阻断后来所有的低优先级中断请求。同一级中的同一级中的5个中断源的优先顺序是个中断源的优先顺序是:/INT0中断中断 T0溢出中断溢出中断 /INT1中断中断 T1溢出中断溢出中断 串口中断串口中断 高高低低出厂前已由厂家固化

16、顺序出厂前已由厂家固化顺序事先约定自然优先级事先约定自然优先级中断优先原则:(概括为四句话)中断优先原则:(概括为四句话)1、低级不打断高级、低级不打断高级2、高级不睬低级、高级不睬低级3、同级不能打断、同级不能打断4、同级、同时中断,事先约定。、同级、同时中断,事先约定。事件事件1事件事件2子程序子程序2子程序子程序1中断中断嵌套嵌套的概念:的概念:主程序主程序中断中断中断中断5.2 80C51单片机中断处理过程单片机中断处理过程 一、中断响应条件一、中断响应条件n 中断源有中断请求;中断源有中断请求;n 此中断源的中断允许位为此中断源的中断允许位为1;n CPU开中断(即开中断(即EA=1

17、)。)。同时满足时,同时满足时,CPU才有可能响应中断。才有可能响应中断。5.2.1 5.2.1 中断响中断响应应条件和条件和时间时间 CPU每个机器周期都需要顺序检查每个中断源,当检测到有中每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:断请求时,能否响应,还要看下述情况是否存在:(1)CPU正处理相同级别或更高级别的中断;正处理相同级别或更高级别的中断;(2)正在执行指令,还未到最后一个机器周期;)正在执行指令,还未到最后一个机器周期;(3)正在执行的指令是)正在执行的指令是RETI或访问或访问IP、IE指令,则执行完上指令,则执行完上 述指令

18、后,再执行一条指令后,才会响应新中断。述指令后,再执行一条指令后,才会响应新中断。日常生活中日常生活中的中断与的中断与单片机单片机中断的比较:中断的比较:某同学某同学 单片机单片机 过程说明过程说明正在看书正在看书 执行主程序执行主程序有人找出去有人找出去 中断信号中断信号 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈 保护断点保护断点出去做事出去做事 执行中断程序执行中断程序 中断服务中断服务回来继续看回来继续看 返回主程序返回主程序 中断返回中断返回中断服务的进入:中断服务的进入:CPU执行程序过程中,在每个

19、机器周期的执行程序过程中,在每个机器周期的S5P2期间,中断系统对各个中断源进行采样期间,中断系统对各个中断源进行采样。这些采样值在这些采样值在下一个下一个机器周期内按优先级和机器周期内按优先级和内部顺序被依次查询。内部顺序被依次查询。如果某个中断标志在上一个机器周期的如果某个中断标志在上一个机器周期的S5P2时被置成了时被置成了1,那么它将于现在的查询,那么它将于现在的查询周期中及时被发现。接着周期中及时被发现。接着CPU便执行一条由便执行一条由中断系统提供的硬件中断系统提供的硬件LCALL指令,转向被称指令,转向被称作中断向量的特定地址单元(作中断向量的特定地址单元(入口地址入口地址),)

20、,进入相应的中断服务程序。进入相应的中断服务程序。遇以下任一条件,硬件将受阻,不产生遇以下任一条件,硬件将受阻,不产生LCALL指令:指令:nCPU正在处理同级或高正在处理同级或高优先级中断;优先级中断;n当前查询当前查询的机器周期的机器周期不是所执行指令的最后一个机不是所执行指令的最后一个机器周期器周期。即在完成所执行指令前,不会响应中断,从。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;而保证指令在执行过程中不被打断;n正在执行正在执行的指令为的指令为RET、RETI或任何访问或任何访问IE或或IP寄寄存器的指令。即只有在这些指令后面至少再执行一条存器的指令。即只有

21、在这些指令后面至少再执行一条指令时才能接受中断请求。指令时才能接受中断请求。若由于上述条件的阻碍中断未能得到响应,当条件若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志却已不再有效,那么该中断将不被消失时该中断标志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经有效,但未获响应,查响应。就是说,中断标志曾经有效,但未获响应,查询过程在下个机器周期将重新进行。询过程在下个机器周期将重新进行。二、中断响应时间二、中断响应时间某中断的响应时序如图:某中断的响应时序如图:n若若M1周期的周期的S5P2前某中断生效,在前某中断生效,在S5P2期间其中期间其中断请求被锁存到相应的标志位

22、中去;断请求被锁存到相应的标志位中去;M2恰逢指令的恰逢指令的最后一个机器周期,且该指令不是最后一个机器周期,且该指令不是RETI或访问或访问IE、IP的指令。于是,的指令。于是,M3和和M4便可以执行硬件便可以执行硬件LCALL指指令,令,M5周期将进入了中断服务程序。周期将进入了中断服务程序。n80C51的中断响应时间(从标志置的中断响应时间(从标志置1到进入相应的中到进入相应的中断服务),至少要断服务),至少要3个完整的机器周期。个完整的机器周期。n将相应的优先级状态触发器置将相应的优先级状态触发器置1(以阻断(以阻断后来的同级或低级的中断请求)。后来的同级或低级的中断请求)。n执行一条

23、硬件执行一条硬件LCALL指令,即把程序计指令,即把程序计数器数器PC的内容压入堆栈保存,再将相应的的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入中断服务程序的入口地址送入PC。n执行中断服务程序。执行中断服务程序。5.2.2 5.2.2 中断响中断响应过应过程程 中断响应过程的前两步是由中断系统内中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由用部自动完成的,而中断服务程序则要由用户编写程序来完成。户编写程序来完成。5.2.3 5.2.3 中断返回中断返回RETI指令的具体功能是:指令的具体功能是:n将中断响应时压入堆栈保存的断点地址从栈将中断响应时压入堆栈保存

24、的断点地址从栈顶弹出送回顶弹出送回PC,CPU从原来中断的地方继续从原来中断的地方继续执行程序;执行程序;n 将相应中断优先级状态触发器清将相应中断优先级状态触发器清0,通知中,通知中断系统,中断服务程序已执行完毕。断系统,中断服务程序已执行完毕。注意,不能用注意,不能用RET指令代替指令代替RETI指令。在中指令。在中断服务程序中断服务程序中PUSH指令与指令与POP指令必须成对指令必须成对使用,否则不能正确返回断点使用,否则不能正确返回断点 。若外部中断定义为若外部中断定义为电平触发方式电平触发方式,中断标志位,中断标志位的状态随的状态随CPU在每个机器周期采样到的外部中断在每个机器周期采

25、样到的外部中断输入引脚的电平变化而变化,这样能提高输入引脚的电平变化而变化,这样能提高CPU对对外部中断请求的响应速度。但外部中断源若有请外部中断请求的响应速度。但外部中断源若有请求,必须把有效的求,必须把有效的低电平保持到请求获得响应时低电平保持到请求获得响应时为止为止,不然就会漏掉;,不然就会漏掉;而在中断服务程序结束之而在中断服务程序结束之前,中断源又必须撤消其有效的低电平前,中断源又必须撤消其有效的低电平,否则中,否则中断返回之后将再次产生中断。断返回之后将再次产生中断。电平触发方式适合于外部中断输入以低电平输入电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求

26、源的情况。例且中断服务程序能清除外部中断请求源的情况。例如,并行接口芯片如,并行接口芯片8255的中断请求线在接受读或的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便式的中断比较方便。若外部中断定义为若外部中断定义为边沿触发方式边沿触发方式,在相继连续的,在相继连续的两次采样中,一个周期采样到外部中断输入为高电两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在平,下一个周期采样到为低电平,则在IE0或或IE1中中将锁存一个逻辑将锁存一个逻辑1。即便是。即便是CPU暂时不能响应,暂时不能响应

27、,中中断申请标志也不会丢失断申请标志也不会丢失,直到,直到CPU响应此中断时才响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,清零。这样,为保证下降沿能被可靠地采样到,外外中断引脚上的高低电平(负脉冲的宽度)均至少要中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期保持一个机器周期(若晶振为(若晶振为12MHz时,为时,为1微秒)。微秒)。边沿触发方式适合于以负脉冲形式输入的外部中边沿触发方式适合于以负脉冲形式输入的外部中断请求,如断请求,如ADC0809的转换结束标志信号的转换结束标志信号EOC为为正脉冲,经反相后就可以作为正脉冲,经反相后就可以作为80C51的中断输入。的

28、中断输入。响应过程:(假设已使某中断请求标志置响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用,)执行一个硬件子程序的调用,1)硬件清零相应中断请求标志()硬件清零相应中断请求标志(TI、RI除外)除外)2)将当前)将当前PC内容压入堆栈内容压入堆栈保护断点;保护断点;3)将中断服务子程序入口地址送)将中断服务子程序入口地址送PC转移。转移。返回过程:(返回过程:(RETI执行后)执行后)(1)使相应优先级状态触发器清)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送)从堆栈中弹出栈顶的两个

29、字节内容送PC恢复断点。恢复断点。(3)CPU接着中断处继续执行原程序。接着中断处继续执行原程序。1 1中断初始化中断初始化n 设置堆栈指针设置堆栈指针SPSPn 定义中断优先级定义中断优先级n 定义外中断触发方式定义外中断触发方式n 开放中断开放中断n 安排好等待中断或中断发生前主程序应安排好等待中断或中断发生前主程序应 完成的操作内容完成的操作内容 5.2.4 中断系统的应用2 2现场保护和现场恢复现场保护和现场恢复3 3中断服务主程序中断服务主程序n 在中断服务入口地址设置一条跳转指令在中断服务入口地址设置一条跳转指令n 转移到中断服务程序的实际入口处;转移到中断服务程序的实际入口处;n

30、 根据需要保护现场根据需要保护现场n 中断源请求中断服务要求的操作;中断源请求中断服务要求的操作;n 恢复现场。与保护现场相对应,注意先进恢复现场。与保护现场相对应,注意先进 后出、后进先出操作原则;后出、后进先出操作原则;n 中断返回,最后一条指令必须是中断返回,最后一条指令必须是RETIRETI。中断系统示意图中断系统示意图 例例5-15-1 出租车计价器计程方法是车轮每运转出租车计价器计程方法是车轮每运转一圈产生一圈产生2 2个负脉冲,从外中断(个负脉冲,从外中断(P3.2P3.2)引)引脚输入,行驶里程为轮胎周长脚输入,行驶里程为轮胎周长运转圈数,运转圈数,设轮胎周长为设轮胎周长为2m

31、2m,试实时计算出租车行驶,试实时计算出租车行驶里程(单位米),数据由高字节到低字节依里程(单位米),数据由高字节到低字节依次存放于次存放于32H32H、31H31H、30H30H。分分析析:由由32H32H、31H31H、30H30H三三个个字字节节存存放放计计数数结结果果,最最大大数数值值为为2 22424-1=16777215-1=16777215次次,足足以以满满足足出出租租车车计计程程的的使使用用。程程序序在在初初始始化化时时,应应先先将将这这些些存存放放数数据据的的内内存存单单元元清清零零。另另外外,由由于于题题目目并并未未明明确确说说明明负负脉脉冲冲的的宽宽度度,并并且且硬硬件件

32、上上也也没没有有设设计计中中断断请请求求撤撤除除电电路路,所所以以应应该该将将外外部部中中断断的的触触发发方方式式设设置置为为下降沿脉冲触发方式下降沿脉冲触发方式。里里程程数数决决定定了了乘乘客客的的付付费费,必必须须准准确确,所所以以应应将将中中断断优优先先级级设设为为最最高高。中中断断服服务务程程序序主主要要任任务务是是完完成成对对32H32H、31H31H、30H30H三三字字节节的的加加1 1计计数数任任务务。主主程程序序应应完完成成中中断断初初始始化化任任务务,如如设设置置堆堆栈栈、设设定定中中断断优先级、开中断、对内存单元清零等。优先级、开中断、对内存单元清零等。经过以上分析,读者

33、可以划出程序设计的流程图,汇编语经过以上分析,读者可以划出程序设计的流程图,汇编语言程序如下:言程序如下:ORGORG 0000H 0000H ;复位地址复位地址 LJMPLJMP START START ;转初始化转初始化 ORGORG 0003H 0003H ;中断入口地址中断入口地址 LJMPLJMP EINT0 ;EINT0 ;转中断服务程序转中断服务程序 ORGORG 0030H 0030H ;定义主程序首地址定义主程序首地址START:MOV SP,#60H ;START:MOV SP,#60H ;置堆栈指针置堆栈指针 SETB IT0SETB IT0 ;置边沿触发方式置边沿触发方

34、式 MOV IP,#01H ;MOV IP,#01H ;置高优先级置高优先级 MOV 30H,#0 ;MOV 30H,#0 ;里程计数器清里程计数器清0 0 MOV 31H,#0 MOV 31H,#0 ;MOV 32H,#0 MOV 32H,#0 ;MOV IE,#81H ;MOV IE,#81H ;开中断开中断 LJMP$LJMP$;等待中断等待中断 ORG 0200H ;ORG 0200H ;中断服务子程序首地址中断服务子程序首地址EINT0:PUSH Acc ;EINT0:PUSH Acc ;保护现场保护现场 PUSH PSW ;PUSH PSW ;MOV A,30H ;MOV A,30

35、H ;读低读低8 8位计数器位计数器 ADD A,#1 ;ADD A,#1 ;低低8 8位计数器加位计数器加1m1m MOV 30H,A ;MOV 30H,A ;低低8 8位保存在位保存在30H30H单元单元 CLR ACLR A ;ADDC A,31H ;ADDC A,31H ;中中8 8位计数器加进位位计数器加进位 MOV 31H,A ;MOV 31H,A ;中中8 8位计数保存在位计数保存在31H31H单元单元 CLR ACLR A ;ADDC A,32H ;ADDC A,32H ;高高8 8位计数器加进位位计数器加进位 MOV 32H,A ;MOV 32H,A ;高高8 8位计数保存在

36、位计数保存在32H32H单元单元 POP PSWPOP PSW ;恢复现场恢复现场 POP Acc ;POP Acc ;RETI RETI ;中断返回中断返回 ENDEND例例5-25-2 如如图图5-75-7所所示示按按键键电电路路对对应应于于教教学学实实验验板板上上的的脉脉冲冲产产生生电电路路,每每按按一一次次按按键键会会在在单单片片机机引引脚脚产产生生一一个个脉脉冲冲,使使用用C51C51编编写写程程序序对对按按键键次次数数进进行行计计数。数。脉冲产生电路脉冲产生电路 5.3 80C51的定时的定时/计数器计数器 实现定时功能,实现定时功能,比较方便的办法是利用单比较方便的办法是利用单片

37、机内部的定时片机内部的定时/计数器计数器。也可以采用下面三。也可以采用下面三种方法:种方法:n软件定时软件定时:软件定时不占用硬件资源,但占用了:软件定时不占用硬件资源,但占用了CPU时间,降低了时间,降低了CPU的利用率。的利用率。n采用时基电路定时采用时基电路定时:例如采用:例如采用555电路,外接必要电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。件进行控制和修改,即不可编程。n采用扩展的可编程芯片定时采用扩展的可

38、编程芯片定时:这种定时芯片的定:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时芯片定时功能强,使用灵活。在单片机的定时/计数计数器不够用时,可以考虑进行扩展。器不够用时,可以考虑进行扩展。5.3.1 5.3.1 定定时时/计计数器的数器的结结构和工作原理构和工作原理 一、定时一、定时/计数器的结构计数器的结构 定时定时/计数器的实质是加计数器的实质是加1计数器(计数器(16位),由高位),由高8位和低位和低8位两个寄存器组成。位两个寄存器组成。TMOD是定时是定时/计数器的工作方式寄存计数器的工作

39、方式寄存器,确定工作方式和功能;器,确定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的启动和停止及设置溢出标志的启动和停止及设置溢出标志。51子系列单片机内有子系列单片机内有两个两个十六位十六位增一增一 定时定时/计数器计数器TH0计数值高八位计数值高八位TL0计数值低八位计数值低八位TH1计数值高八位计数值高八位TL1计数值低八位计数值低八位TMODTCON工作方式工作方式定时定时/计数控制计数控制控控 制制 控控制制二、定时二、定时/计数器的工作原理计数器的工作原理 加加1计数器计数器输入的计数脉冲有两个来源输入的计数脉冲有两个来源,一个是由一个是由系统的时钟振荡

40、器输出脉冲经系统的时钟振荡器输出脉冲经12分频后送来;一个分频后送来;一个是是T0或或T1引脚输入的外部脉冲源。每来一个脉冲计引脚输入的外部脉冲源。每来一个脉冲计数器加数器加1,当加到计数器为全,当加到计数器为全1时,再输入一个脉冲时,再输入一个脉冲就使计数器回零,且计数器的溢出使就使计数器回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向,向CPU发出中断请求(定时发出中断请求(定时/计数器中计数器中断允许时)。如果定时断允许时)。如果定时/计数器工作于定时模式,计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表则表示定时时间已到;如果工作于计数模式,则表示计数值已

41、满。示计数值已满。可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。计数器的计数值。n设置为定时器模式时设置为定时器模式时,加,加1计数器是对内部机器周期计数器是对内部机器周期计数(计数(1个机器周期等于个机器周期等于12个振荡周期,即计数频率个振荡周期,即计数频率为晶振频率的为晶振频率的1/12)。)。计数值计数值N乘以机器周期乘以机器周期Tcy就就是定时时间是定时时间t。n设置为设置为计数器模式时计数器模式时,外部事件计数脉冲由,外部事件计数脉冲由T0或或T1引脚输入到计数器。在每个机器周期的引脚输入到计数器。在每个机器周期的S5P2期间

42、采期间采样样T0、T1引脚电平。当某周期采样到一高电平输入,引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加而下一周期又采样到一低电平时,则计数器加1,更,更新的计数值在下一个机器周期的新的计数值在下一个机器周期的S3P1期间装入计数期间装入计数器。由于检测一个从器。由于检测一个从1到到0的下降沿需要的下降沿需要2个机器周期,个机器周期,因此要求被采样的电平至少要维持一个机器周期。因此要求被采样的电平至少要维持一个机器周期。当当晶振频率为晶振频率为12MHz时时,最高计数频率不超过,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于,即计数脉冲的周期要大于2

43、s。5.3.2 定时定时/计数器的控计数器的控制制 80C51单片机定时单片机定时/计数器的工作由两个特殊功计数器的工作由两个特殊功能寄存器控制。能寄存器控制。TMOD用于设置其工作方式;用于设置其工作方式;TCON用于控制其启动和中断申请。用于控制其启动和中断申请。一、工作方式寄存器一、工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于设置定时用于设置定时/计数器的计数器的工作方式,低四位用于工作方式,低四位用于T0,高四位用于,高四位用于T1。其格式。其格式如下:如下:TMOD M0 M1C /GATE M0 M1C /GATET1T0GATE 门控位。门控位。GATE=0

44、启动不受启动不受/INT0或或/INT1的控制;的控制;GATE=1 启动受启动受/INT0 或或/INT1 的控制。的控制。C/T 外部计数器外部计数器/定时器方式选择位定时器方式选择位 C/T=0 定时方式;定时方式;C/T=1 计数方式。计数方式。M1M0 工作模式选择位(编程可决定四种工作模式)工作模式选择位(编程可决定四种工作模式)。定时定时/计数器的四种工作模式计数器的四种工作模式 M1 M0 模式模式 说明说明 0 0 0 13位定时位定时/计数器计数器 高八位高八位TH(7 0)+低五位低五位TL(4 0)0 1 1 16位定时位定时/计数器计数器 TH(7 0)+TL(7 0

45、)1 0 2 8位计数初值自动重装的定时位计数初值自动重装的定时/计数器计数器 TL(7 0)TH(7 0)1 1 3 T0运行为两个独立的运行为两个独立的8位定时位定时/计数,计数,而而T1停止工作。停止工作。2、定时、定时/计数器控制寄存器计数器控制寄存器TCON TCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0 能否启动定时能否启动定时/计数器工作与计数器工作与GATE有关,分两种情况:有关,分两种情况:GATE=0 时,若时,若TRi=1,开启开启Ti计数工作;计数工作;(i=0或或1)若若TRi=0,停止停止Ti计数。计数。GATE=1 时,若时,若TRi=1 且且/

46、INTi=1时开启时开启Ti计数;计数;若若TRi=1 且且/INTi=0时不能开启时不能开启Ti计数。计数。若若TRi=0,停止停止Ti计数。计数。TR0 定时定时/计数器计数器0运行控制位。运行控制位。软件置位,软件复位。软件置位,软件复位。TR1 定时定时/计数器计数器1运行控制位。(运行控制位。(用法与用法与TR1类似)类似)C/T=0 定时;定时;C/T=1 对外计数。对外计数。定时:机器周期定时:机器周期Tcy=12/fosc 波形等间隔,次数已定,时间确定波形等间隔,次数已定,时间确定即对机器周期进行计数。即对机器周期进行计数。左图定时时间为左图定时时间为 N*TcyN个机器周期

47、个机器周期 Tcy计数:脉冲不等间隔。计数:脉冲不等间隔。每个下降沿计数一次每个下降沿计数一次 确认一次负跳变需两个机器周期确认一次负跳变需两个机器周期,所以,计数频率最高为所以,计数频率最高为fosc/24。5.3.3 定时定时/计数器的工作方式计数器的工作方式一、方式一、方式0 方式方式0为为13位计数位计数,由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位组成。位组成。TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢出时,溢出时,置位置位TCON中的中的TF0标志,向标志,向CPU发出中断请求。发出中断请求。计数寄存器计数寄存器TLi 低低5位位+TH

48、i8位位 (T1、T0的等效逻辑结构)的等效逻辑结构)TLi(5位)THi(8位)TFi中断控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=104 07门控位门控位GATE具有特殊的作用。当具有特殊的作用。当GATE=0时,经反相后使时,经反相后使或门输出为或门输出为1,此时仅由,此时仅由TR0控制与门的开启,与门输出控制与门的开启,与门输出1时,控制开关接通,计数开始;时,控制开关接通,计数开始;当当GATE=1时时,由外中断引,由外中断引脚信号控制或门的输出,此时控制脚信号控制或门的输出,此时控制与门的开启由外中断引脚与门的开启由外中断引脚信号和信号和TR0共同控制共

49、同控制。当。当TR0=1时,外中断引脚信号引脚的时,外中断引脚信号引脚的高电平启动计数高电平启动计数,外中断引脚信号引脚的,外中断引脚信号引脚的低电平停止计数低电平停止计数。这种方式常用来测量外中断引脚上正脉冲的宽度。这种方式常用来测量外中断引脚上正脉冲的宽度。计数初值计算的公式为:计数初值计算的公式为:定时器模式时定时器模式时有有:Nt/Tcy 定时器的初值还可以采用计数个数直接取补法获得。定时器的初值还可以采用计数个数直接取补法获得。计数模式时,计数脉冲是计数模式时,计数脉冲是T0引脚上的外部脉冲。引脚上的外部脉冲。二、方式二、方式1 方式方式1的计数位数是的计数位数是16位,由位,由TL

50、0作为低作为低8位、位、TH0作为高作为高8位,组成了位,组成了16位加位加1计数器计数器。计数个数与计数初值的关系为:计数个数与计数初值的关系为:与模式与模式0相似。相似。与模式与模式0的区别:计数位数不同。的区别:计数位数不同。计数计数 寄寄 存存 器:器:THi(高高8位)位)+TLi(低低8位)位)TFi中断TLi(8位)THi(8位)07 07控制BAC/T=0振荡器1/12&1TiTRiGATEINTiC/T=1 三、方式三、方式2 方式方式2为自动重装初值的为自动重装初值的8位计数方式。位计数方式。工作方式2特别适合于用作较精确的脉冲信号发生器。计数个数与计数初值的关系为计数个数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁