单片机定时计数工作原理..

上传人:suns****4568 文档编号:93086342 上传时间:2019-07-16 格式:PPT 页数:79 大小:2.07MB
返回 下载 相关 举报
单片机定时计数工作原理.._第1页
第1页 / 共79页
单片机定时计数工作原理.._第2页
第2页 / 共79页
单片机定时计数工作原理.._第3页
第3页 / 共79页
单片机定时计数工作原理.._第4页
第4页 / 共79页
单片机定时计数工作原理.._第5页
第5页 / 共79页
点击查看更多>>
资源描述

《单片机定时计数工作原理..》由会员分享,可在线阅读,更多相关《单片机定时计数工作原理..(79页珍藏版)》请在金锄头文库上搜索。

1、第六章 单片微机的定时器/计数器 原理及应用,通常采用以下三种方法来实现定时或计数: 1硬件法 硬件定时功能完全由硬件电路完成,不占用CPU时间。但当要求改变定时时间时,只能通过改变电路中的元件参数来实现,很不灵活。 2软件法 软件定时是执行一段循环程序来进行时间延时,优点是无额外的硬件开销,时间比较精确。但牺牲了CPU的时间。 3可编程定时器计数器,6.1 概述,可编程定时器计数器最大特点是可以通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。有专门的可编程定时器计数器芯片可供选用,比如Intel 8253。还有一些日历时钟芯片,如菲利浦公司的PCF8583等。

2、目前单片微机中往往已配备了定时器计数器(timercounter)。 80C51芯片内包含有两个16位的定时器计数器:T0和T1;而80C52包含有三个16位的定时器计数器:T0、T1和T2;在80C51系列的部分产品(如Philips公司的80C552)中,还包含有一个用做看门狗的8位定时器(T3)。 定时器计数器的核心是一个加1计数器其基本功能是计数加1。,若是对单片微机的T0、T1 或T2引脚上输入的一个1到0的跳变进行计数增l,即是计数功能。 若是对单片微机内部的机器周期进行计数,从而得到定时,这就是定时功能。 定时功能和计数功能的设定和控制都是通过软件来设定的。 80C51的定时器/

3、计数器除了可用作定时器或计数器之外,还可用作串行接口的波特率发生器。,定时器计数器T0、T1 的内部结构简图示于图61中。从图中可以看出,定时器计数器T0、T1由以下几部分组成: 计数器TH0、TL0和TH1、TL1; 特殊功能寄存器TMOD、TCON; 时钟分频器; 输入引脚T0、T1。,6.2 定时器计数器T0、T1, 定时器计数器T0、T1 的方式寄存器TMOD 字节地址为89H。 TMOD的格式如下:低4位用来定义T0,高4位用来定义T1,6.2.1 与定时器计数器T0、T1有关的特殊功能寄存器,D7 D6 D5 D4 D3 D2 D1 D0,T1,T0,各位的意义如下: GATE门控

4、位。 GATE1时,由外部中断引脚、和TR0、TR1共同来启动定时器。当 引脚为高电平时,TR0置位启动定时器T0;当引脚为高电平时,TR1置位,启动定时器T1。 GATE0时,仅由TR0和TR1置位来启动定时器T0和T1。,CT功能选择位。 C/T1时,选择计数功能;C/T0时,选择定时功能。 T0、T1 的计数、定时功能是通过TMOD中的位来选择的。 定时器,设置C/T0 计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值增1。每个机器周期等于12个振荡周期,故计数速率为振荡周期的112。当采用12MHz的晶体时,计数速率为1MHz。定时器的定时时间,与系统的振荡频率fosc、计数器的长

5、度和初始值等有关。 计数器,设置C/T1 这时,通过引脚T0(P3.4)和T1(P3.5)对外部信号进行计数。在每个机器周期的S5P2期间,CPU采样引脚的输入电平。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,此后的机器周期S3P1期间,新的计数值装入计数器。,所以检测一个1到0的跳变 需要两个机器周期,故计数脉冲频率不能高于振荡脉冲频率的124。 M1、M0工作方式选择位。 由于有M1和M0两位,可以有四种工作方式,如表61所示。 定时器计数器T0、T1 的控制寄存器TCON 控制寄存器TCON是一个逐位定义的8位寄存器,字节地址为88H,位寻址的地址为88H8FH。其格

