1 / 15

1 .软件定时 软件定时是让计算机执行一段程序来进行时间延时。 2 .硬件定时 硬件定时是指由硬件电路来实现定时的功能 。

第 8 章 定时器 / 计数器. 1 .软件定时 软件定时是让计算机执行一段程序来进行时间延时。 2 .硬件定时 硬件定时是指由硬件电路来实现定时的功能 。 3 .可编程定时 / 计数器 由于纯软件定时要占用 CPU ,而纯硬件定时又欠灵活。. 8.1 、定时 / 计数器的结构及工作原理. 定时 / 计数器的结构. 1 、定时 / 计数器的模式寄存器 (一)定时 / 计数器模式寄存器 TMOD TMOD 寄存器用来设定定时 / 计数器的工作模式,低 4 位用于 T0 ,高 4 位用于 T1 。.

Download Presentation

1 .软件定时 软件定时是让计算机执行一段程序来进行时间延时。 2 .硬件定时 硬件定时是指由硬件电路来实现定时的功能 。

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. 第8章 定时器/计数器 • 1.软件定时 软件定时是让计算机执行一段程序来进行时间延时。 • 2.硬件定时 硬件定时是指由硬件电路来实现定时的功能 。 • 3.可编程定时/计数器 由于纯软件定时要占用CPU,而纯硬件定时又欠灵活。

  2. 8.1、定时/计数器的结构及工作原理 定时/计数器的结构

  3. 1、定时/计数器的模式寄存器 • (一)定时/计数器模式寄存器TMOD • TMOD寄存器用来设定定时/计数器的工作模式,低4位用于T0,高4位用于T1 。 GATE:门控位。GATE=0,定时/计数器的运行只受定时/计数器控制寄存器TCON中运行控制位TR的控制;GATE=1,定时/计数器的运行受TR和外部中断输入信号或的双重控制。

  4. 计数/定时器工作方式选择位。 =1,为计数工作方式,定时器对外部脉冲信号进行计数; =0,为定时工作方式,定时/计数器对内部机器周期进行计数。

  5. 2、控制寄存器 • TF1:定时/计数器T1的溢出标志位。T1溢出 时由硬件置“1”,向CPU申请中断,CPU响应中断后,由硬件自动清“0”。TF1也可由软件置“1”或清“0”。 • TR1:定时/计数器T1的运行控制位。由软件置“1”或清“0”来控制T1的启动或停止运行。 • TF0:定时/计数器T0的溢出标志位。含义与TF1类同。 • TR0:定时/计数器T0的运行控制位。含义与TR1类同。

  6. 8.2、定时/计数器的工作模式 MCS-51单片机的定时/计数器T0有模式0、模式1、模式2和模式3四种工作模式,定时/计数器T1有模式0、模式1和模式2三种工作模式,由模式寄存器TMOD中的M1、M0两个选择位设定。

  7. 8.3 定时/计数器的初始化 • 1、初始化编程 初始化编程主要包括以下几部分: (1)根据确定的定时/计数器的工作模式,对模式寄存器TMOD赋值。 (2)设置定时或计数初值。即把定时或计数初值写入TH0、TL0或TH1、TL1。 (3)系统需要中断方式时,要对寄存器IE赋值,开放相应的中断。 (4)对寄存器TCON中的TR0或TR1置位,启动定时/计数器进行定时或计数。

  8. 2、计数器初值的计算 定时器/计数器可用软件随时随地起动和关闭,起动时它就自动 加“1”记数,一直记到满,即全为“1”,若不停止,计数值从全“1” 变为全“0”,同时将计数溢出位置“1”并向CPU发出定时器溢出中 断申请。对于各种不同的工作方式最大的定时时间和计数数不 同。这里在使用中就会出现两个问题: 一是要产生比定时器最大的定时时间还要小的时间和计数器最 大计数次数还要小的计数次数怎么办? 二是要产生比定时器最大的定时时间还要大的时间和计数器最 大计数次数还要大的计数次数怎么办? 解决以上第一个问题只要给定时器/计数器一个非零初 值,开定时器/计数器时,定时器/计数器不从0开始, 而是从初值开始,这样就可得到比定时器/计数器最大 的定时时间和计数次数还要小的时间和计数次数,解 决第二个问题就要用到循环程序了,循环几次就相当 于乘几。

  9. 设计数器从初值开始作加1计数到计满为全1所需要的计数值设定设计数器从初值开始作加1计数到计满为全1所需要的计数值设定 为C和计数初值设定为D,由此便可得到如下的计算通式: D=M-C (1) 式中,M为计数器模值,该值和计数器工作方式有关。在方式0 时M为213;在方式1时M为216;在方式2和方式3时M为28。 3、定时器初值的计算 在定时器模式下,计数器由单片机脉冲经12分频后计数。因此, 定时器定时时间T的计算公式为: T=(TM—TC)12/fOSC (µs) (2) 式中TM为计数器从初值开始作加1计数到计满为全1所需要的时 间,TM为模值,和定时器的工作方式有关;fOSC是单片机晶体 振荡器的频率,TC为定时器的定时初值。

  10. 在式(2)中,若设TC=0,则定时器定时时间为 最大(初值为0,计数从全0到全1,溢出后又为 全0)。由于M的值和定时器工作方式有关,因 此不同工作方式下定时器的最大定时时间也不一 样。例如:若设单片机主脉冲晶体振荡器频率 fOSC为12MHz,则最大定时时间为: 方式0时 TMmax=213×1µS=8.192ms 方式1时 TMmax=216 ×1µs=65.536ms 方式2和3时 TMmax=28 ×1µs=0.256ms

  11. 定时/计数器应用举例 • 用定时/计数器T0模式0进行定时,在P1.0引脚上输出周期为1ms的方波。设单片机晶振频率fOSC=12MHZ。 1.确定定时器T0的模式控制字TMOD 由于定时时间不长,取模式0,M1M0=00; T0工作于定时器方式, =0; T0用软件控制运行,GATE=0 TMOD的高4位用于设置T1,因T1不用,可为任意值,通常取0值。 所以,TMOD=00H。

  12. 2.计算计数初值 ∵ t =(2­13-X)×12/fOSC 1000=(2­13-X)×12/6     ∴ X=2­13-6×1000/12 =7692=11110000 01100B 高8位 低5位 因为模式0时TL0的高3位未用,应填写0所以实际值为 X=11110000 00001100B =F00CH • 即 TH0=F0H,TL0=0CH。

  13. 3.编制初始化程序 可用查询方式和中断方式 2种方法来编制源程序。 • 查询方式 中断方式

  14. 由于本例中的定时时间不长,因此可用定时器一次定时完成。如果要求的定时时间较长,而定时器无法用一次定时完成的情况下,就要进行重复定时,通过累加定时器每次定时时间的方法来达到所需的定时要求。 • 【例】用定时/计数器T1定时,使P1.0引脚输出周期为2s的方波。已知单片机的晶振频率fOSC=12MHZ。 • 本例中设定T1的定时时间为50ms,要达到1s的定时值,需累计20次。

  15. 定时/计数器初始化编程,可按以下步骤进行 • 1.确定T1的模式控制字TMOD T1工作于模式1,由TR1控制启动与关闭,T0不用。故TMOD=10H。 • 2.计算计数初值 t =(216-X)×12/fOSC 50000=(216-X)×12/12 X =216-50000 =15536=0011110010110000B =3CB0H

More Related