![]() |
發(fā)布時間: 2018-11-6 11:34
正文摘要:我看的普中科技的教程,首先按照普中科技講解的辦法,我的理解是: ①首先,確認(rèn)晶振的振蕩頻率,由晶振的振蕩頻率除以機器的周期12,即,比如我晶振頻率,12MHZ,那么12MHZ÷12=1,也就是1us微秒,我的這個理解方法 ... |
專業(yè)級入門的我告訴你: 郭天祥的方法是對的,你的也是對的,結(jié)果是一樣的,還有,那+1要不要都不重要的,無源晶振你就別想著它能達(dá)到理想的12.00MHZ,有時候是11.88有時候是12.22. 雖然郭天祥的方法是對,但那也是不對的,他忘記了他是教別人,你用一個新手沒有學(xué)過的東西去教新手,卻不告訴新手這是個什么原理,我看過網(wǎng)上對他書的評論,真不咋的. 8位機是沒有浮點這個說法的,是不可能在機器內(nèi)部計算出一個小數(shù)點給你的 在8051或者大多的單片機機中,除以256是以不帶進(jìn)位標(biāo)志右移8次來完成的,而FC18=11111100 00011000="FC"高位加上 "18"低位.右移8個位,你看一下結(jié)果是不是FC?取模運算是一樣的右移,然后只取之前的低8位的值. 如果你學(xué)過匯編你就會明白我說的了 |
sxhwdz 發(fā)表于 2018-11-6 14:13 請問我根據(jù)郭天祥的辦法,我定時1毫秒,那么TH0=(65536-1000)/256=252.09375,那么我把得到的252化成16進(jìn)制數(shù)=FC,這我能理解,但是他給TL0賦值時我就不能理解了,同樣的(65536-1000)%256=?這個大數(shù)字的取模這么算,65536-1000=64536,那么用64536%256=? 我算了一下首先64536÷256=252.09375這么多得余數(shù),怎么? |
1657329982 發(fā)表于 2018-11-6 14:10 請問我根據(jù)郭天祥的辦法,我定時1毫秒,那么TH0=(65536-1000)/256=252.09375,那么我把得到的252化成16進(jìn)制數(shù)=FC,這我能理解,但是他給TL0賦值時我就不能理解了,同樣的(65536-1000)%256=?這個大數(shù)字的取模這么算,65536-1000=64536,那么用64536%256=? 我算了一下首先64536÷256=252.09375這么多得余數(shù),怎么? |
哪位大佬和我說說(0xffff - 50000)/ 0xff 這種算法法和郭天祥的算法是不是一樣的 |
一樣的呀,你說的 65535-1000+1時1mS的,這個65536-50000是50mS的。使用 /256 和 %256是為了分別得到高8位與低8位,不要再人工化解了 |
郭天祥的方法其實和你說的一樣只不過你的是自己算 他的賦值是你想計多少個數(shù)只需改變65536減的哪個數(shù)就可以,很方便,高八位賦值時/256的意思就是將低八位去掉只剩高八位賦值給高八位,低八位賦值時,%256就是將高八位去掉只剩低八位賦值給低八位,無需你自己計算賦值。 |
都沒錯,都可以,你自己能看懂就行 |
單片機的類型,很有關(guān)係,看看STC下載工具中的時鐘初始化代碼 |
Powered by 單片機教程網(wǎng)