设为首页 加入收藏

TOP

单片机C语言编程定时器的几种表达方式
2014-11-24 14:39:17 来源: 作者: 【 】 浏览:14
Tags:单片机 语言编程 定时器 表达 方式

单片机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


因此,在设置时间前,一定要考虑晶振和定时器的关系。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android关于Activity切换效果的实.. 下一篇如何把多个Android Project打包成..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: