找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

初学者关于单片机定时器初值计算没有懂,请教一下大家,谢谢!

查看数: 2501 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-11-6 11:34

正文摘要:

我看的普中科技的教程,首先按照普中科技讲解的办法,我的理解是: ①首先,确认晶振的振荡频率,由晶振的振荡频率除以机器的周期12,即,比如我晶振频率,12MHZ,那么12MHZ÷12=1,也就是1us微秒,我的这个理解方法 ...

回复

ID:401564 发表于 2018-11-6 20:37
专业级入门的我告诉你:
郭天祥的方法是对的,你的也是对的,结果是一样的,还有,那+1要不要都不重要的,无源晶振你就别想着它能达到理想的12.00MHZ,有时候是11.88有时候是12.22.
虽然郭天祥的方法是对,但那也是不对的,他忘记了他是教别人,你用一个新手没有学过的东西去教新手,却不告诉新手这是个什么原理,我看过网上对他书的评论,真不咋的.
8位机是没有浮点这个说法的,是不可能在机器内部计算出一个小数点给你的
在8051或者大多的单片机机中,除以256是以不带进位标志右移8次来完成的,而FC18=11111100 00011000="FC"高位加上 "18"低位.右移8个位,你看一下结果是不是FC?取模运算是一样的右移,然后只取之前的低8位的值.
如果你学过汇编你就会明白我说的了
ID:404479 发表于 2018-11-6 16:54
sxhwdz 发表于 2018-11-6 14:13
一样的呀,你说的 65535-1000+1时1mS的,这个65536-50000是50mS的。使用 /256 和 %256是为了分别得到高8位 ...

请问我根据郭天祥的办法,我定时1毫秒,那么TH0=(65536-1000)/256=252.09375,那么我把得到的252化成16进制数=FC,这我能理解,但是他给TL0赋值时我就不能理解了,同样的(65536-1000)%256=?这个大数字的取模这么算,65536-1000=64536,那么用64536%256=?  我算了一下首先64536÷256=252.09375这么多得余数,怎么取?
ID:404479 发表于 2018-11-6 16:53
1657329982 发表于 2018-11-6 14:10
郭天祥的方法其实和你说的一样只不过你的是自己算 他的赋值是你想计多少个数只需改变65536减的哪个数就可以 ...

请问我根据郭天祥的办法,我定时1毫秒,那么TH0=(65536-1000)/256=252.09375,那么我把得到的252化成16进制数=FC,这我能理解,但是他给TL0赋值时我就不能理解了,同样的(65536-1000)%256=?这个大数字的取模这么算,65536-1000=64536,那么用64536%256=?  我算了一下首先64536÷256=252.09375这么多得余数,怎么取?
ID:411811 发表于 2018-11-6 15:10
哪位大佬和我说说(0xffff - 50000)/ 0xff 这种算法法和郭天祥的算法是不是一样的
ID:387733 发表于 2018-11-6 14:13
一样的呀,你说的 65535-1000+1时1mS的,这个65536-50000是50mS的。使用 /256 和 %256是为了分别得到高8位与低8位,不要再人工化解了
ID:421675 发表于 2018-11-6 14:10
郭天祥的方法其实和你说的一样只不过你的是自己算 他的赋值是你想计多少个数只需改变65536减的哪个数就可以,很方便,高八位赋值时/256的意思就是将低八位去掉只剩高八位赋值给高八位,低八位赋值时,%256就是将高八位去掉只剩低八位赋值给低八位,无需你自己计算赋值。
ID:89515 发表于 2018-11-6 13:25
都没错,都可以,你自己能看懂就行
ID:277550 发表于 2018-11-6 13:01
單片機的類型,很有關係,看看STC下載工具中的時鐘初始化代碼

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

Powered by 单片机教程网

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