第8章定时器计数器.ppt_第1页
第8章定时器计数器.ppt_第2页
第8章定时器计数器.ppt_第3页
第8章定时器计数器.ppt_第4页
第8章定时器计数器.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、1软件定时 软件定时是让计算机执行一段程序来进行时间延时。 2硬件定时 硬件定时是指由硬件电路来实现定时的功能 。 3可编程定时/计数器 由于纯软件定时要占用CPU,而纯硬件定时又欠灵活。 8.1、定时/计数器的结构及工作原理,第8章 定时器/计数器,定时/计数器的结构,1、定时/计数器的模式寄存器 (一)定时/计数器模式寄存器TMOD TMOD寄存器用来设定定时/计数器的工作模式,低4位用于T0,高4位用于T1 。,GATE:门控位。GATE=0,定时/计数器的运行只受定时/计数器控制寄存器TCON中运行控制位TR的控制;GATE=1,定时/计数器的运行受TR和外部中断输入信号或的双重控制。

2、,计数/定时器工作方式选择位。 =1,为计数工作方式,定时器对外部脉冲信号进行计数; =0,为定时工作方式,定时/计数器对内部机器周期进行计数。,TF1:定时/计数器T1的溢出标志位。T1溢出 时由硬件置“1”,向CPU申请中断,CPU响应中断后,由硬件自动清“0”。TF1也可由软件置“1”或清“0”。 TR1:定时/计数器T1的运行控制位。由软件置“1”或清“0”来控制T1的启动或停止运行。 TF0:定时/计数器T0的溢出标志位。含义与TF1类同。 TR0:定时/计数器T0的运行控制位。含义与TR1类同。,2、控制寄存器,MCS-51单片机的定时/计数器T0有模式0、模式1、模式2和模式3四

3、种工作模式,定时/计数器T1有模式0、模式1和模式2三种工作模式,由模式寄存器TMOD中的M1、M0两个选择位设定。,8.2、定时/计数器的工作模式,8.3 定时/计数器的初始化,1、初始化编程 初始化编程主要包括以下几部分: (1)根据确定的定时/计数器的工作模式,对模式寄存器TMOD赋值。 (2)设置定时或计数初值。即把定时或计数初值写入TH0、TL0或TH1、TL1。 (3)系统需要中断方式时,要对寄存器IE赋值,开放相应的中断。 (4)对寄存器TCON中的TR0或TR1置位,启动定时/计数器进行定时或计数。,2、计数器初值的计算 定时器/计数器可用软件随时随地起动和关闭,起动时它就自动

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

5、数次数,解 决第二个问题就要用到循环程序了,循环几次就相当 于乘几。,设计数器从初值开始作加1计数到计满为全1所需要的计数值设定 为C和计数初值设定为D,由此便可得到如下的计算通式: D=M-C (1) 式中,M为计数器模值,该值和计数器工作方式有关。在方式0 时M为213;在方式1时M为216;在方式2和方式3时M为28。 3、定时器初值的计算 在定时器模式下,计数器由单片机脉冲经12分频后计数。因此, 定时器定时时间T的计算公式为: T=(TMTC)12/fOSC (s) (2) 式中TM为计数器从初值开始作加1计数到计满为全1所需要的时 间,TM为模值,和定时器的工作方式有关;fOSC是

6、单片机晶体 振荡器的频率,TC为定时器的定时初值。,在式(2)中,若设TC=0,则定时器定时时间为 最大(初值为0,计数从全0到全1,溢出后又为 全0)。由于M的值和定时器工作方式有关,因 此不同工作方式下定时器的最大定时时间也不一 样。例如:若设单片机主脉冲晶体振荡器频率 fOSC为12MHz,则最大定时时间为: 方式0时 TMmax=2131S=8.192ms 方式1时 TMmax=216 1s=65.536ms 方式2和3时 TMmax=28 1s=0.256ms,定时/计数器应用举例 用定时/计数器T0模式0进行定时,在P1.0引脚上输出周期为1ms的方波。设单片机晶振频率fOSC=1

7、2MHZ。 1确定定时器T0的模式控制字TMOD 由于定时时间不长,取模式0,M1M0=00; T0工作于定时器方式, =0; T0用软件控制运行,GATE=0 TMOD的高4位用于设置T1,因T1不用,可为任意值,通常取0值。 所以,TMOD=00H。,2计算计数初值 t =(213-)12/fOSC 1000=(213-)12/6 =213-61000/12 =7692=11110000 01100B 高8位 低5位 因为模式0时TL0的高3位未用,应填写0所以实际值为 =11110000 00001100B =F00CH 即 TH0=F0H,TL0=0CH。,3编制初始化程序 可用查询方式和中断方式 2种方法来编制源程序。 查询方式,中断方式,由于本例中的定时时间不长,因此可用定时器一次定时完成。如果要求的定时时间较长,而定时器无法用一次定时完成的情况下,就要进行重复定时,通过累加定时器每次定时时间的方法来达到所需的定时要求。 【例】 用定时/计数器T1定时,使P1.0引脚输出周期为2s的方波。已知单片机的晶振频率fOSC=12MHZ。 本例中设定T1的定时时间为50ms,要达到1s的定时值,需累计20次。,定时/计数器初始化编程,可按以下步骤进行 1确定T1的模式控制字TMOD T1工作

温馨提示

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

评论

0/150

提交评论