📄 delay.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 + -