2274|62

1922

帖子

0

资源

纯净的硅(高级)

求余数不是%才对吗?还有TH0和TL0寄存器设置怎么都是256-t [复制链接]

 

求余数不是%才对吗?还有TH0和TL0寄存器设置怎么都是256-t

此帖出自51单片机论坛
邮洽图片20200628150202.jpg

回复

1万

帖子

0

资源

超级版主

“还有TH0和TL0寄存器设置怎么都是256-t”

TH0和TL0都是8位寄存器,向其中写入数据当然也只能写8位。

你所说的 “TH0和TL0寄存器设置怎么都是256-t”,仅限用于模式2,即自动重新装载的8位计数器。在此模式下,TL0参与计数,TH0并不参与计数,TH0仅仅是在TL0溢出时将本身内容重新装入TL0。

点评

TH0仅仅是在TL0溢出时将本身内容重新装入TL0---------------这句话理解起来怎么那么抽象?高位的原始值给到低位?这是什么鬼  详情 回复 发表于 2020-6-28 16:09
TL0和TH0不是一个字节的低位和高位吗?不是一个字节吗?  详情 回复 发表于 2020-6-28 16:08

回复

1万

帖子

0

资源

超级版主

“求余数不是%才对吗?”

在你的问题中未见求余运算。

点评

那第一个框啥意思   详情 回复 发表于 2020-6-28 16:06

回复

1922

帖子

0

资源

纯净的硅(高级)

maychang 发表于 2020-6-28 15:31 “求余数不是%才对吗?” 在你的问题中未见求余运算。

那第一个框啥意思 

点评

第一个框里面的 “MOD” 就是求余数。不同语言中求余符号不同(可能不是运算符而是个函数)。  详情 回复 发表于 2020-6-28 17:16
%是运算符,c/c++等编程语言,取余运算使用%表示 mod也不错,也是取余,其他高级语言使用mod,这时候mod可能就是函数了,不是运算符   这里这么写也只是一个伪代码,  详情 回复 发表于 2020-6-28 17:01

回复

1922

帖子

0

资源

纯净的硅(高级)

maychang 发表于 2020-6-28 15:30 “还有TH0和TL0寄存器设置怎么都是256-t” TH0和TL0都是8位寄存器,向其中写入数据当然也只能 ...

TL0和TH0不是一个字节的低位和高位吗?不是一个字节吗?

点评

TL0和TH0是两个字节,千万别以为是一个字节。一个字节是8位,两个字节合起来,是16位。TH0和TL0合起来,可以构成16位计数器(模式1),或者13位计数器(模式0,此时TH0高三位未使用)。  详情 回复 发表于 2020-6-28 17:13
不是的,TL0和TH0,是两个寄存器,8位的。  详情 回复 发表于 2020-6-28 17:02

回复

1922

帖子

0

资源

纯净的硅(高级)

maychang 发表于 2020-6-28 15:30 “还有TH0和TL0寄存器设置怎么都是256-t” TH0和TL0都是8位寄存器,向其中写入数据当然也只能 ...

TH0仅仅是在TL0溢出时将本身内容重新装入TL0---------------这句话理解起来怎么那么抽象?高位的原始值给到低位?这是什么鬼

点评

“高位的原始值给到低位?这是什么鬼” 千万别以为什么 “高位” 和 “低位”。这里只有两个寄存器TH0和TL0。 模式2,是在TL0计数发生溢出时,自动把TH0寄存器中的内容装入TL0  详情 回复 发表于 2020-6-28 17:36
你理解错了,这是两个8位寄存器,TH0用来存自动装载的计数值,自动转载模式下不参与计数,TL0参与计数,TL0计数为0的时候,自动从TH0把之前的计数值再拷贝回来,TL0再继续计数,循环往复,这应该理解TH0是什么作用了  详情 回复 发表于 2020-6-28 17:07

回复

3891

帖子

0

资源

版主

