英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
几个简单的延时程序(C语言),希望大家设计时能用到
[打印本页]
作者:
winnie
时间:
2009-3-13 14:50
标题:
几个简单的延时程序(C语言),希望大家设计时能用到
/*******************************************************************************/
//函数名:delay_tmr0() 4MHz
//功能描述:TMR0延时 50ms.最大延时65ms
//调用函数:无
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:TMR0
//设计者:李军建 日期:2008.1.11
//修改者: 日期:
/*******************************************************************************/
void delay_tmr0()
{
OPTION=0X07;
for(;;)
{
if(TMR0==0XC3)
{ TMR0=0X00;
break;
}
}
}
/*******************************************************************************/
//函数名:delay_tmr1() 4MHz
//功能描述:TMR1延时 200ms.最大延时520ms
//调用函数:无
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:TMR1
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay_tmr1()
{
TMR1IE=0; //关TMR1中断
T1CON=0X34; //TMR1分频1:1,4分频24H,不同步外部时钟,选择内部时钟,关闭TMR1
TMR1H=0X3C;
TMR1L=0XB0; //3CB0 就是200MS
TMR1ON=1;
while(1)
{ if(TMR1IF==1)
break;
}
TMR1IF=0;
TMR1ON=0;
}
/*******************************************************************************/
//函数名:delay_tmr2() 4MHz
//功能描述:TMR2延时 4ms.最大延时4ms
//调用函数:无
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:TMR2
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay_tmr2()
{
TMR2IE=0; //关TMR2中断
T2CON=0X03; //预分频16
TMR2=0X00;
TMR2ON=1; //256*16=4096
while(1)
{ if(TMR2IF==1)
break;
}
TMR2IF=0;
TMR2ON=0;
}
/*******************************************************************************/
//函数名:delay_cpu() 4MHz
//功能描述:cpu软件延时 4ms.
//调用函数:无
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:无
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay_cpu()
{
int i,j;
for(i=0;i<200;i++)
{
for(j=0;j<200;j++);
}
}
/*******************************************************************************/
//函数名:delay() 4MHz
//功能描述:延时
//调用函数:delay_tmr2();
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:无
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay()
{
int dtm;
for(dtm=20;dtm>0;dtm--)
{
delay_tmr2();
}
}
/*******************************************************************************/
//函数名:delay_on() 4MHz
//功能描述:延时
//调用函数:delay_tmr1();
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:无
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay_on()
{
for(daa=mult;daa>0;daa--)
{
delay_tmr1();
}
}
/*******************************************************************************/
//函数名:delay_oneoff() 4MHz
//功能描述:延时
//调用函数:delay_tmr1();
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:无
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay_oneoff()
{
for(daa=rate;daa>0;daa--)
{
for(daa1=mult;daa1>0;daa1--)
{
delay_tmr1();
}
}
}
/*******************************************************************************/
//函数名:delay_fouroff() 4MHz
//功能描述:延时
//调用函数:delay_tmr1();
//全局变量:无
//输入:无
//输出:无
//返回:无
//占用资源:无
//设计者:李军建 日期:2008.06.03
//修改者: 日期:
/*******************************************************************************/
void delay_fouroff()
{
for(daa=rate-7;daa>0;daa--)
{
for(daa1=mult;daa1>0;daa1--)
{
delay_tmr1();
}
}
}
/*******************************************************************************/
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2