600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > c语言程序设计分段定时器 单片机C语言编程定时器的几种表达方式

c语言程序设计分段定时器 单片机C语言编程定时器的几种表达方式

时间:2019-02-27 20:42:34

相关推荐

c语言程序设计分段定时器 单片机C语言编程定时器的几种表达方式

原标题:单片机C语言编程定时器的几种表达方式

吴鉴鹰单片机开发板地址

店铺:【吴鉴鹰的小铺】

地址:【/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

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

喜欢本文的亲们,欢迎点赞哦

技术源于积累,成功来自执着

——单片机精讲吴鉴鹰返回搜狐,查看更多

责任编辑:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。