找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7103|回复: 6
收起左侧

新手解惑:关于AT89C52单片机定时器T1/T2初值设置(THX、TLX)

[复制链接]
ID:418425 发表于 2018-11-5 09:33 | 显示全部楼层 |阅读模式
新手解惑:关于AT89C52定时器T1/T2初值设置(THX、TLX)
    大家好,我是一名新手,正在学习中......(刚刚学习一月左右),以后的时间里,我将不定期更新论坛,用新手解惑的方式给自己督促学习,给和我一样的新手学习51提供好的方法,同时也需要单片机高手的指点。
    今天更新的是《新手解惑:关于AT89C52定时器T1/T2初值设置(THX、TLX)》,我在学习中发现了2个问题:1、如何计算处置。2、在定时器方式1中怎样装入计算好的初值(THX、TLX)。
    首先定时器中断初始化的流程:1、设置TMOD(定时器方式选择M1M0、门控制及定时器模式)。
                                                 2、计算初值装入初值(THX、TLX)(方式一)
                                                 3、开启“IE”中断寄存器,中断允许(EA、ETX)
                                                 4、启动定时器允许位(TRX)

     以上是所有教材标准的流程,如果我们只是了解其过程的话,我就不会纠结初值的问题,有很多的资料都有你想要的装入初值的方法,包括你需要的要求(时间、方式);但是你不去了解“初值”对以后的学习会造成一定的阻碍,使得自己在学习单片机过程基础知识不扎实,好比“上数学课只是一低头,后来的数学再也不会了”的这个梗。
    我先简单说一下定时器在方式一中的工作流程,初始化完毕后,开始计时,TLx中开始计数(以每机器周期作用下),记满后溢出至THx,THx溢出TFx标志位置1(TFx无需操作硬件自动),开启中断,中断完毕,结束中断,返回中断点,继续主任务。
    现在开始说一下THx和TLx装入初值的问题了,首先需要了解机器周期、震荡周期的换算,震荡周期=1/晶振频率;机器周期=震荡周期*12=1/晶振频率*12;以晶振为12Mhz为例,1个机器周期=1/12*12=1微秒,而THX和TLX充满需要多少次呢?这样计算:一共是16位,二进制,换算后是一共2^16-1;这里就会有人问为什么要-1,我举例说明,家里的时钟走满需要多少的数,答案是11个(不计原点),所以寄存器充满需要最高-1;这样计算下计时器嘴最高能达到(2^16-1)*机器周期=65535*1微秒≈65.5ms, 如果需要50ms我们就需要50000个机器周期,20ms就需要20000个机器周期,初值就是余下的那部分数值=总数值-需要的时间,
                                      以12MHZ晶振为例,需要50ms,我们来计算下初值:初值=总值-需要的时间
                                                                                                                 初值=65535-50000=15535
       如何装入初值呢?以上为例,得出要装入“15535”,把THX、TLX想成两个桶,他们本身运行方式就是TL升到TH,15536转换2进制0011110010110000、16进制为3CB0,把高的8位放在THx里,低8位放在TLx里,就是THx=0x3c;TLx=0xb0;这样你在往里“放水”到溢出就是你需要的时间了,也就是50ms了。
      你也可以对“15536”进行求摸求余运算THx=15536/256;TLx=15536%256;原理是一样的,只不过是一个是算好的,一个是需要软件计算的。
    以上就是我对定时器的理解,可能有些我理解的定时器还有些不全面,但是对于初学者这些就够了,还有些说的不对的地方,请高手指教!


回复

使用道具 举报

ID:401564 发表于 2018-11-8 19:25 | 显示全部楼层
我用51写几还算能用的程序了,我竟然看不明白你说的定时器!!!我这不是白学了!!应试教育呀!!

回复

使用道具 举报

ID:418425 发表于 2019-1-6 22:42 | 显示全部楼层
Y_G_G 发表于 2018-11-8 19:25
我用51写几还算能用的程序了,我竟然看不明白你说的定时器!!!我这不是白学了!!应试教育呀!!

没看明白,是我理解的不对吗?请指教。
回复

使用道具 举报

ID:463282 发表于 2019-1-7 02:33 | 显示全部楼层
定时器有T0和T1,其中T1只有三种计算方式(0.1.2),T0有四种(0.1.2.3),这个要注意区分
回复

使用道具 举报

ID:213173 发表于 2019-1-7 15:06 | 显示全部楼层
初值=65536-50000=15536=0x3CB0
回复

使用道具 举报

ID:149389 发表于 2019-1-7 19:15 | 显示全部楼层
“单片机小精灵”V1.3
回复

使用道具 举报

ID:489764 发表于 2019-3-18 10:51 | 显示全部楼层
yf15966844335 发表于 2019-1-6 22:42
没看明白,是我理解的不对吗?请指教。

他的意思是 他没学好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表