⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delay.c

📁 一个基于12M和6M晶振的延时函数
💻 C
字号:
//*******************************************************************
//该文件内所有函数均为为C51开发的延时函数
//说明:晶振频率选为12MHZ,6MHZ。(默认值为12MHZ)
//      每时间段的延时只有1us,2us,5us
//						  10us,20us,50us
//						  100us,200us,500us	
//						  1ms,2ms,5ms
//						  10ms,20ms,50ms			
//                        0.1s,0.2s,0.5s
//                        1s,2s,5s
//其余时间可由这些时间段组合出来。														
//作者:ryudo 桂林电子科技大学
//完成时间:2006.8.13
//*******************************************************************
#include<intrins.h>
#include<delay.h>
//12MHZ晶振
//延时1us子程序(12MHZ)
void Delay_12M_1us(void)
{
_nop_();
}
//延时2us子程序(12MHZ)
void Delay_12M_2us(void)
{
_nop_();
_nop_();
} 
//延时5us子程序(12MHZ)
void Delay_12M_5us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
}

//延时10us子程序(12MHZ)
void Delay_12M_10us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时20us子程序(12MHZ)
void Delay_12M_20us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时50us子程序(12MHZ)
void Delay_12M_50us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时100us子程序(12MHZ)
void Delay_12M_100us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}

//延时200us子程序(12MHZ)
void Delay_12M_200us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}

//延时500us子程序(12MHZ)
void Delay_12M_500us(void)
{
Delay_12M_200us();
Delay_12M_200us();
Delay_12M_100us();
}
//延时1ms子程序(12MHZ)
void Delay_12M_1ms(void)
{
Delay_12M_500us();
Delay_12M_500us();
}
//延时2ms子程序(12MHZ)
void Delay_12M_2ms(void)
{
Delay_12M_1ms();
Delay_12M_1ms();
}
//延时5ms子程序(12MHZ)
void Delay_12M_5ms(void)
{
Delay_12M_2ms();
Delay_12M_2ms();
Delay_12M_1ms();
}
//延时10ms子程序(12MHZ)
void Delay_12M_10ms(void)
{
Delay_12M_5ms();
Delay_12M_5ms();
}
//延时20ms子程序(12MHZ)
void Delay_12M_20ms(void)
{
Delay_12M_10ms();
Delay_12M_10ms();
}
//延时50ms子程序(12MHZ)
void Delay_12M_50ms(void)
{
Delay_12M_20ms();
Delay_12M_20ms();
Delay_12M_10ms();
}
//延时0.1s子程序(12MHZ)
void Delay_12M_01s(void)
{
Delay_12M_50ms();
Delay_12M_50ms();
}
//延时0.2s子程序(12MHZ)
void Delay_12M_02s(void)
{
Delay_12M_01s();
Delay_12M_01s();
}
//延时0.5s子程序(12MHZ)
void Delay_12M_05s(void)
{
Delay_12M_02s();
Delay_12M_02s();
Delay_12M_01s();
}
//延时1s子程序(12MHZ)
void Delay_12M_1s(void)
{
 Delay_12M_05s();
 Delay_12M_05s();
}
//延时2s子程序(12MHZ)
void Delay_12M_2s(void)
{
Delay_12M_1s();
Delay_12M_1s();
}
//延时5s子程序(12MHZ)
void Delay_12M_5s(void)
{
Delay_12M_2s();
Delay_12M_2s();
Delay_12M_1s();
}

//************************************************************************
//6MHZ晶振
//延时1us子程序(6MHZ)(6MHZ晶振无法达到此值)
void Delay_6M_1us(void)
{
_nop_();
}
//延时2us子程序(6MHZ)
void Delay_6M_2us(void)
{
_nop_();
}
//延时5us子程序(6MHZ)
void Delay_6M_5us(void)
{
_nop_();
_nop_();
_nop_();
}
//延时10us子程序(6MHZ)
void Delay_6M_10us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时20us子程序(6MHZ)
void Delay_6M_20us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时50us子程序(6MHZ)
void Delay_6M_50us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时100us子程序(6MHZ)
void Delay_6M_100us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时200us子程序(6MHZ)
void Delay_6M_200us(void)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
//延时500us子程序(6MHZ)
void Delay_6M_500us(void)
{
Delay_6M_200us();
Delay_6M_200us();
Delay_6M_100us();
}
//延时1ms子程序(6MHZ)
void Delay_6M_1ms(void)
{
Delay_6M_500us();
Delay_6M_500us();
}
//延时2ms子程序(6MHZ)
void Delay_6M_2ms(void)
{
Delay_6M_1ms();
Delay_6M_1ms();
}
//延时5ms子程序(6MHZ)
void Delay_6M_5ms(void)
{
Delay_6M_2ms();
Delay_6M_2ms();
Delay_6M_1ms();
}
//延时10ms子程序(6MHZ)
void Delay_6M_10ms(void)
{
Delay_6M_5ms();
Delay_6M_5ms();
}
//延时20ms子程序(6MHZ)
void Delay_6M_20ms(void)
{
Delay_6M_10ms();
Delay_6M_10ms();
}
//延时50ms子程序(6MHZ)
void Delay_6M_50ms(void)
{
Delay_6M_20ms();
Delay_6M_20ms();
Delay_6M_10ms();
}
//延时0.1s子程序(6MHZ)
void Delay_6M_01s(void)
{
Delay_6M_50ms();
Delay_6M_50ms();
}
//延时0.2s子程序(6MHZ)
void Delay_6M_02s(void)
{
Delay_6M_01s();
Delay_6M_01s();
}
//延时0.5s子程序(6MHZ)
void Delay_6M_05s(void)
{
Delay_6M_02s();
Delay_6M_02s();
Delay_6M_01s();
}
//延时1s子程序(6MHZ)
void Delay_6M_1s(void)
{
Delay_6M_05s();
Delay_6M_05s();
}
//延时2s子程序(6MHZ)
void Delay_6M_2s(void)
{
Delay_6M_1s();
Delay_6M_1s();
}
//延时5s子程序(6MHZ)
void Delay_6M_5s(void)
{
Delay_6M_2s();
Delay_6M_2s();
Delay_6M_1s();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -