什麼是時鐘週期?什麼是機器週期?什麼是指令週期?
時鐘週期1.晶振12m
12mhz除12為1mhz,也就是說一秒=1000000次機器週期。10ms=10000次 機器週期。
65536-10000=55536(d8f0)
th0=0xd8,tl0=0xf0
2.晶振11.0592m
11.0592mhz除12為921600hz,就是一秒921600次機器週期,10ms=9216次機器週期。
65536-9216=56320(dc00)
th0=0xdc,tl0=0x00
1.晶振12m
12mhz除12為1mhz,也就是說一秒=1000000次機器週期。50ms=50000次 機器週期。
65536-50000=15536(3cb0)
th0=0x3c,tl0=0xb0
2.晶振11.0592m
11.0592mhz除12為921600hz,就是一秒921600次機器週期,50ms=46080次機器週期。
65536-46080=19456(4c00)
th0=0x4c,tl0=0x00
以12m晶振為例:每秒鐘可以執行1000000次機器週期個機器週期。而t 每次溢位 最多65536 個機器週期。我們盡量應該讓溢位中斷的次數最少(如50ms),這樣對主程式的干擾也就最小。 開發的時候可能會根據需要更換不同頻率的晶振(比如c51微控制器,用11.0592m的晶振,很適合產生串列埠時鐘,而12m晶振很方便計算定時器的時間),使用插接式比較方便。
對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
本文**:
51微控制器定時器初值計算
菜鳥關於51類微控制器的定時器初值計算問題的計算 首先先來介紹微控制器的幾個週期 1 時鐘週期,也稱為振盪週期 定義為時鐘脈衝的倒數,在微控制器中也就等於晶振的倒數。51微控制器中把乙個時鐘週期定義為乙個節拍 用p表示 2個節拍定義為狀態週期 用s表示 時鐘週期是微控制器中最小的時間單位。eg 12...
51微控制器定時器初值計算問題
最近在看51微控制器的定時器與中斷,作為51微控制器比較重點的內容,很多人也花費了很長時間在這上面,有些問題網上的資料方法各不相同,也看得雲裡霧裡,比如定時器的初值計算問題,在此我想以此篇作為學習筆記,希望可以對大家有所幫助。定時器內部一暫存器,每隔乙個機器週期就會自動加1,直到加到65535就會溢...
單 片 機 定 時 器 初 值 例項計 算
一 10ms定時器初值的計算 1.晶振12m 12mhz除12為1mhz,也就是說一秒 1000000次機器週期。10ms 10000次 機器週期。65536 10000 55536 d8f0 th0 0xd8,tl0 0xf0 2.晶振11.0592m 11.0592mhz除12為921600hz...