c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式
原標題:單片機C語言編程定時器的幾種表達方式
吳鑒鷹單片機開發板地址
店鋪:【吳鑒鷹的小鋪】
地址:【https://item.taobao.com/item.htm?_u=ukgdp5a7629&id=524088004171】
單片機C語言編程中,定時器的初值對于初學者真的是比較不好計算,因此我總結了以下幾種方法。
第1種方法:
#define FOSC 11059200L //晶振的頻率
#define TIMS (65536-FOSC/12/1000) //12T mode 對于8051系列單片機通用
//#define TIMS (65536-FOSC/1000) //1T mode STC單片機可以用這個
unsigned int timer0_tick;
int timer0_count;
void Timer0(void) interrupt 1 using 1 //定時器0中斷外理
{
TL0=TIMS;
TH0=TIMS>>8;
if(timer0_tick--==0) //加到1000次即1秒
{
timer0_tick=1000;
LED_Timer=~LED_Timer;
}
}
初值的賦值采用的是移位運算:
TL0=TIMS;
TH0=TIMS>>8;
第2種方法:
#define FOSC 11059200L //晶振的頻率
TH=(65536-time*FOSC /12)/256
TL=(65536-time*FOSC /12)%256
time就是假設要延時的100ms(要取100000us)
FOSC 是晶振頻率
注意:定時器一定要考慮晶振的頻率,因為單片機最小的中斷時間和頻率有關系。
例如:
6MHz晶振對應的時間范圍是:512us --- 16.384ms --- 131.072ms
因此,在設置時間前,一定要考慮晶振和定時器的關系。
喜歡本文的親們,歡迎點贊哦
技術源于積累,成功來自執著
——單片機精講吳鑒鷹返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷冬天可以玩吗
- 下一篇: 编程模拟洗牌和发牌过程c语言,洗牌发牌模