8303|11

900

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

C51单片机定时器赋初值问题 [复制链接]

 
10芯积分
【不懂就问】
用89C52单片机,做一个LED灯闪烁的效果,亮一秒灭一秒
现在在给定时器的TH0和TL0赋初值上卡住了
看教程说,TL0初值为0,TH0初值为0xB8,
一个机器周期等于12个时钟周期,晶振为11.0592MHz
用20ms当做一个循环,循环50次,就是一秒
那么计算初值x*(12/11.0592MHz)=20ms,x=0xB8,
计算出x的值为什么要赋给TH0呢?

此帖出自单片机论坛

最新回复

建议看看前几年流行的郭天祥的:新概念51单片机C语言教程.入门、提高、开发 比较适合最基本的51学习书,https://download.eeworld.com.cn/detail/%E5%86%B0%E4%BA%BA/84644   详情 回复 发表于 2019-3-7 14:32
点赞 关注(1)
 

回复
举报

2万

帖子

343

TA的资源

版主

沙发
 
应该是装入初始值的
计算出50次初始值,再分别求模和求余装入TH0和TL0
此帖出自单片机论坛
 
 

回复

2万

帖子

343

TA的资源

版主

板凳
 
20ms应该是对65536-20000=45536求模装入后装入TH0,求余后装入TL0
,,,计时开始
此帖出自单片机论坛
 
 
 

回复

2935

帖子

4

TA的资源

五彩晶圆(中级)

4
 
模式2中,低8位是定时器初值,高8位是自动重装值,低8位计数溢出后将高8位的重装值赋值给低8位,不过模式2用的很少,模式1用的最多!
此帖出自单片机论坛
 
 
 

回复

2935

帖子

4

TA的资源

五彩晶圆(中级)

5
 
模式2中,低8位是定时器初值,高8位是自动重装值,低8位计数溢出后将高8位的重装值赋值给低8位,不过模式2用的很少,模式1用的最多!
此帖出自单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

6
 
楼上说的对,定时器的模式

8位自动重装模式,TH0决定周期,TL0不赋值的话只是第一次周期不对.
此帖出自单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

7
 
楼上说的对,定时器的模式

8位自动重装模式,TH0决定周期,TL0不赋值的话只是第一次周期不对.
此帖出自单片机论坛
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

8
 
首先你得告诉一下你的TMOD是怎么设置的
此帖出自单片机论坛

点评

TMOD=0x01  详情 回复 发表于 2019-3-6 09:24
 
 
 

回复

900

帖子

0

TA的资源

纯净的硅(中级)

9
 
邱海涛qht 发表于 2019-3-6 08:52
首先你得告诉一下你的TMOD是怎么设置的

TMOD=0x01
此帖出自单片机论坛
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

10
 
你选用的是16位的定时器,以下的解释很好的解释了初值的计算,你所说的0xB8应该是(2^16-初值)的差值而不是真正的初值。应该是算错了通过正确的计算此差值为18492,而B8是184.
t=(2^16-初值)*机器周期=(2^16-初值)*时钟周期*12
若初值=0x4bfe=19454
t=(65536-19454)*1/11095200*12=0.04983993078087821760....约为0.05s即50ms
公式解释:
每个机器周期产生一个计数脉冲,计时器寄存器最大允许2^16,大于2^16就溢出触发中断。初值为T,则还有65536-T次计数,每次计数用时一个机器周期,所以总用时:t=(2^16-初值)*机器周期=(2^16-初值)*时钟周期*12
初值设置:把所需时间T=20ms代入上式解出初值0xB7C4,把0xB7作为TH,0xC4作为TL(因为所得出的0XB7C4是16位的,但是字节是8位的所以需要两个字节才能装,因此采用TH高8位存放B7,TL低8位存放C4)
也可以用上式推导出初值计算公式
此帖出自单片机论坛

点评

太详细了,非常感谢 我这是最基本的问题了吧  详情 回复 发表于 2019-3-7 12:28
 
 
 

回复

900

帖子

0

TA的资源

纯净的硅(中级)

11
 
邱海涛qht 发表于 2019-3-7 09:25
你选用的是16位的定时器,以下的解释很好的解释了初值的计算,你所说的0xB8应该是(2^16-初值)的差值而不是 ...

太详细了,非常感谢
我这是最基本的问题了吧
此帖出自单片机论坛

点评

建议看看前几年流行的郭天祥的:新概念51单片机C语言教程.入门、提高、开发 比较适合最基本的51学习书,https://download.eeworld.com.cn/detail/%E5%86%B0%E4%BA%BA/84644  详情 回复 发表于 2019-3-7 14:32
 
 
 

回复

2万

帖子

343

TA的资源

版主

12
 
shaorc 发表于 2019-3-7 12:28
太详细了,非常感谢
我这是最基本的问题了吧

建议看看前几年流行的郭天祥的:新概念51单片机C语言教程.入门、提高、开发
比较适合最基本的51学习书,https://download.eeworld.com.cn/detail/%E5%86%B0%E4%BA%BA/84644
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表