久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2874|回復: 8
打印 上一主題 下一主題
收起左側

初學者關于單片機定時器初值計算沒有懂,請教一下大家,謝謝!

[復制鏈接]
跳轉到指定樓層
樓主
ID:404479 發表于 2018-11-6 11:34 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我看的普中科技的教程,首先按照普中科技講解的辦法,我的理解是:
①首先,確認晶振的振蕩頻率,由晶振的振蕩頻率除以機器的周期12,即,比如我晶振頻率,12MHZ,那么12MHZ÷12=1,也就是1us微秒,我的這個理解方法是否正確?
②然后,賦值,我是這樣理解的,拿T0定時計數器來說,當TH0和TL0滿了后,也就是16個1,也就是65535,然后我要定時1ms,也就是1000us,于是初始值=65535-1000+1=64536,然后我把64536化成16進制=FC18,也就是高位TH0=0xFC  低位TL0=0x18,請問大家這種方法有沒用錯?除了這種方法,還有沒有其他賦值方法?下圖有一個時郭天祥的方法。我看不懂他為什么要這樣賦值,他和65535-x+1這種公式賦值方法有什么不一樣么,為何非要去搞得那么的復雜,又是除法運算,又是模運算的!
提問完畢,謝謝大家!!

Screenshot_20181106-110550.png (189.26 KB, 下載次數: 44)

Screenshot_20181106-110550.png

Screenshot_20181106-110658.png (109.32 KB, 下載次數: 31)

Screenshot_20181106-110658.png

Screenshot_20181106-110252.png (134.37 KB, 下載次數: 33)

Screenshot_20181106-110252.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:277550 發表于 2018-11-6 13:01 | 只看該作者
單片機的類型,很有關係,看看STC下載工具中的時鐘初始化代碼

回復

使用道具 舉報

板凳
ID:89515 發表于 2018-11-6 13:25 | 只看該作者
都沒錯,都可以,你自己能看懂就行
回復

使用道具 舉報

地板
ID:421675 發表于 2018-11-6 14:10 | 只看該作者
郭天祥的方法其實和你說的一樣只不過你的是自己算 他的賦值是你想計多少個數只需改變65536減的哪個數就可以,很方便,高八位賦值時/256的意思就是將低八位去掉只剩高八位賦值給高八位,低八位賦值時,%256就是將高八位去掉只剩低八位賦值給低八位,無需你自己計算賦值。
回復

使用道具 舉報

5#
ID:387733 發表于 2018-11-6 14:13 | 只看該作者
一樣的呀,你說的 65535-1000+1時1mS的,這個65536-50000是50mS的。使用 /256 和 %256是為了分別得到高8位與低8位,不要再人工化解了
回復

使用道具 舉報

6#
ID:411811 發表于 2018-11-6 15:10 | 只看該作者
哪位大佬和我說說(0xffff - 50000)/ 0xff 這種算法法和郭天祥的算法是不是一樣的
回復

使用道具 舉報

7#
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這么多得余數,怎么取?
回復

使用道具 舉報

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這么多得余數,怎么取?
回復

使用道具 舉報

9#
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位的值.
如果你學過匯編你就會明白我說的了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av网站在线看 | www久久av | 秋霞电影一区二区三区 | 无码日韩精品一区二区免费 | 黄色av免费网站 | 国产精品夜夜夜一区二区三区尤 | 做a视频在线观看 | 成人午夜激情 | 丝袜一区二区三区 | 欧美日韩综合一区 | 精品一区二区久久久久久久网站 | 91色视频在线 | 黄色欧美在线 | 亚洲黄色国产 | 欧美一区在线看 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 国产免费一区二区三区免费视频 | 欧美成人在线网站 | 欧美久久久久久久 | 欧美成人影院在线 | 日韩欧美三级在线 | 欧美aa在线 | 免费毛片网站在线观看 | 色www精品视频在线观看 | 国产黄色免费网站 | 蜜桃传媒一区二区 | 亚洲欧洲色视频 | 久草网站 | 亚洲欧美一区二区三区在线 | 成人午夜精品 | 日韩在线播放网址 | 九九热在线视频观看这里只有精品 | 伊人伊人 | 久草资源| 亚洲电影一区二区三区 | 欧美在线视频网 | 妹子干综合| 午夜一区| 国产精品一区二区久久 | 中文字幕亚洲国产 | 亚洲综合一区二区三区 |