第6章__定时器_第1页
第6章__定时器_第2页
第6章__定时器_第3页
第6章__定时器_第4页
第6章__定时器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 定时器/计数器 MCS-51单片机内部共有两个 16位可编程定时/计数器:定时器/计数器0和定时器/计数器1(MCS-52比MCS-51多一个定时/计数器2)。在51单片机中,定时/计数器的定时功能和计数功能是由同一种硬件完成的。它们的区别在于计数器的计数脉冲来源于单片机的外部脉冲,而定时器的脉冲来源于单片机的内部(它的脉冲频率取决于单片机的晶振频率)。6.1 定时器/计数器的结构与工作原理6.1.1 硬件结构图图6.1.1 定时器定时器/计数器结构框图计数器结构框图6.1.2 定时/计数器的工作原理 定时器/计数器有两种用途:定时器和计数器。但一个定时器/计数器(T1或T0)不能既做

2、定时器,又做计数器。其实定时/计数器的核心是一个加1计数器,其脉冲来源有两个:一个是由系统的时钟晶振器输出脉冲经12分频后送来;另一个是由T0或T1引脚(P3.4或P3.5)输入的外部脉冲源提供。这就是51单片机中定时/计数器的定时功能和计数功能的区别(前者是定时器,后者是计数器)。 1、定时、定时/计数器的控制寄存器计数器的控制寄存器TCON TCON字节地址为88H,用于控制定时/计数器的启、停,标志定时器溢出和中断情况。可以按位寻址,其结构如表 TCON寄存器结构寄存器结构表表6.1.1 TCON寄存器结构寄存器结构 TCON寄存器各个位的功能寄存器各个位的功能 表表6.1.2 TCON

3、寄存器各个位的功能寄存器各个位的功能 2、定时器工作方式寄存器、定时器工作方式寄存器TMOD TMOD字节地址为89H,用来确定定时器的工作方式及功能选择。不能按位寻址。其结构如表 TMOD寄存器结构寄存器结构表表6.1.3 TMOD寄存器结构寄存器结构 TMOD寄存器各个位的功能寄存器各个位的功能 表表6.1.4 TMOD寄存器各个位的功能寄存器各个位的功能6.2 定时器/计数器的工作方式 1、 方式方式0 方式0为13位计数, TF1TR1TF0TR0GATEC/TM 1M 0GATEC/TM1M01&110T0引脚INT0引脚00机器周期TH0TL08位5位溢出TCONTMODD

4、0D7D7D0申请中断图图6.2.1 方式方式0定时定时/计数器逻辑结构图计数器逻辑结构图 2、方式、方式1 方式1的计数位数是16位, TF1TR1TF0TR0GATEC/TM 1M 0GATEC/TM1M01&110T0引脚INT0引脚10机器周期TH0 TL08位8位溢出TCONTMODD0D7D7D0申请中断图图6.2.2 方式方式1定时定时/计数器逻辑结构图计数器逻辑结构图新语新知MCS51的定时/计数器uMCS51定时器工作于方式1l 当M1:M0设置为01时,定时器选定为方式1工作。在这种方式下,由TH0和TL0组成一个16位计数器。1. 当GATE=0时,只要TCON中

5、的TR0为1,TL0及TH0组成的13位计数器就开始计数.2. 当GATE=1时,此时仅TR0=1仍不能使计数器计数,还需要 引脚为1才能使计数器工作。由此可知,当GATE=1和TR0=1时,TH0+TL0是否计数取决于 引脚的信号,当 由0变1时,开始计数;当 由1变0时,停止计数,这样就可以用来测量在 端出现的脉冲宽度。l 当16位计数器从0或设定的初值,加1到全“1”以后,再加1就产生溢出。这时,置TCON的TF0位为1,同时把计数器变为全“0”新语新知MCS51的定时/计数器uMCS51定时器使用步骤(工作于方式1)1. 初始化TMOD,设置工作模式。2. 根据定时间隔,计算并初始化T

6、H0与TL0的数值。计算公式如下。其中FOSC是晶振频率(单位:Hz),T是定时间隔(单位:S)3. 如果中断方式使用定时器,则需置位中断允许控制寄存器(IE)中的ET0或ET1,而且要打开全局中断(EA=1)。同时要写好中断服务函数。4. 将TR0或TR1置位,启动定时器。160:02112OSCT FTHTL新语新知MCS51的定时/计数器u定时间隔计算公式的推导过程1. 计算时钟周期:MCS51的定时器的时钟源就是CPU的工作时钟,因此时钟周期t。例如晶振频率24MHz时,t=0.5*10-6S2. 计算定时间隔经历的时钟周期数N。例如期望的定时间隔是10mS,则N=20000。3. 计

