微控制器C51,對定時器計數器初值設定

時間 2022-05-04 23:08:53

1樓:匿名使用者

51微控制器12m晶振時,定時/計數器的時鐘為1us,所以單個16位的定時/計數器能達到的最大定時時間為:65536*1us=65.536ms,所以12m晶振的情況下,用單個16位定時器得不到100ms的定時。

這時可更換頻率較低的晶振或用以下兩種軟體的方法:

1、定時器累加。用乙個計數值來記錄定時器的中斷次數。比如,設定定時器10ms中斷,用乙個計數值來記錄定時器的中斷次數,每中斷一次計數加1,這樣計數值為10時候,定時器中斷10次,即為100ms,然後將計數值清0,重新計數。

這個方法會有小小誤差,因為操作計數值的時候會占用一點時間,這個時間比較短。

2、2個定時/計數器串聯。乙個用作定時器,乙個用作計數器。定時器中斷的時候輸出乙個脈衝作為計數器的計數脈衝,設定乙個計數值,計數滿的時候中斷。總的定時時間的原理同上。

至於定時/計數器的操作,樓上兩位說得很清楚了。

2樓:匿名使用者

我覺得算是規定吧,51微控制器的匯程式設計序中a到f前面都要加0。

微控制器c51,對定時器/計數器初值設定

3樓:閃從霜蓋吉

乙個用作定時器。定時器中斷的時候輸出乙個脈衝作為計數器的計數脈衝,設定乙個計數值,計數滿的時候中斷,這樣計數值為10時候,定時器中斷10次,用乙個計數值來記錄定時器的中斷次數,乙個用作計數器。

至於定時/計數器的操作;計數器串聯.536ms,所以12m晶振的情況下,然後將計數值清0,重新計數,即為100ms。總的定時時間的原理同上。

這個方法會有小小誤差,因為操作計數值的時候會占用一點時間,這個時間比較短。

2、2個定時/,用單個16位定時器得不到100ms的定時。這時可更換頻率較低的晶振或用以下兩種軟體的方法:

1、定時器累加。用乙個計數值來記錄定時器的中斷次數。比如;計數器能達到的最大定時時間為:

65536*1us=65,每中斷一次計數加151微控制器12m晶振時,定時/計數器的時鐘為1us,所以單個16位的定時/,設定定時器10ms中斷

微控制器定時器/計數器設定初值有什麼用?各位大俠

4樓:

決定你要定時的時間,因為計數器是減法計算,所以要定初值,

5樓:匿名使用者

設定初值後,計數器將從此開始計數,知道資料溢位時,向主程式請求中斷;

例如:th0=(65536-50000)/256;

tl0=(65536-50000)%256;

計數器將從(65536-50000)開始計數;

計滿65536後溢位,定時了50ms,

如果不設初值,微控制器預設從0開始;

求助,51微控制器定時器初值設定問題

6樓:匿名使用者

第一句就是將,(65536-5000)的高八位賦值給th0

第二句就是將,(65536-5000)的低八位賦值給tl0

256就是2的8次方,乙個數除以256相當於右移8位。mod是求模的意思。

7樓:蘭色星期八

因為定時器分高8位和低8位,所以th0取的是65536-5000的轉換成16進製制的高8位,tl0取低8位!

8樓:匿名使用者

65536-5000的結果為16位,結果的高8位整數送到th0(定時器高八位),結果的低8位送到tl0(定時器低八位),#(65536-5000)/256就是求結果高8位,#(65536-5000)mod 256就是求結果低,8位。

9樓:匿名使用者

1、假設定時的要求是5000個計時脈衝。那麼我們希望t0的16位計數模式初值為x=65536-5000。

2、t0計數初值x的高8位,將x除以256,或x右移8位得到。給th0。

3、t0計數初值x的低8位,將x取餘256,或者x&0x00ff,或者左移8位右移8位得到。給tl0。

4、採用常量表示式交給編譯器完成計算過程,程式可讀性更好。方便閱讀,改寫,效果與實際定時值寫法完全一致。

微控制器 計數器 設定計數初值

10樓:

第一:微控制器的計數器的作用就是計數。微控制器內部有晶振(好比人的心臟),為微控制器工作提供脈衝,每來一脈衝,它就計數一次,此時記錄的是微控制器內部的時鐘脈衝。

而定時的工作原理也是計數。每計一次數,都會流過一段時間,所以可以用計數這種方式來實現它的定時功能,此時是對外部輸入訊號的計數。

第二:上面已回答

