Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 单片机C语言编程定时器的几种表达方式

单片机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)%256time就是假设要延时的100ms(要取100000us)FOSC 是晶振频率注意:定时器一定要考虑晶振的频率,因为单片机最小的中断时间和频率有关系。例如:6MHz晶振对应的时间范围是:512us  --- 16.384ms --- 131.072ms因此,在设置时间前,一定要考虑晶振和定时器的关系。