<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51 機器周期 時(shí)鐘周期 晶振頻率 定時(shí)器初值計算

51 機器周期 時(shí)鐘周期 晶振頻率 定時(shí)器初值計算

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
背景:51單片機引出的概念。

1 機器周期

本文引用地址:http://dyxdggzs.com/article/201611/318662.htm

在計算機中,為了便于管理,常把一條指令的執行過(guò)程劃分為若干個(gè)階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫(xiě)等,這每一項工作稱(chēng)為一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱(chēng)為機器周期(如單片機中“計數器”完成加1這個(gè)過(guò)程也是一個(gè)機器周期)。一般情況下,一個(gè)機器周期由若干個(gè)S周期(時(shí)鐘周期)組成。通常用內存中讀取一個(gè)指令字的最短時(shí)間來(lái)規定CPU周期,(也就是 計算機通過(guò)內部或外部總線(xiàn)進(jìn)行一次信息傳輸從而完成一個(gè)或幾個(gè)微操作所需要的時(shí)間)),它一般由12個(gè)時(shí)鐘周期組成。

2 時(shí)鐘周期

時(shí)鐘周期=1秒/晶振頻率,晶振頻率的值即為時(shí)鐘頻率的值。因此單片機的機器周期=12秒/晶振頻率。

3 晶振頻率

單片機開(kāi)發(fā)板、學(xué)習板成型之時(shí)相應的晶振頻率也已經(jīng)被確定了。51單片機常用的晶振頻率有11.059 2MHz、12MHz或其它值,^-^。

4 定時(shí)器初值計算

定時(shí)器一旦被啟動(dòng),它就會(huì )在原來(lái)初值的基礎之上加1,當計滿(mǎn)時(shí)重新歸0。51單片機的定時(shí)器寄存器為16位,假設此51單片機的晶振頻率為12MHZ,則根據機器周期概念及機器周期、時(shí)鐘周期、晶振頻率關(guān)系可知機器周期(即計數一次的時(shí)間)= 12 * (1 / 12MHZ) = 1us。這就表明,此51單片機的定時(shí)寄存器實(shí)現加1操作這個(gè)過(guò)程將要花1us的時(shí)間[ “計數這個(gè)硬件結構”達到加1的結果需要12個(gè)脈沖(或高電平) 么],如果此16位寄存器從0開(kāi)始計數,則計到此寄存器下次為0時(shí)需要計2的16次方(65536)個(gè)數(計滿(mǎn)只需要65535個(gè)數),所以定時(shí)器一次最多可以計時(shí)65536us。

如果現在需要定時(shí)器每次定時(shí)時(shí)間T少于65536us,則需要給定時(shí)器寄存器設一個(gè)初值N。根據計m個(gè)數就對應m us可得N = (65536 - T)。得到的N值就是需要裝入定時(shí)器寄存器的值。

咱們的51單片機定時(shí)器寄存器為16位,分高8位THn和低8位TLn(n=0, 1, 2).....,一般咱還得以8位為單位進(jìn)行裝值。將高8位THn裝入N / 256(取模),將低8位TLn裝入 N % 256即可,這兩種運算得到的結果都是10進(jìn)制的,將得到的值換算為二進(jìn)制(或16)再裝入高、低8位。得到定時(shí)器初值計算公式:

THn = (65536 - T) / 256

TLn = (65536 - T) % 256

其中THn,TLn表示響應定時(shí)器寄存器的高低8位。T表示需要被定時(shí)的微秒數, ‘/’表示取模運算, ‘%’表示取余運算

為什么對高8位取模對低8位取余就可以呢?

圖1. N 取模 取余原理圖

圖中將8個(gè)二進(jìn)制位看成一個(gè)單位,低8位表示數的范圍[0, 255],高8位表示數的范圍[0, 255 * 256],得到高8位是低8位的256倍。不防將此16位表示的十進(jìn)制數看成256進(jìn)制數。,然后對數的求模值放在256位(此位的值等于實(shí)際值(8位二進(jìn)制換算得來(lái))乘以權值256),對數的求余放在個(gè)位(此位的值等于實(shí)際值(8位二進(jìn)制換算得來(lái))乘以權值1),然后將得來(lái)的數求和就是此數了。就相當于一個(gè)十進(jìn)制數K一樣,K取10 的模得到十位的值,K取10的余得到個(gè)位的值。沒(méi)注意就想到了這點(diǎn),忽悠出來(lái)一個(gè)256進(jìn)制數的求模求余算法。

我猜一下:我覺(jué)得關(guān)于十進(jìn)制數的算法應該是符合任意一種進(jìn)制數的算法的,小學(xué)的數學(xué)只是以十進(jìn)制為載體,思想可用于任意進(jìn)制數,然后數也可以是任意進(jìn)制的,看此進(jìn)制數在現實(shí)生活中的用途來(lái)決定其出現的頻率了



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>