新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機機器周期的計算

        單片機機器周期的計算

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

        本文引用地址:http://www.104case.com/article/201611/318660.htm

        單片機定時器定時計算方法

        對12MHz1個機器周期 1us 12/fosc = 1us

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

        定時5ms,計算計時器初值 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: 最大時間 2^8Fosc/12 = 0.256ms

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

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

        定時器 計內部晶振頻率
        計數器 計外部輸入CPU腳上的脈沖個數 P3.4(T0) P3.5(T1) 負跳變加一
        當晶振為6MHz時,最高計數頻率500KHz

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

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


        2009年2月26日

        C8051F00X
        定時器:每個時鐘加1 時鐘可為系統時鐘或系統時鐘的1/12
        CKCON

        當引腳上出現電平時啟動T0 當不滿足時,停止T0,讀出以后清零

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

        時鐘周期:單片機外接的晶振的振蕩周期就是時鐘周期,時鐘周期=振蕩周期。比方說,80C51單片機外接了一個11.0592M的晶體振蕩器,那我們就說這個單片機系統的時鐘周期是1/11.0592M,這里要注意11.0592M是頻率,周期是頻率的倒數。

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

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

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



        關鍵詞: 單片機機器周

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 湖南省| 清远市| 阜平县| 青铜峡市| 澎湖县| 恩平市| 庆元县| 陆川县| 阜康市| 石台县| 汝阳县| 成安县| 隆化县| 萝北县| 东阿县| 南安市| 温州市| 达尔| 越西县| 方城县| 南陵县| 班玛县| 香格里拉县| 文山县| 德安县| 东乌| 阜南县| 旬邑县| 侯马市| 文昌市| 山西省| 平武县| 阿合奇县| 龙江县| 漳浦县| 潼南县| 永德县| 江川县| 迁安市| 凤山市| 中西区|