6、式如下:,其中各位的意义如下: TF1(TCON7)定时器计数器T1的溢出标志。 T1溢出时,该位由内部硬件置位。若中断开放,即响应中断,进入中断服务程序后,由硬件自动清0;若中断禁止,可用于判跳,用软件清0。 TR1(TCON6)T1的运行控制位。 用软件控制,置 l时,启动 T1;清0时,停止 T1。 TF0(TCON5)T0的溢出标志。 T0溢出时,该位由内部硬件置位。若中断开放,即响应中断,进入中断服务程序后,由硬件自动清0;若中断禁止,可用于判跳,用软件清0。 TR0(TCON4)T0的运行控制位。 用软件控制,置1时,启动T0;清 0时,停止 T0。,IE1(TCON3)外部中断1

7、下降沿触发标志位。 IE0(TCONI)外部中断0下降沿触发标志位。 IT1(TCON0)外部中断1触发类型选择位。 IT0(TCON0)外部中断0触发类型选择位。 TCON的低4位与中断有关,已在第五章“中断系统”中讨论过。 复位后,TCON的所有位均清0。T0和T1均是关断的。 定时器计数器T0、T1 的数据寄存器 由TH1(地址为8DH)、TL1(地址为8BH)和TH0(地址为8CH)、TL0(地址为8AH)寄存器所组成。复位后,所有这四个寄存器全部清零。 定时器/计数器中断, 中断允许寄存器IE EA位-中断允许总控制位 ET0位、ET1位、ET2位-T0、T1和T2的中断允许控制位。

8、 某位=0,则禁止对应定时器/计数器的中断。 某位=1,则允许对应定时器/计数器的中断。 中断矢量 定时器T0:000BH 定时器T1:001BH 定时器T2:002BH, 中断优先级寄存器IP PT0位、PT1位、PT2位-T0、T1和T2中断优先级控制位。 某位为0,则相应的定时器/计数器的中断为低优先级; 某位为1,则相应的定时器/计数器的中断为高优先级。,从图62中可看到: C/T位的电平为“0”或“1”,用来设定是作定时器或计数器。 门控位GATE可用作对INTx引脚上的高电平时间进行计量。由图62上可看出,当GATE0时,A点为高电平,定时器计数器的启动停止由 TRx决定。TRx1

9、,定时器计数器启动;TRx0,定时器计数器停止。 当GATE1时A点的电位由INTx决定,因而B点的电位就由TRx和INTx决定,即定时器计数器的启动停止由TRx和INTx两个条件决定。 计数溢出时,TFx置位。如果中断允许,CPU响应中断并转入中断服务程序,由内部硬件清TFx。TFx也可以由程序查询和清零。 方式1:16位定时器/计数器 当TMOD中的M10、M0l时,选定方式1工作。,方式1时,T0、T1的逻辑结构如图63所示。这种方式下,计数寄存器由16位组成,THx高八位和TLx的低8位。 计数时,TLx溢出后向THx进位,THx溢出后将TFx置位,如果中断允许,CPU响应中断并转入中

10、断服务程序,由内部硬件清TFx。TFx也可以由程序查询和清零。 方式2:定时常数自动重装载的8位定时器/计数器 当TMOD中的M11、M00时,选定方式2工作。这种方式是将16位计数寄存器分为两个8位寄存器,组成一个可重载的8位计数寄存器。方式2时定时器/计数器T0、T1的逻辑结构如图64所示。 在方式2中,TLx作为8位计数寄存器,THx作为8位计数常数寄存器。 当TLx计数溢出时,一方面将TFx置位,并向CPU申请中断;另一方面将THx的内容重新装入TLx中,继续计数。,根据对TMOD寄存器中M1和M0的设定,T0可选择四种不同的工作方式,而T1只具有三种工作方式(即方式0、方式1和方式2

11、)。 方式0:13位定时器/计数器 当TMOD中的M10、M00时,选定方式0工作。方式0时的结构如图62所示。这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)和TLx的低5位(32分频的定标器)构成。TLx的高3位未用。 计数时,TLx的低5位溢出后向THx进位,THx溢出后将TFx置位,并向CPU申请中断。,6.2.2 定时器计数器T0、T1 的工作方式,重新装入不影响THx的内容。 方式2适合于作为串行口波特率发生器使用。 方式3 当TMOD中的M1l、M01时,选定方式3工作。这种方式是是将T0分为一个8位定时器计数器和一个 8位定时器,TL0用于 8位定时器计数器,TH

