定时器初值计算_第1页
定时器初值计算_第2页
定时器初值计算_第3页
定时器初值计算_第4页
定时器初值计算_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、8051单片机的定时/计数器18051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。 T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。2一、定时/计数器的功能 在特殊功能寄存器TMOD中,有一个控制位(CT),分别用于控制定时/计数器工作在定时器方式还是计数器方式。1. 定时功能-计数输入信号是内部时钟

2、脉冲,每个机器周期使技数器的值加1。2. 计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1) 。3二、定时器计数器的特殊功能寄存器 与定时器计数器有关的特殊功能寄存器有:1工作方式控制寄存器TMODT1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE门控位C/T计数/定时选择M1 M0工作方式选择42定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0 低电

3、平1 下降沿0 停止1 启动5计数脉冲输入三、定时器计数器的工作方式 定时器计数器共有四种工作方式 1. 方式013位方式 TF0T0TR0GATEINT011&C/T=1振荡器1/12C/T=0TL0 TH08位低5位13位计数器定时器计数器62. 方式116位方式 振荡器1/12TL0 TH0TF011&T0TR0GATEINT0C/T=0C/T=18位8位16位计数器73. 方式28位自动装入时间常数方式 TF0振荡器1/1211&T0TR0GATEINT0C/T=0C/T=1TL0 TH084. 方式3双8位方式 仅T0可以工作在方式3此时T0分成2个独立的计数器TL0和TH0 ,前者

4、用原来T0的控制信号(TR0、TF0),后者用原来T1的控制信号(TR1、TF1)。91计数器初值的计算 设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下: X=M-要求的计数值 四、定时/计数器常数的计算102定时器初值的计算 在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc) 式中,M为定时器模值(根据不同工作方式,M可以是213、216或28)11五、应用举例可编程器件在使用前需要进行初始化:确定TMOD控制字:编程时将控制字送TMOD; 计算计数器的计

5、数初值: 编程时将计数初值送TH、 TL; 如果使用中断方式,则要开中断, 如果使用查询方式,则不要开中断。 TRi位置位控制定时器的启动和停止。12例1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0 输出。8051P1.0500s13 TMOD确定T1控制T0控制XXXX1000M0M1C/TGATEM0M1C/TGATE控制字10H 要产生500s 的方波脉冲,只需在P1.0端以250s为间隔,交替输出高低电平即可实现。为此,定时间应为250s 。使用6z晶振,则一个机器周期为2s,设待求定时器初值为,则: 计算定时器的初值;14(216X)

6、210 -6 =25010 -6 即216X=125 X216-125=10000H-7DH 0FF83H所以,初值为: TH1=0FFH,TL1=83H 如果采用中断方式,编程时要打开全局和局部中断,本例采用查询方式,不用中断。 由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。 TR11,启动; TR10,停止。 15程序如下: MOV TMOD, #10H ;设置T0工作方式 MOV TH1, #0FFH ;装入定时初值 MOV TL1, #83H SETB TR0 ;启动T0LOOP: JBC TF0, NEXT ;查询定时时间到否? SJMP LOOPNEXT: MOV

7、TH1, #0F0H ;重新装入定时初值 MOV TL1, #0CH CPL P1.0 ;P1.0输出方波 SJMP LOOP16例2:假设单片机的振荡频率fosc=6MHz,现要求产生1ms的定时,试分别计算定时器T1在方式0、方式1和方式2时的初值。 方式0:最大计数值为M=213,因此定时器的初值应为X = 213-(110-3)/(12/(610-6) = 7692D= 1111000001100B其中高8位为TH1的初值,即F0H,低5位为TL1的初值,注意,这里TL1的初值应为00001100B即0CH,而不是60H,因为在方式时,TL1的高3位是不用的,应都设为0。17方式1:最大计数值为M=216,因此定时器的初值应为X = 216-(110-3)/(210-6) = 65036D= 1111111000001100B = FE0CH此时高8位TH1的初值为FEH,低8位TL1的初值为0CH。18方式2:最大计数值为M=28,因

温馨提示

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

评论

0/150

提交评论