定时器模式2为8位自动重装,所谓自动重装就是不需要软件介入,也就没有中断响应引起的计时偏差。你可能还是要在中断服务里做代码,但是每次触发中断的间隔是一样的,所以情况好的多。这种模式缺点就是可设置的定时范围小,比较适合短定时。新一点的51单片机都可以做16位自动重装就更简单了

回复

3891

帖子

0

资源

版主

对TL0的赋值只影响定时器的第一个计时周期,忽略也可以

点评

你好  TH0仅仅是在TL0溢出时将本身内容重新装入TL0,这个怎么理解?  详情 回复 发表于 2020-6-28 18:52

回复

1969

帖子

8

资源

五彩晶圆(初级)

QWE4562009 发表于 2020-6-28 16:06 那第一个框啥意思 

%是运算符,c/c++等编程语言,取余运算使用%表示

mod也不错,也是取余,其他高级语言使用mod,这时候mod可能就是函数了,不是运算符

 

这里这么写也只是一个伪代码,

个人签名坐而言不如起而行

回复

1969

帖子

8

资源

五彩晶圆(初级)

QWE4562009 发表于 2020-6-28 16:08 TL0和TH0不是一个字节的低位和高位吗?不是一个字节吗?

不是的,TL0和TH0,是两个寄存器,8位的。

点评

既然是两个不同的寄存器  为何TH0要和TL0扯上关系呢  详情 回复 发表于 2020-6-28 18:53
个人签名坐而言不如起而行

回复

1969

帖子

8

资源

五彩晶圆(初级)

QWE4562009 发表于 2020-6-28 16:09 TH0仅仅是在TL0溢出时将本身内容重新装入TL0---------------这句话理解起来怎么那么抽象?高位的原始值给 ...

你理解错了,这是两个8位寄存器,TH0用来存自动装载的计数值,自动转载模式下不参与计数,TL0参与计数,TL0计数为0的时候,自动从TH0把之前的计数值再拷贝回来,TL0再继续计数,循环往复,这应该理解TH0是什么作用了吧。。

点评

TH0不参与计数  那它的作用怎么理解   详情 回复 发表于 2020-6-28 18:54
个人签名坐而言不如起而行

回复

1万

帖子

0

资源

超级版主

QWE4562009 发表于 2020-6-28 16:08 TL0和TH0不是一个字节的低位和高位吗?不是一个字节吗?

TL0和TH0是两个字节,千万别以为是一个字节。一个字节是8位,两个字节合起来,是16位。TH0和TL0合起来,可以构成16位计数器(模式1),或者13位计数器(模式0,此时TH0高三位未使用)。


回复

1万

帖子

0

资源

超级版主

QWE4562009 发表于 2020-6-28 16:06 那第一个框啥意思 

第一个框里面的 “MOD” 就是求余数。不同语言中求余符号不同(可能不是运算符而是个函数)。


回复

1万

帖子

0

资源

超级版主

QWE4562009 发表于 2020-6-28 16:09 TH0仅仅是在TL0溢出时将本身内容重新装入TL0---------------这句话理解起来怎么那么抽象?高位的原始值给 ...

“高位的原始值给到低位?这是什么鬼”

千万别以为什么 “高位” 和 “低位”。这里只有两个寄存器TH0和TL0。

模式2,是在TL0计数发生溢出时,自动把TH0寄存器中的内容装入TL0寄存器。

点评

是在TL0计数发生溢出时,自动把TH0寄存器中的内容装入TL0寄存器。-----把TH0寄存器中的内容装入TL0寄存器-----------再王TL0装数那不是更加的溢出了?一般都是小容器往大容器装,这里怎么反过来了  详情 回复 发表于 2020-6-28 18:56

回复

1922

帖子

0

资源

纯净的硅(高级)

huo_hu 发表于 2020-6-28 16:38 对TL0的赋值只影响定时器的第一个计时周期,忽略也可以

你好  TH0仅仅是在TL0溢出时将本身内容重新装入TL0,这个怎么理解?


回复

1922

帖子

0

资源

纯净的硅(高级)

wsmysyn 发表于 2020-6-28 17:02 不是的,TL0和TH0,是两个寄存器,8位的。

