书山有路勤为径,学海无涯苦作舟!qiang.blog.chinaunix.net
dongliqiang1985
全部博文(262)
2012年(1)
2011年(168)
2010年(92)
2009年(1)
ai616818
crjwlaq
ARMzyp
2909157
jyhhappy
zhanglia
yuweixia
kylie201
doopney
cynthia
浪花小雨
格伯纳
Anthony_
飒沓沓沓
mude918
top04137
shouyu92
Hey_Ligh
分类: C/C++
2010-12-15 22:08:35
/* * 文件:delay.h * 时间:2010-12-14 * 作用:延时程序 * 说明:晶振-115200/12M */#ifndef __DELAY_H_#define __DELAY_H_#define RATE_110592 //定义晶振频率#ifdef RATE_110592//延时1ms void delay_ms(unsigned int ms) { unsigned int i; for(i=0;i<ms;i++) { TMOD=0x01; //定时器0,工作在模式1 TF0=0; //清溢出标志位,软清零 TH0=0xfc; TL0=0x66; TR0=1; //启动定时器0 while(TF0==0){;} //定时器无溢出,循环等待 TR0=0; //关闭定时器0 } } //延时10ms void delay_10ms(unsigned int ms) { unsigned int i; for(i=0;i<ms;i++) { TMOD=0x01; //定时器0,工作在模式1 TF0=0; //清溢出标志位,软清零 TH0=0xdc; TL0=0x0; TR0=1; //启动定时器0 while(TF0==0){;} //定时器无溢出,循环等待 TR0=0; //关闭定时器0 } }//延时50ms void delay_50ms(unsigned int ms) { unsigned int i; for(i=0;i<ms;i++) { TMOD=0x01; //定时器0,工作在模式1 TF0=0; //清溢出标志位,软清零 TH0=0x4c; TL0=0x0; TR0=1; //启动定时器0 while(TF0==0){;} //定时器无溢出,循环等待 TR0=0; //关闭定时器0 } }#endif //RATE_115200 #ifdef RATE_12M//延时1ms void delay_ms(unsigned int ms) { unsigned int i; for(i=0;i<ms;i++) { TMOD=0x01; //定时器0,工作在模式1 TF0=0; //清溢出标志位,软清零 TH0=0xfc; TL0=0x18; TR0=1; //启动定时器0 while(TF0==0){;} //定时器无溢出,循环等待 TR0=0; //关闭定时器0 } } //延时10ms void delay_10ms(unsigned int ms) { unsigned int i; for(i=0;i<ms;i++) { TMOD=0x01; //定时器0,工作在模式1 TF0=0; //清溢出标志位,软清零 TH0=0xd8; TL0=0xf0; TR0=1; //启动定时器0 while(TF0==0){;} //定时器无溢出,循环等待 TR0=0; //关闭定时器0 } } //延时50ms void delay_50ms(unsigned int ms) { unsigned int i; for(i=0;i<ms;i++) { TMOD=0x01; //定时器0,工作在模式1 TF0=0; //清溢出标志位,软清零 TH0=0x3c; TL0=0xb0; TR0=1; //启动定时器0 while(TF0==0){;} //定时器无溢出,循环等待 TR0=0; //关闭定时器0 } } #endif //RATE_12M #endif
上一篇:51单片机定时器初值的计算
下一篇:单链表操作-C语言
登录 注册