單片機(jī)C語言編程中,定時(shí)器的初值對于初學(xué)者真的是比較不好計(jì)算,因此我總結(jié)了以下幾種方法。
第1種方法:
#define FOSC 11059200L //晶振的頻率
#define TIMS (65536-FOSC/12/1000) //12T mode 對于8051系列單片機(jī)通用
//#define TIMS (65536-FOSC/1000) //1T mode STC單片機(jī)可以用這個
unsigned int timer0_tick;
int timer0_count;
void Timer0(void) interrupt 1 using 1 //定時(shí)器0中斷外理
{
TL0=TIMS;
TH0=TIMS>>8;
if(timer0_tick--==0) //加到1000次即1秒
{
timer0_tick=1000;
LED_Timer=~LED_Timer;
}
}
初值的賦值采用的是移位運(yùn)算:
TL0=TIMS;
TH0=TIMS>>8;
第2種方法:
#define FOSC 11059200L //晶振的頻率
TH=(65536-time*FOSC /12)/256
TL=(65536-time*FOSC /12)%256
time就是假設(shè)要延時(shí)的100ms(要取100000us)
FOSC 是晶振頻率
注意:定時(shí)器一定要考慮晶振的頻率,因?yàn)閱纹瑱C(jī)最小的中斷時(shí)間和頻率有關(guān)系。
例如:
6MHz晶振對應(yīng)的時(shí)間范圍是:512us --- 16.384ms --- 131.072ms
因此,在設(shè)置時(shí)間前,一定要考慮晶振和定時(shí)器的關(guān)系。
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44914瀏覽量
646608 -
晶振
+關(guān)注
關(guān)注
34文章
3194瀏覽量
69517 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3287瀏覽量
117151
原文標(biāo)題:單片機(jī)C語言編程定時(shí)器的幾種表達(dá)方式
文章出處:【微信號:changxuemcu,微信公眾號:暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Winbond 51單片機(jī)定時(shí)器初值計(jì)算器(工具軟件)
51單片機(jī)定時(shí)器初值計(jì)算軟件工具

單片機(jī)視頻教程06:使用定時(shí)器的方法

14709225341T單片機(jī)定時(shí)器初值計(jì)算器

單片機(jī)定時(shí)器初值計(jì)算公式(51單片機(jī)和AVR單片機(jī)的初值計(jì)算三種方法)
使用51單片機(jī)進(jìn)行定時(shí)器初值的計(jì)算詳細(xì)資料說明

51單片機(jī)的兩種方法點(diǎn)亮LED的C語言程序免費(fèi)下載

使用51單片機(jī)進(jìn)行定時(shí)器初值計(jì)算的詳細(xì)資料說明

單片機(jī)定時(shí)器賦初值的方法解析

單片機(jī)實(shí)現(xiàn)延時(shí)兩種方法

51單片機(jī)定時(shí)器初值計(jì)算詳解

51單片機(jī)定時(shí)器初值計(jì)算問題

51單片機(jī)定時(shí)器初值計(jì)算以及初值計(jì)算軟件

評論