既然是两个不同的寄存器  为何TH0要和TL0扯上关系呢

点评

模式0和模式1,TL0计数(每次加1)。当TL0溢出(FFH再加1,成为00H)时,向TH0进位,即TH0加1。 TH0和TL0的关系,就在于此——TL0溢出时TH0加1。注意只有模式0和模式1才是这样,其它模式没有这个关系。  详情 回复 发表于 2020-6-28 19:48
你最好看一下芯片的手册,或者单片机的教材,把所有的寄存器都看一下,看一下含义,   TH0,TL0是两个寄存器,但是不同的模式设定,这两个寄存器的意义是不一样的 有16bit的定时器,这时候TH0是装高8  详情 回复 发表于 2020-6-28 19:38

回复

1922

帖子

0

资源

纯净的硅(高级)

wsmysyn 发表于 2020-6-28 17:07 你理解错了,这是两个8位寄存器,TH0用来存自动装载的计数值,自动转载模式下不参与计数,TL0参与计数,T ...

TH0不参与计数  那它的作用怎么理解 

点评

我都说的那么明显了,还没懂是什么作用么   TL0参与计数,数值肯定会变化的,比如从设定值向下计数到0,之后自动装载计数值,那他从哪里装载之前计数值呢??不就是从TH0拷贝么,就可以了,TH0作用就是这  详情 回复 发表于 2020-6-28 19:30

回复

1922

帖子

0

资源

纯净的硅(高级)

maychang 发表于 2020-6-28 17:36 “高位的原始值给到低位?这是什么鬼” 千万别以为什么 “高位” 和 “低位 ...

是在TL0计数发生溢出时,自动把TH0寄存器中的内容装入TL0寄存器。-----把TH0寄存器中的内容装入TL0寄存器-----------再王TL0装数那不是更加的溢出了?一般都是小容器往大容器装,这里怎么反过来了

点评

模式2,TL0是计数器,其工作是每次计数时内容加1。这和TH0内容装入TL0完全是两回事。TH0内容装入TL0,并不做加法(更不做减法),当然也就没有什么溢出。  详情 回复 发表于 2020-6-28 19:43
“把TH0寄存器中的内容装入TL0寄存器-----------再王TL0装数那不是更加的溢出了?” 把TH0寄存器内容装入TL0,TL0中原来的内容就消失了,或者说被掩盖掉了,变成了TH0当中的内容。  详情 回复 发表于 2020-6-28 19:40
TH0和TL0,两个寄存器一样大。 再重复一次:千万别以为什么 “高位” 和 “低位”。把你所认为的 “高位” 和 “低位” 忘掉!  详情 回复 发表于 2020-6-28 19:37
Sign! TH0是个8位寄存器,TL0也是个8位寄存器。TH0内容装入TL0,怎么会溢出?  详情 回复 发表于 2020-6-28 19:35

回复

1969

帖子

8

资源

五彩晶圆(初级)

QWE4562009 发表于 2020-6-28 18:54 TH0不参与计数  那它的作用怎么理解 

我都说的那么明显了,还没懂是什么作用么

 

TL0参与计数,数值肯定会变化的,比如从设定值向下计数到0,之后自动装载计数值,那他从哪里装载之前计数值呢??不就是从TH0拷贝么,就可以了,TH0作用就是这个。。。

个人签名坐而言不如起而行

回复

1万

帖子

0

资源

超级版主

QWE4562009 发表于 2020-6-28 18:56 是在TL0计数发生溢出时,自动把TH0寄存器中的内容装入TL0寄存器。-----把TH0寄存器中的内容装入TL0寄存器 ...

Sign!

TH0是个8位寄存器,TL0也是个8位寄存器。TH0内容装入TL0,怎么会溢出?

点评

t=100  那就是定时100us?还是100ms?在这里 256也是时间长度吗  详情 回复 发表于 2020-6-30 10:20

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

最新文章 更多>>
    关闭
    站长推荐上一条 1/5 下一条

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

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

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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