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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)機(jī)器周期的計(jì)算

          單片機(jī)機(jī)器周期的計(jì)算

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          單片機(jī)的定時(shí)器的周期怎么算?就是比如定時(shí)器TF0置1的時(shí)間,我的晶振是11。0592MHz的 怎么算 還有就是時(shí)鐘周期,狀態(tài)周期,機(jī)器周期的概念和聯(lián)系及換算?
          你的不明白其實(shí)就是對于定時(shí)器的初值問題,11.0592是始終的晶振,時(shí)鐘周期就是1/11.0592M 而定時(shí)器的周期就是12/11.0592 因?yàn)?strong>51單片機(jī)是12分頻的
          。
          還有很多......
          如果你寫的是C的話建議這樣寫
          TMOD=0X01// 定時(shí)器0方式1
          TH0=(65535-50000)/256;//因?yàn)槭?6位計(jì)數(shù) 假設(shè)晶振為12MHZ 11.0592的是4600多吧,自己算算...
          TL=(65536-50000)%256;
          EA=1;
          ET0=1;
          TR0=1;
          主要的計(jì)算就是其中的50000 中斷一次所需要的時(shí)間就是50000乘以剛才所算的定時(shí)器的周期 (這個(gè)是50MS) 
          也就是你說的:就是比如定時(shí)器TF0置1的時(shí)間 中斷的時(shí)候TF0 要求CPU中斷而引起中斷
          好了
          12倍的時(shí)間周期就是機(jī)械周期,(剛才說過是12分頻的)
          時(shí)鐘周期:
           時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘脈沖的倒數(shù)(可以這樣來理解,時(shí)鐘周期就是單片機(jī)外接晶振的倒數(shù),例如12M的晶振,它的時(shí)間周期就是1/12 us),是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。
           在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動作。對于某種單片機(jī),若采用了1MHZ的時(shí)鐘頻率,則時(shí)鐘周期為1us;若采用4MHZ的時(shí)鐘頻率,則時(shí)鐘周期為250us。由于時(shí)鐘脈沖是計(jì)算機(jī)的基本工作脈沖,它控制著計(jì)算機(jī)的工作節(jié)奏(使計(jì)算機(jī)的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機(jī)型的計(jì)算機(jī),時(shí)鐘頻率越高,計(jì)算機(jī)的工作速度就越快。
           8051單片機(jī)把一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示)。
          機(jī)器周期:
           在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個(gè)階段,每一階段完成一項(xiàng)工作。例如,取指令、存儲器讀、存儲器寫等,這每一項(xiàng)工作稱為一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。一般情況下,一個(gè)機(jī)器周期由若干個(gè)S周期(狀態(tài)周期)組成。
           8051系列單片機(jī)的一個(gè)機(jī)器周期同6個(gè) S周期(狀態(tài)周期)組成。前面已說過一個(gè)時(shí)鐘周期定義為一個(gè)節(jié)拍(用P表示),二個(gè)節(jié)拍定義為一個(gè)狀態(tài)周期(用S表示),8051單片機(jī)的機(jī)器周期由6個(gè)狀態(tài)周期組成,也就是說一個(gè)機(jī)器周期=6個(gè)狀態(tài)周期=12個(gè)時(shí)鐘周期。 
          例如外接24M晶振的單片機(jī),他的一個(gè)機(jī)器周期=12/24M 秒;
          指令周期
           執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成。指令不同,所需的機(jī)器周期也不同。 
          對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個(gè)或者兩個(gè)以上的機(jī)器周期。
           通常含一個(gè)機(jī)器周期的指令稱為單周期指令,包含兩個(gè)機(jī)器周期的指令稱為雙周期指令。
          總線周期:
           由于存貯器和I/O端口是掛接在總線上的,CPU對存貯器和I/O接口的訪問,是通過總線實(shí)現(xiàn)的。通常把CPU通過總線對微處理器外部(存貯器或 I/O接口)進(jìn)行一次訪問所需時(shí)間稱為一個(gè)總線周期。
          總結(jié)一下,時(shí)鐘周期是最小單位,機(jī)器周期需要1個(gè)或多個(gè)時(shí)鐘周期,指令周期需要1個(gè)或多個(gè)機(jī)器周期;機(jī)器周期指的是完成一個(gè)基本操作的時(shí)間,這個(gè)基本操作有時(shí)可能包含總線讀寫,因而包含總線周期,但是有時(shí)可能與總線讀寫無關(guān),所以,并無明確的相互包含的關(guān)系。
          指令周期:是CPU的關(guān)鍵指標(biāo),指取出并執(zhí)行一條指令的時(shí)間。一般以機(jī)器周期為單位,分單指令執(zhí)行周期、雙指令執(zhí)行周期等。現(xiàn)在的處理器的大部分指令(ARM、DSP)均采用單指令執(zhí)行周期。
          機(jī)器周期:完成一個(gè)基本操作的時(shí)間單元,如取指周期、取數(shù)周期。
          時(shí)鐘周期:CPU的晶振的工作頻率的倒數(shù)。
          (轉(zhuǎn))
           以51為例,晶振11.0592M,時(shí)鐘周期(晶振周期)就是(1/11.0592)μs,一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘周期(6個(gè)狀態(tài)周期),一個(gè)機(jī)器周期就是 1μs。一個(gè)機(jī)器周期一般是一條指令花費(fèi)的時(shí)間,也有些是2個(gè)機(jī)器周期的指令,DJNZ,是雙周期指令. 

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

          單片機(jī)定時(shí)器定時(shí)計(jì)算方法

          對12MHz1個(gè)機(jī)器周期 1us 12/fosc = 1us

          方式0 13位定時(shí)器最大時(shí)間間隔 = 2^13 =8.192ms
          方式1 16位定時(shí)器最大時(shí)間間隔 = 2^16 =65.536ms
          方式2 8位定時(shí)器最大時(shí)間間隔 = 2^8 =0.256ms =256 us

          定時(shí)5ms,計(jì)算計(jì)時(shí)器初值 M =2^K-X*Fosc/12 12MHz
          方式0: K=13,X=5ms,Fosc=12MHz 則 M = 2^13 -5*10^(-3)*12*10^6/12= 3192 = 0x0C78
          THx = 0CH,TLx = 78H,
          方式1: K=16,X=5ms,Fosc=12MHz 則 M = 2^16 -5*10^(-3)*12*10^6/12= 60536 = 0xEC78
          THx = ECH,TLx = 78H,

          50ms 12MHz THx = 3CH,TLx = B0H,
          10msTHx = D8H,TLx = F0H,
          方式2: 最大時(shí)間 2^8Fosc/12 = 0.256ms

          十進(jìn)制數(shù)是怎么來的?
          6MHz 一個(gè)機(jī)器周期 12/6 = 2us
          定時(shí)1ms 計(jì)數(shù)初值x
          (2^16-x)*2us = 1000us
          x = 2^16 - 500 ,TH,TL 可置 -500

          12MHz 一個(gè)機(jī)器周期 12/12 = 1us
          12MHz 一個(gè)機(jī)器周期 12/12 = 1us
          定時(shí)50ms 計(jì)數(shù)初值x
          (2^16-x)*1us = 50000us
          x = 2^16 - 50000 ,TH,TL 可置 -500

          定時(shí)器 計(jì)內(nèi)部晶振頻率
          計(jì)數(shù)器 計(jì)外部輸入CPU腳上的脈沖個(gè)數(shù) P3.4(T0) P3.5(T1) 負(fù)跳變加一
          當(dāng)晶振為6MHz時(shí),最高計(jì)數(shù)頻率500KHz

          寄存器
          1 TH TL
          2 TCON
          TR0 TR1 其他位是中斷控制位

          TMOD
          GATE C/T1 M1 M0 GATE C/T0 M1 M0


          2009年2月26日

          C8051F00X
          定時(shí)器:每個(gè)時(shí)鐘加1 時(shí)鐘可為系統(tǒng)時(shí)鐘或系統(tǒng)時(shí)鐘的1/12
          CKCON

          當(dāng)引腳上出現(xiàn)電平時(shí)啟動T0 當(dāng)不滿足時(shí),停止T0,讀出以后清零

          51 單片機(jī)指令周期,機(jī)器周期,時(shí)鐘周期詳解
          51單片機(jī)有指令周期,機(jī)器周期,時(shí)鐘周期的說法,看似相近,但是又都不太一樣,很容易混淆。還是詳細(xì)分析一下。

          時(shí)鐘周期:單片機(jī)外接的晶振的振蕩周期就是時(shí)鐘周期,時(shí)鐘周期=振蕩周期。比方說,80C51單片機(jī)外接了一個(gè)11.0592M的晶體振蕩器,那我們就說這個(gè)單片機(jī)系統(tǒng)的時(shí)鐘周期是1/11.0592M,這里要注意11.0592M是頻率,周期是頻率的倒數(shù)。

          機(jī)器周期:單片機(jī)執(zhí)行指令所消耗的最小時(shí)間單位。我們都知道51單片機(jī)采用的CISC(復(fù)雜指令指令集),所以有很多條指令,并且各條指令執(zhí)行的時(shí)間也可能不一樣(有一樣的哦),但是它們執(zhí)行的時(shí)間必須是機(jī)器周期的整數(shù)倍,這就是機(jī)器周期的意義所在。8051系列單片機(jī)又在這個(gè)基礎(chǔ)上進(jìn)行細(xì)分,將一個(gè)機(jī)器周期劃分為6個(gè)狀態(tài)周期,也就是S1-S6,每個(gè)狀態(tài)周期又由兩個(gè)節(jié)拍組成,P1和P2,而P1=P2=時(shí)鐘周期。這也就是經(jīng)常說的8051系列單片機(jī)的的時(shí)鐘頻率是晶振頻率的12分頻,或者是1/12,就是這個(gè)意思。現(xiàn)在(截至2012)新的單片機(jī)已經(jīng)能做到不分頻了,就是機(jī)器周期=時(shí)鐘周期。

          指令周期:指令周期執(zhí)行某一條指令所消耗的時(shí)間,它等于機(jī)器周期的整數(shù)倍。傳統(tǒng)的80C51單片機(jī)的指令周期大多數(shù)是單周期指令,也就是指令周期=機(jī)器周期,少部分是雙周期指令。現(xiàn)在(截至2012)新的單片機(jī)已經(jīng)能做到不分頻了,并且盡量單指令周期,就是指令周期=機(jī)器周期=時(shí)鐘周期。

          來看這張8051單片機(jī)外部數(shù)據(jù),這里ALE和$PSEN$的變化頻率已經(jīng)小于一個(gè)機(jī)器周期,如果使用C語言模擬這個(gè)信號是沒有辦法做到的一一對應(yīng)的,所以只能盡量和上面的時(shí)序相同,周期延長。



          關(guān)鍵詞: 單片機(jī)機(jī)器周

          評論


          技術(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); })();