7、算TH0:TL0的初值。对于T=10mS,FOSC=24MHz,结果为45535112CPUOSCtFF/12OSCT FNT t126553620:016OSCFTNNTLTH初 3、方式、方式2 定时/计数器方式2则可解决软件反复装初值所带来的问题,在计数器溢出后,计数器会自动将上次设置的初值重装。所以方式2特别适合做较精确的脉冲信号发生器,但由于它只有8位计数器, TF1TR1TF0TR0GATEC/TM 1M 0GATEC/TM1M01&110T0引脚INT0引脚10机器周期TH0TL08位溢出TCONTMODD0D7D7D0申请中断图图6.2.3 方式方式2定时定时/计数器逻

8、辑结构图计数器逻辑结构图 4、方式、方式3 方式3只适用于定时/计数器T0, TF1TR1TF0TR0GATEC/TM 1M 0GATEC/TM1M01&110T0引脚INT0引脚11机器周期TH0TL08位溢出TCONTMODD0D7D0申请中断机器周期8位申请中断溢出图图6.2.4 方式方式3定时定时/计数器逻辑结构图计数器逻辑结构图6.3 52单片机的定时/计数器2介绍 52单片机与51单片机相比,除了其内部程序存储器容量增大外,还多了一个T2定时/计数器。定时/计数器T2是一个16位的计数器,通过设置特殊功能寄存器T2CON中的位,可将其设置为定时器或计数器;通过设置T2CON

9、中的工作模式选择可将定时/计数器T2设置为三种模式,分别为:波特率发生器、自动重装(递增或递减)和捕获。6.3.1 定时/计数器2控制寄存器T2CON T2CON寄存器的字节地址为C8H,该寄存器可进行位寻址,即可对该寄存器的每一位进行单独操作,单片机复位时T2CON全部被清零,其各位定义如表 定时定时/计数器计数器2控制寄控制寄存器存器T2CON表表6.3.1 定时定时/计数器计数器2控制寄存器控制寄存器T2CON 定时定时/计数器计数器2模式控模式控制寄存器制寄存器T2MOD 表表6.3.2 定时定时/计数器计数器2模式控制寄存器模式控制寄存器T2MOD6.3.2 定时/计数器2的三种工作

10、模式 1、自动重装模式(递增或递减)、自动重装模式(递增或递减)图图6.3.1 定时定时/计数器计数器2自动重载模式(自动重载模式(DCEN=0)逻辑结构图)逻辑结构图 2、捕获模式、捕获模式图图6.3.3 定时定时/计数器计数器2的捕获模式逻辑结构图的捕获模式逻辑结构图 3、波特率发生器模式、波特率发生器模式图图6.3.4 定时定时/计数器计数器2的波特率发生器模式逻辑结构图的波特率发生器模式逻辑结构图 4、定时、定时/计数器计数器2的设置的设置 除了波特率发生器模式,除了波特率发生器模式,T2CON不包括不包括TR2位的设置,位的设置,TR2位需要单独设置来启动位需要单独设置来启动定时定时

11、/计数器计数器2。定时。定时/计数器计数器2的定时器和计的定时器和计数器的设置方法如表数器的设置方法如表 T2为定时器的设置为定时器的设置 表表6.3.4 T2为定时器的设置为定时器的设置 T2为计数器的设置为计数器的设置 表表6.3.5 T2为计数器的设置为计数器的设置 5、可编程时钟输出、可编程时钟输出图图6.3.5 时钟输出和外部事件计算方式示意图时钟输出和外部事件计算方式示意图6.4 定时/计数器的初始化 初始化程序应完成如下工作: (1)对TMOD赋值,以确定T0和T1的工作方式。 (2)计算初值,并将其写入TH0、TL0或TH1、TL1。 (3)使用中断方式时,则对IE赋值,开放中

12、断。 (4)使TR0或TR1置位,启动定时/计数器的定时或计数。6.4.1 初值的计算 假设定时器工作在工作方式1,位数是16位。定时器一旦启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设置TH.x和TL.x,它们的默认值为0。假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期就是1us,计满TH.x和TL.x就需要:计数最大值1。 6.4.2 Keil C中断服务程序的写法 C51的中断函数格式如下: void 函数名() interrupt 中断号 using 工作组 中断服务程序内容 6.5 定时器中断应用实例6.5.1 设计要求 用C编程,每1秒点

13、亮P1.0口的发光二极管一次,然后熄灭,使发光二极管形成闪烁的效果。要求:采用定时/计数器0,其工作方式为1;当P1.0口输出低电平时,发光二极管点亮。6.5.2 硬件设计图图6.5.1 定时中断连接电路图定时中断连接电路图6.5.3 软件设计软件设计 6.5.4 联合调试与运行6.5.5 电路图功能分析 给定时器0设置定时初值为50ms,每次中断溢出执行中断子程序时,计数变量count加1。当count增加到20时(总时长为20*50ms=1s),用户定义标志位flag被置1。程序跳回到主程序执行,这时的主程序的判断语句if(flag=1)成立,给P1.0输出低电平,使发光二极管电亮,然后熄灭发光二极管,且置flag=0。重复的进行上述过程便可形成发光二极管闪烁的现象。6.6 小结 定时/计数

温馨提示

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

评论

0/150

提交评论