單片機機器周期的計算

2021-02-08 電子產品世界
單片機的定時器的周期怎麼算?就是比如定時器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.eepw.com.cn/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語言模擬這個信號是沒有辦法做到的一一對應的,所以只能儘量和上面的時序相同,周期延長。


相關焦點

  • 單片機的機器周期計算
    _u=ukgdp5a7629&id=524088004171】單片機的機器周期計算這麼個最簡單的問題,總是忘記,現在乾脆給記下來,以後再忘記的話就看一看好了。1、時鐘周期時鐘周期T又稱為狀態周期,是時序中最小的時間單位。具體計算就是1/fosc。也就是說如果晶振為1MHz,那麼時鐘周期就為1us;6MHz的話,就是1/6us。
  • 51單片機指令周期,機器周期,時鐘周期詳解
    51單片機有指令周期,機器周期,時鐘周期的說法,看似相近,但是又都不太一樣,很容易混淆,還是詳細分析一下。
  • 單片機定時器延時程序
    1 使用定時器/計數器實現精確延時單片機系統一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,後兩種的一個機器周期分別為1 μs和2 μs,便於精確延時。本程序中假設使用頻率為12 MHz的晶振。最長的延時時間可達216=65 536 μs。
  • 51單片機產生PWM方法
    當程序除了要輸出pwm波還要執行其他操作比如鍵盤掃描、顯示等操作時,需要佔用CPU一定的機器周期,這樣就會影響pwm的準確度。現在很少會用到這種方法,接下來要介紹的是比較常用的方法。 2 定時器產生pwm這種方法利用了定時器溢出中斷,在中斷服務程序改變電平的高低,在程序較複雜、多操作時仍能輸出較準確的pwm波形。
  • 單片機裡的時鐘源有什麼不同
    打開APP 單片機裡的時鐘源有什麼不同 英銳恩 發表於 2020-06-29 14:33:32 以英銳恩單片機為例,EN8F156便擁有穩定的時鐘源。但不是所有單片機的時鐘源都一樣,由於每條指令在一定數量的時鐘周期後執行,具體取決於單片機的架構。比如,有些人支持使用PLL電路在內部進一步提高時鐘速率的能力。   目前,有許多類型的時鐘源。可以使用簡單的RC電路作為時鐘源,但是它們並不精確,因為它們會隨溫度而發生變化。這類時鐘源適用於正常處理和SPI等同步協議。
  • 單片機簡介
    單片機簡介數字電路簡介在一個控制系統中, 單片機是電路的一部分, 單片機中的程序是針對其所在的電路編寫的。因此,要對單片機編程並實現一定的功能,必須了解整個系統的電路圖。單片機編程是針對某個特定的電路進行的單片機編程是針對某個特定的電路進行的, 這一點和普通的編程不一樣。 編程時很可能要經常參照電路圖。
  • 51單片機的幾種精確延時
    1  使用定時器/計數器實現精確延時  單片機系統一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,後兩種的一個機器周期分別為1 μs和2 μs,便於精確延時。本程序中假設使用頻率為12 MHz的晶振。最長的延時時間可達216=65 536 μs。
  • 如何設置單片機定時器?
    在單片機的學習過程中,單片機定時器的合理設置和應用是非常關鍵的一步,也是剛開始接觸單片機知識的新人工程師們比較容易出錯誤的一個環節之一
  • Avr單片機和Stm32區別,Avr單片機選型技巧
    、TI、ST、MicroChip、ARM…國內的宏晶STC單片機也是可圈可點。最為初學者首先要搞清楚他們之間的區別,掌握avr單片機選型技巧,才能夠更好的設計產品。一:avr單片機和STM32區別-STM32單片機介紹由ST廠商推出的STM32系列單片機,行業的朋友都知道,這是一款性價比超高的系列單片機,應該沒有之一,功能及其強大。
  • C語言和彙編語言在開發單片機時各有哪些優缺點?
    設計編碼程序可以分為三個部分。 第一部分是了解碼型的特性。遙控碼的頭碼和地址碼(也稱為客戶碼)是固定不變的,數據碼和校驗碼根據不同的鍵值而改變。 第二部分是計算發碼時間。遙控碼大部分都是由邏輯「1」和邏輯「0」組成,也就是由一串固定佔空比、固定周期的方波所組成。通常這些方波的周期是毫秒甚至微秒等級,需要在時間上計算的比較精確。
  • 使用Keil C進行51單片機延時程序編寫的幾點心得
    有時候還需要很高的精度,比如用單片機驅動 DS18B20的時候,誤差容許的範圍在十幾us以內,不然很容易出錯。這種情況下,用計時器往往有點小題大做。而在極端的情況下,計時器甚至已經全部派上了別的用途。這時就需要我們另想別的辦法了。以前用彙編語言寫單片機程序的時候,這個問題還是相對容易解決的。
  • MSP430單片機的選型及系列介紹
    同時採用Harvard雙總線結構,運行速度快,它能使程序存儲器的訪問和數據存儲器的訪問並行處理,這種指令流水線結構,在一個周期內完成兩部分工作,一是執行指令,二是從程序存儲器取出下一條指令,這樣總的看來每條指令只需一個周期,這也是高效率運行的原因之一。PIC單片機之所以成為一時非常熱的單片機不外乎以下特點:(1)具有低工作電壓、低功耗、驅動能力強等特點。
  • 單片機的程式語言:彙編語言、C語言、PL/M和BASIC語言
    早期的BASIC語言由於生成的代碼不是最終目標機器的代碼,而是經過一個RUNTIME程序解釋後運行的,所以執行效率低,但這種逐行解釋的方法很容易找到程序中的錯誤,而不是當程序執行完才能顯現出來。而單片機的BASIC編譯器是直接將程序代碼編譯成相應晶片的機器碼,不需要在單片機的內存中駐留RUNTIME程序,執行效率與其他編譯器編譯出來的一樣。
  • 怎樣玩轉STM8單片機
    最初從單片機學習整個計算機系統是個非常正常的階梯學習方法。
  • 7大主流單片機優缺點分析,一文打盡趕緊收藏!
    同時採用Harvard雙總線結構,運行速度快,它能使程序存儲器的訪問和數據存儲器的訪問並行處理,這種指令流水線結構,在一個周期內完成兩部分工作,一是執行指令,二是從程序存儲器取出下一條指令,這樣總的看來每條指令只需一個周期,這也是高效率運行的原因之一。PIC單片機之所以成為一時非常熱的單片機不外乎以下特點:具有低工作電壓、低功耗、驅動能力強等特點。
  • 單片機科普:單片機的IO口不夠用了怎麼辦?如何擴展單片機的IO口
    同樣的功能,每個人、每個團隊所做的技術方案都不會相同,但是單片機加外設的構架不會變。足可以看出單片機在電子設計中的重要性。1-華為榮耀體脂秤電路板-芯海的單片機在設計單片機電路的過程中,往往會遇到這種情況:單片機的GPIO口不夠用,但是又不是缺很多,如果要更換更多引腳的單片機可能會貴一些
  • 單片機pwm控制基本原理詳解
    51單片機學習網 歡迎喜歡電子愛好者,本平臺主要介紹電子電路應用,單片機,plc,逆變器,變頻器,diy製作一些有創意的電子產品,這是一個共享學習的平臺。圖 10-1 PWM 波形這是一個周期是 10ms,即頻率是 100Hz 的波形,但是每個周期內,高低電平脈衝寬度各不相同,這就是 PWM 的本質。在這裡大家要記住一個概念,叫做「佔空比」。佔空比是指高電平的時間佔整個周期的比例。比如第一部分波形的佔空比是 40%,第二部分波形佔空比是 60%,第三部分波形佔空比是 80%,這就是 PWM 的解釋。
  • 盤點當今市面主流單片機,總有一款適合你!
    特性2:在運算速度方面,能在 8MHz 晶體的驅動下,實現 125ns 的指令周期。 16 位的數據寬度、 125ns 的指令周期以及多功能的硬體乘法器(能實現乘加)相配合,能實現數位訊號處理的某些算法(如 FFT 等)。
  • 8大主流單片機優缺點分析,看看你用過哪一款
    同時採用Harvard雙總線結構,運行速度快,它能使程序存儲器的訪問和數據存儲器的訪問並行處理,這種指令流水線結構,在一個周期內完成兩部分工作,一是執行指令,二是從程序存儲器取出下一條指令,這樣總的看來每條指令只需一個周期,這也是高效率運行的原因之一。PIC單片機之所以成為一時非常熱的單片機不外乎以下特點:具有低工作電壓、低功耗、驅動能力強等特點。
  • RAM在單片機裡有什麼樣的作用
    直到90年代初,國內容易得到的單片機就是8031:不帶存儲器的晶片,要想工作,還必需外加RAM和ROM,單片機成了3片機.現在不同了,大的小的又是51,又是AVR又是STC,還有什麼430,PIC等等,都各說各的好,可是誰也不敢說「我不要存儲器」。單片機內,有這麼幾種數據存儲手段:1、程序存儲器:裡面存放的是單片機的靈魂:工作程序。