找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 15879|回復(fù): 5
收起左側(cè)

單片機(jī)TH0 TL0的初值是怎么算的?定時(shí)的時(shí)間

[復(fù)制鏈接]
ID:158886 發(fā)表于 2019-6-1 21:46 | 顯示全部樓層 |閱讀模式
誰(shuí)來(lái)講一下,TH0 TL0的初值是怎么算出來(lái)的,定時(shí)的時(shí)間
回復(fù)

使用道具 舉報(bào)

ID:94031 發(fā)表于 2019-6-2 09:18 | 顯示全部樓層
以晶振12MHZ為例:
可以得到:
TMOD=0x01;
TL0=0xb0;
TH0=0x3c;

至于怎么來(lái)的請(qǐng)看:
12M晶振每秒可產(chǎn)生1M個(gè)機(jī)器周期,1M個(gè)機(jī)器周期就是1000000個(gè)機(jī)器周期。一個(gè)機(jī)器周期為1us, 50ms就需要50000個(gè)機(jī)器周期,定時(shí)器在方式1工作,為16位,最大值為65536,所以需設(shè)初值為65536-50000=15536;
15536轉(zhuǎn)化為16進(jìn)制得3cb0;故高位TH0=0x3c;TL0=0xb0;

不同頻率晶振產(chǎn)生的機(jī)器周期不一樣:
公式為:機(jī)器周期=晶振頻率/12。。。這是在該晶振頻率下每秒產(chǎn)生多少M(fèi)機(jī)器周期。

比如當(dāng)晶振頻率為11.0592M的晶振。則每秒可產(chǎn)生機(jī)器周期為11.0592/12=0.9216M的機(jī)器周期,也就是921600個(gè)機(jī)器周期。50ms等于0.05秒,所以需要921600*0.05=46080個(gè)機(jī)器周期;定時(shí)器在方式1工作,為16位,最大值為65536,所以需設(shè)初值為65536-46080=19456;轉(zhuǎn)為16進(jìn)制為(4c00),所以高位TH0=0x4c; TL0=0x00;
---------------------
作者:92年程序員
來(lái)源:CSDN
原文:https://blog.csdn.net/qq_39790474/article/details/85034038
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2019-6-2 09:52 | 顯示全部樓層
TH0 TL0的初值
先說(shuō)說(shuō)總值:

方式1為16位的定時(shí)器/計(jì)數(shù)器,對(duì)定時(shí)器T0來(lái)說(shuō)是分成兩個(gè)寄存器(可以形象地比作容器吧,請(qǐng)自行查閱):TH0為高八位,TL0為低八位,組成了16位的定時(shí)器,當(dāng)?shù)臀籘L0計(jì)滿就向高位TH0移一個(gè)數(shù),然后清零。
以12Mhz的晶振來(lái)說(shuō),機(jī)器周期是1us,計(jì)滿TH0、TL0就需要2^16-1個(gè)數(shù),再來(lái)一個(gè)數(shù)就“溢出”產(chǎn)生中斷,一次溢出也就是65536us,約等于65.5ms,如果要定時(shí)50ms的話就要給他們裝一個(gè)預(yù)裝值(初值),總值-需要值=預(yù)裝值,
也就是65536-50000=15536,預(yù)裝后,定時(shí)器從預(yù)裝值開(kāi)始加值,定時(shí)器溢出中斷后,會(huì)重新從預(yù)裝值開(kāi)始加值加到50ms就再產(chǎn)生中斷,從而達(dá)到了定時(shí)的目的。如果要定時(shí)1s就可以讓定時(shí)器中斷1000ms/50ms=20次。
另外一點(diǎn),TH0和TL0中應(yīng)該裝入的總數(shù)是15536,然后把15536對(duì)256求模:15536/256=60裝入TH0中,把15536對(duì)256求余:15536%256=176裝入TL0中,因?yàn)檫@是兩個(gè)八位28*28的容器。
所以就有了
TH0=(65535-50000)/256
TL0=(65535-50000)%256



http://www.torrancerestoration.com/bbs/dpj-103111-1.html

http://www.torrancerestoration.com/bbs/dpj-105679-1.html


回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2019-6-4 10:16 | 顯示全部樓層
很簡(jiǎn)單:
定時(shí)器就是個(gè)加法器,每輸入一個(gè)CLK脈沖它的T0就+1(T0由TH0和TL0合成)。
要點(diǎn)是:當(dāng)T0=1111111111111111(65535)后再來(lái)一個(gè)CLK,T0就變成0,且給出一個(gè)溢出信號(hào)。
就可以在得到這個(gè)溢出信號(hào)后,不讓它=0,而重新給它一個(gè)起點(diǎn)數(shù)字!
所以你只要知道CLK取的是什么信號(hào),這個(gè)信號(hào)的間隔時(shí)間是多少就OK了,余下的是小學(xué)數(shù)學(xué)問(wèn)題了。
CLK可以取晶振頻率、可以取晶振分頻后的頻率,可以取外部分IO上的脈沖,很靈活。這就看你如何設(shè)置選擇了。
你要學(xué)會(huì)看手冊(cè),這些手冊(cè)上都有。
回復(fù)

使用道具 舉報(bào)

ID:554573 發(fā)表于 2019-6-4 12:32 | 顯示全部樓層
如果覺(jué)得計(jì)算麻煩可以網(wǎng)上搜初值計(jì)算器,有小程序的
回復(fù)

使用道具 舉報(bào)

ID:158886 發(fā)表于 2019-6-4 23:04 | 顯示全部樓層
數(shù)學(xué)邏輯不好,有點(diǎn)懵,,2樓的3樓講的都不錯(cuò),看了之后明白了一點(diǎn),總數(shù)減定時(shí),的差,用16進(jìn)制表示,再給TH TL,晶振不一樣是不是值也不一樣!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表