12、0用于8位定时器。方式3时定时器计数器T0、T1逻辑结构分别如图65、图66所示。 工作方式3下的定时器/计数器T0 方式3时,T0的结构见图65 所示。其工作与方式0时相同,只是此时的计数器为8位计数器TL0,它占用了T0的GATE、INT0、启动停止控制位TR0、T0引脚 (P3.4) 以及 计数溢出标志位TF 0和T0的中断矢量(地址为000BH)等。,TH0所构成的定时器只能作为定时器用,因为此时的外部引脚T0已为定时器计数器TL0所占用。这时它占用了T1的启动停止控制位TR1、计数溢出标志位TF1及T1中断矢量(地址为001BH) 。 T0方式3时,T1的结构如图66所示,T1只可选

13、方式0、1或2。由于此时计数溢出标志位TF1及T1中断矢量(地址为001BH)已被TH0所占用,所以T1仅能作为波特率发生器或其它不用中断的地方。作串行口波特率发生器时,T1的计数输出直接去串行口,只需设置好工作方式,串行口波特率发生器自动开始运行,如要停止工作,只需向T1送一个设为工作方式3的控制字即可。,80C52中的T2是一个16位的、具有自动重装载和捕获能力的定时器计数器。在T2的内部,除了两个8位计数器TL2、TH2和控制寄存器T2CON及T2MOD之外,还设置有捕获寄存器RCAP2L(低字节)和RCAP2H(高字节)。T2的计数脉冲源可以有两个:一个是内部机器周期,另一个是由T2(

14、P10)端输入的外部计数脉冲。T2象T0、T1一样,既可用做定时器,也可用做计数器,由T2CON中的C/T位的电平所决定。T2有3种工作方式自动重装载、俘获和波特率发生器方式,由T2CON中有关位决定。 输入引脚T2(P10)是外部计数脉冲输入端;输入引脚T2EX(P11)是外部控制信号输入端。,6.3 定时器计数器T2, 控制寄存器 T2CON T2控制寄存器T2CON是一个逐位定义的特殊功能寄存器,其字节地址为C8H,位地址为C8HCFH。其格式如下:,TF2(T2CON7)T2 溢出标志。 定时器T2溢出时置位,并申请中断。只能靠软件清除。但在波特率发生器方式下,也即RCLK1或TCLK

15、1时,定时器溢出不对TF2置位。 EXF2(T2CON6)T2外部标志。 当EXEN21,且T2EX引脚上出现负跳变而造成捕获或重装载时,,6.3.1 定时器计数器T2中的特殊功能寄存器,EXF2置位,申请中断。这时若已允许T2中断,CPU将响应中断,转向中断服务程序。EXF2要靠软件来清除。 RCLK(T2CON5)接收时钟标志。 靠软件置位或清除,用以选择T2或T1作串行口接收波特率发生器。RCLK1时,用T2溢出脉冲作为串行口的接收时钟;RCLK0时,用T1的溢出脉冲作接收时钟。 TCLK(T2CON4)发送时钟标志。 靠软件置位或清除,用以选择T2或T1作串行口发送波特率发生器。TCLKl时,用T2溢出脉冲作为串行口的发送时钟;TCLK0时,用T1的溢出脉冲作发送时钟。 EXEN2(T2CON3)T2外部允许标志。,靠软件设置或清除,以允许或禁止用外部信号来触发捕获或重装载操作。当EXEN2l时,若T2未用作串行口的波特率发生器,则在T2EX端出现的信号负跳变时,将造成T2捕获或重装载,并置EXF2标志为 1,请求中断。EXEN20时,T2EX端的外部信号不起作用。 TR2(T2CON2)T2运行控制位。 靠软件设置或清除,以决定T2是否运行。TR21,启动T2,否则停止。 C/T2(T2CON1)T2的定时器方式或计数器方式选择位

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

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号