第三:初值是在程式中自己根據需要設定的,不是手動通過按鍵來實現。方式1,每計滿時(65536),需要重新賦初值,就是在中斷函式裡再寫一遍賦初值的語句(如果你用的是中斷法,當然也可以用查詢法),因此方式一計數並不十分精確。

而方式2為8為自動重灌模式,無需再賦初值,故較之方式一,精確許多。而設計鐘錶類的計時儀器,他們顯然不行,得用市面上售的專用晶元,時鐘晶元。

第四:1,2很常用,熟練掌握。據說方式0,基本沒用過,他是比80c51還要早的微控制器裡用的。

80c51跟以前的相容,同時也是從那裡發展而來,因而具有這一功能。方式二,可以嘗試用一下。

11樓:匿名使用者

看看datasheet,主頻,分頻係數,加/減計數。。

定時器/計數器初值設定方法

12樓:有學問的免子

1機器週期=12(51系列為12時鐘週期,有的改進型微控制器是1時鐘週期)×時鐘週期=12(1)×(1/晶振頻率m)=1us(1/12us,如採用12m晶體)。

以定時50ms為例

如果定時器在方式1工作,是16位計數器,最大值為65536(216),也就是能進行最大65536次計數。而50ms定時操作需要50000個機器週期,1個機器週期=1us,所以需要50000次計數操作。

為了計數器定時器工作,需要預先填充定時器初值(初值=定時器計數最大計數次數-所需定時計數次數)。所以需設定定時器初值15536=65536-50000,即3cb0h(10進製15536轉換成16進製制數3cb0),所以th0=0x3c,tl0=0xb0,高位就是th0的值,低位為tl0的值。

如果使用11.0592mhz的晶振,其他條件不變,11.0592m的晶振每秒可產生0.

9216m個機器週期,50ms就需要46080個機器週期。定時器在方式1工作,是16位計數器,最大值為65536,所以需設定初值19456=65536-46080,即4c00h,所以th0=0x4c,tl0=0x00。

由上面的分析,我們可以得出推導16位定時器/計數器初值設定高8位th0,低tl0的公式為:

th0=(65536-所需計數次數)/256=初值/256;

tl0=(65536-所需技術次數)%256=初值%256;

c51微控制器流水燈程式設計問題,C51微控制器流水燈程式問題定義無效

把p1 crol 0,1 改為 p1 crol p1,1 delay函式中while i 後面分號去掉。crol 0,1 意思是把 0 迴圈左移一位,你賦值給p1,p1輸出一直都是零,所有的燈自然都是一直亮的。看看我的程式 include include unsigned char temp voi...

51微控制器的復位電路,c51微控制器復位電路的工作原理

裝置掉電 時,電容負極經 電阻到gnd,電容 正極直接接vcc,那麼可以認為電容再次對 目標板晶元 或裝置供電,但由於電容 容量很小,很快放盡.下次上電時,又可重新復位 電容剛充電時相當於和電阻分壓,當電容電衝滿了,電阻的負載變小使ret變為低電瓶 給電自動復位一次就是上電復位,還有手動復位 原理就...

最簡單c51微控制器液晶顯示程式,51微控制器液晶1602的C程式誰有,給個簡單的顯示乙個字元A的

詳細請見 51微控制器液晶1602的c程式誰有,給個簡單的顯示乙個字元a的 解決方法很多 查1602手冊可知,38h 即00111000 為第6條指令格式 001dlnf 對應可知,nl 1,高電平4位匯流排,低電平8位匯流排 題目8位資料介面是錯的 n 1,高電平為雙行顯示,低電平為單行顯示,所以...

C51系列微控制器的實際運用,89c51微控制器應用在什麼領域

微控制器的主要應用領域 由於微控制器有許多優點,因此其應用領域之廣,幾乎到了無孔不入的地步。微控制器應用的主要領域有 1 智慧型化家用電器 各種家用電器普遍採用微控制器智慧型化控制代替傳統的電子線路控制,公升級換代,提高檔次。如洗衣機 空調 電視機 錄影機 微波爐 電冰箱 電飯煲以及各種視聽裝置等。...

微控制器手動復位電路的理解,c51微控制器復位電路的工作原理

電阻給電容充電,電容的電壓緩慢上公升直到vcc,沒到vcc時晶元復位腳近似低電平,於是晶元復位,接近vcc時晶元復位腳近高電平,於是晶元停止復位,復位完成。這裡需要注意 電容的端電壓不會突變!當微控制器剛加上電源時,電容的初始端電壓為零,微控制器復位端處於復位電平,5v直流電源通過電阻給電容充電,使...