1 / 32

第六章 MCS-51 定时器 / 计数器

第六章 MCS-51 定时器 / 计数器. 6 .1 定时器 / 计数器结构及工作方式. 1. 6 .2 定时器应用举例. 2. §6.1 定时器/计数器结构及工作方式. 学习内容. 2. 3. 1. 寄存器. 工作方式. 结构. 一、定时器 / 计数器结构. T1 :是 16 位加法 计数器,分别由两个八位专用寄存器 TH1 和 TL1 组成。. T0 :是 16 位加法 计数器,分别由两个八位专用寄存器 TH0 和 TL0 组成。. 1 、 MCS-51 单片机内有 两个可编程的 定时器 / 计数器 T0 、 T1 ,其逻辑结构如下图所示 :.

Download Presentation

第六章 MCS-51 定时器 / 计数器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章 MCS-51定时器/计数器 6.1定时器/计数器结构及工作方式 1 6.2定时器应用举例 2

  2. §6.1 定时器/计数器结构及工作方式 学习内容 2 3 1 寄存器 工作方式 结构

  3. 一、定时器/计数器结构 T1:是16位加法计数器,分别由两个八位专用寄存器TH1和TL1组成。 T0:是16位加法计数器,分别由两个八位专用寄存器TH0和TL0组成。 1、MCS-51单片机内有两个可编程的定时器/计数器T0、T1,其逻辑结构如下图所示: 用来设置定时器的工作方式。 用来控制定时器的启动、停止及中断。 图6-1 MCS-51定时器/计数器逻辑结构图

  4. 2、定时器/计数器功能 • 定时器 • 是通过内部计数器的计数来实现的,计数脉冲来自单片机的内部,其频率是振荡(晶体)频率的1/12,即每个机器周期产生一个计数脉冲,计数器加1,直至计满溢出。

  5. 计数器 是对外来脉冲进行计数。计数器对来自输入引脚P3.4和P3.5的外部信号计数,外部脉冲的负跳变(下降沿)触发计数。 • 检测一个由1到0的负跳变需要两个机器周期。所以最高计数频率为晶体频率的1/24。

  6. 问题的提出 晶振频率为12MHz时,定时器和计数器的最高计数频率各是多少?

  7. 回答: 晶振频率为12MHz时,定时器和计数器的最高计数频率各为1MHz、500KHz .

  8. 二、定时器/计数器寄存器 • 分三类: • 定时器/计数器方式寄存器:TMOD • 定时器/计数器控制寄存器:TCON • 定时器初值寄存器: TH0 TL0 TH1 TL1

  9. D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 TMOD GATE GATE C / T M 1 C / T M 1 M 0 M 0 T 1 方式控制 T 0 方式控制 图 6 - 2 TMOD 寄存器各位定义 • 1、定时器/计数器方式寄存器TMOD(89H) • GATE:门控位,用来控制定时器/计数器的启动是否受外部中断请求信号的影响。 • GATE=0,不受影响,仅由控制位TRx控制; • GATE=1,受TRx和外部中断请求信号共同控制。

  10. C/T:定时或计数功能选择位。 • C/T=1,为计数器方式; • C/T=0,为定时器方式。 • M1M0:定时器四种工作方式选择: • 00: 方式0:13位定时器/计数器 • 01: 方式1:16位定时器/计数器 • 10: 方式2:自动重装初值的8位定时器/计数器 • 11: 方式3:T0分成两个8位定时器/计数器

  11. D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 TMOD GATE GATE C / T M 1 C / T M 1 M 0 M 0 T 1 方式控制 T 0 方式控制 [例6-1]: 某一系统使T1作为定时器,采用方式2,使T0作为计数器采用方式1,T0、T1的门控位均为0,请设置TMOD的值。 0 0 1 0 0 1 0 1 即:TMOD=25H.

  12. 2、定时器/计数器控制寄存器TCON(88H,可位寻址)2、定时器/计数器控制寄存器TCON(88H,可位寻址) x=0、1 • TRx: Tx的运行控制位。 • TRx=1,启动定时器/计数器 • TRx=0,关闭定时器/计数器

  13. 3、定时器初值寄存器 TH0 TL0 TH1 TL1 • 用于存放计数初值,具有自动加1功能,加满后溢出,它们的字节地址是: • TH1(8位) TL1(8位) TH0(8位) TL0(8位) • 8DH 8BH 8CH 8AH • 根据定时器/计数器工作方式,计数长度可分别选择:8位,13位,16位。

  14. 三、工作方式 MCS-51的定时器/计数器共有四种工作方式,其中: • T0有方式0、1、2、3四种; • T1有方式0、1、2三种。

  15. TMOD 振荡器 ÷ 12 C / T = 0 S2 0 M 0 TCON S1 0 M 1 TL 0 TH 0 TF 0 (低5位) (高8位) C / T 中 T0(P3.4) TR 0 GATE C / T = 1 断 控 制 INT0(P3.2) 图 6 - 4 方式 0 ( 13 位计数器 ) 1、工作方式0(以T0为例)—13位定时器/计数器 TL0的高3位没有用。

  16. C/T=1,S1接下面,T0作计数器,对P3.4引脚输入的外部脉冲计数,当脉冲发生负跳变时,计数器加1,计数值公式为: N=213 – x=8192 – x 其中:N为计数值,x是THx、TLx的初值。 x=8191(1FFFH)时,N最小值=1; x=0时,N最大值=8192。 则N的范围:1~8192。

  17. C/T=0时, S1接上面,T0作定时器,对机器周期脉冲Tcy计数。 • 求定时时间由下式确定: t=N·Tcy=(213 – x)Tcy= (8192 – x)Tcy • 其中: t为定时时间。 • 求计数初值计算公式: x=213 – t/Tcy=8192 – t/Tcy

  18. TMOD C/ T =0 振荡器 ÷12 1 M 0 TCON 0 M 1 TL 0 TH 0 TF 0 (8位) (8位) 中 C/ T T0(P3.4) C/ T =1 TR 0 断 GATE 控 制 INT0(P3.2) 图6-5 方式1(16位计数器) 2、工作方式1(以T0为例)—16位定时器/计数器

  19. C/T=1,S1接下面,T0作计数器,对P3.4引脚输入的外部脉冲计数,当脉冲发生负跳变时,计数器加1,计数值公式为: N=216 – x=65536 – x 其中:N为计数值,x是THx、TLx的初值。 x=65535(FFFFH)时,N最小值=1; x=0时,N最大值=65536; 则N的范围:1~65536。

  20. C/T=0时, S1接上面,T0作定时器,对机器周期脉冲Tcy计数。 • 求定时时间由下式确定: t=N·Tcy=(216 – x)Tcy= (65536 – x)Tcy • 其中: t为定时时间。 • 求计数初值计算公式: x=216 – t/Tcy=65536 – t/Tcy

  21. 3、工作方式2(以T0为例)—8位定时器/计数器 TL0作为8位加法计数器, TH0作为初值寄存器用。TL0加法计数器溢出时置TF0=1,而且发出重装载信号,使三态门打开,将TH0中的初值自动送入TL0。

  22. C/T=1,S1接下面,T0作计数器,对P3.4引脚输入的外部脉冲计数,当脉冲发生负跳变时,计数器加1,计数值公式为: N=28 – x=256 – x 其中:N为计数值,x是THx、TLx的初值。 x=255(FFH)时,N最小值=1; x=0时,N最大值=256; 则N的范围:1~256。

  23. C/T=0时, S1接上面,T0作定时器,对机器周期脉冲Tcy计数。 • 求定时时间由下式确定: t=N·Tcy=(28 – x)Tcy= (256 – x)Tcy • 其中: t为定时时间。 • 求计数初值计算公式: x=28 – t/Tcy=256– t/Tcy

  24. [例6-2]:已知晶振6MHz,要求定时0.5ms,试分别求出T0工作于方式0、方式1、方式2时的定时初值。[例6-2]:已知晶振6MHz,要求定时0.5ms,试分别求出T0工作于方式0、方式1、方式2时的定时初值。 解:机器周期Tcy=12/fosc=12/6MHz=2us; 定时t=0.5ms=500us. ①工作方式0: x= 213 – t/Tcy=213 –500us/2us =8192 – 250=7942=1F06H =1111100000110B 则TL0=00000110B=06H, TH0=11111000B=0F8H

  25. ②工作方式1: x= 216 – t/Tcy=216 –500us/2us =65536 – 250=65286=FF06H 则TL0=06H,TH0=0FFH ③工作方式2: x= 28 – t/Tcy=28 –500us/2us=256 – 250=6=6H 则TL0=06H TH0=06H(重装初值寄存器,其值不变)

  26. 学习内容 2 1 应用举例 应用步骤 • §6.2定时器应用举例

  27. 一、定时器应用步骤 • 1、T0、T1的选择使用; • 2、合理选择工作方式——TMOD; • 3、计算初值; x=2n –t/Tcy 其中,n与工作方式有关, • 方式0,n=13; • 方式1,n=16; • 方式2、3时,n=8。

  28. 一、定时器应用步骤 • 4、编制应用程序: • 定时器/计数器的初始化: • 写TMOD; • 写入定时初值; • 设置中断系统的IP、IE; • 启动定时器运行(TRx)。 • 正确编制定时器/计数器中断服务程序。

  29. 二、定时器编程举例 [例6-3]:设单片机晶振频率fosc=12MHz,使用T0以方式0产生周期为1ms的方波,并由P1.0输出。以中断方式完成编程。 解: 1、TMOD配置 T1不用,有关位设置为0; T0的GATE=0,C/T=0,M1M0=00(方式0)。 则TMOD初始化设置为00000000B,即00H。

  30. 2、计算初值 • 产生1ms的方波,只需在P1.0端以0.5ms为周期交替输出高低电平即可,因此定时时间为0.5ms 。 • Tcy=12/fosc=12/12MHz=1us • x=213–t/Tcy=8192-500us/1us=8192-500=7692 • =1E0CH=111100000 1100B, • TH0=11110000B=0F0H;TL0=00001100B=0CH • 3、启动和中断 • 定时器T0的启动由TR0控制,即TR0=1启动。 • 定时器T0的中断允许由ET0和EA控制, • 即ET0=1、EA=1。

  31. 4、程序设计 • ORG 0000H • LJMP MAIN • ORG 000BH • LJMP DS0 • ORG 0100H • MAIN: MOV SP, #30H • MOV TL0, #0CH • MOV TH0, #0F0H • MOV TMOD, #00H • SETB ET0 • SETB EA • SETB TR0 • SJMP $ • DS0: MOV TL0, #0CH • MOV TH0, #0F0H • CPL P1.0 • RETI

  32. 练习题:设单片机晶振频率fosc=6MHz,使用T1以方式2产生周期为1ms的方波,并由P1.0输出。以中断方式完成。练习题:设单片机晶振频率fosc=6MHz,使用T1以方式2产生周期为1ms的方波,并由P1.0输出。以中断方式完成。

More Related