微控制器的定時器的週期怎麼算?就是比如定時器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,是雙週期指令.
微控制器定時器定時計算方法
對12mhz 1個機器週期 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,
10ms thx = 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
2023年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語言模擬這個訊號是沒有辦法做到的一一對應的,所以只能盡量和上面的時序相同,週期延長。
微控制器機器週期怎麼計算公式 微控制器的機器週期計算
微控制器的機器週期計算這麼個最簡單的問題,總是忘記,現在乾脆給記下來,以後再忘記的話就看一看好了。1 時鐘週期 時鐘週期t又稱為狀態週期,是時序中最小的時間單位。具體計算就是1 fosc。也就是說如果晶振為1mhz,那麼時鐘週期就為1us 6mhz的話,就是1 6us。2 機器週期 機器週期定義為實...
微控制器機器週期怎麼計算公式 微控制器與晶振有什麼關係
在初學微控制器的時候,總是伴隨很多有關於晶振的問題,其實晶振就是如同人的心臟,是血液的脈搏,把微控制器的晶振問題搞明白了,51微控制器的其他問題迎刃而解 什麼是晶振 晶振一般叫做晶體諧振器,是一種機電器件,是用電損耗很小的石英晶體經精密切割磨削並鍍上電極焊上引線做成。晶振,全稱是石英晶體振盪器,是一...
微控制器的時鐘週期 機器週期 指令週期
時鐘週期,一般也稱振盪週期。如果晶振的輸出沒有經過分頻或倍頻就直接作為cpu的工作時鐘,則時鐘週期就等於晶振的振盪週期 如果晶振的輸出經過分頻或倍頻後作為cpu的工作時鐘,則時鐘週期就就是分頻或倍頻後的。即,時鐘週期是cpu的實際工作頻率的倒數,它在這裡插入 片是計算機中最基本的 最小的時間單位。比...