<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          1 機(jī)器周期

          本文引用地址:http://www.ex-cimer.com/article/201611/318662.htm

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

          2 時(shí)鐘周期

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

          3 晶振頻率

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

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

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

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

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

          THn = (65536 - T) / 256

          TLn = (65536 - T) % 256

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

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

          圖1. N 取模 取余原理圖

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

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



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();