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

📄 delay.c

📁 C51单片机常用延时子程序(可根据晶振振荡频率自己调整)
💻 C
字号:
#include <reg51.h>
sbit LED  =  P3^0;
/************************************************
//延时程序2个指令周期
//输入参数: 时间量	
//延时时间范围:10-510
//延时时间为:i*2(指令周期) 
************************************************/
void delay2us(unsigned char i)
{  
	i-=4;
	while(--i);
}
/************************************************
//延时程序10个指令周期
//输入参数: 时间量	
//延时时间范围:11-2551
//延时时间为:i*10(指令周期)+1
************************************************/
void delay10us(unsigned char i)
{  
	unsigned char j;
	i-=1;
	j=2;
	while(--j);
	do
	{	
		j=3;
		while(--j);
		j=1;
	}
	while(--i);
}
/************************************************
//延时程序25个指令周期
//输入参数: 时间量	
//延时时间范围:30-6380
//延时时间为:i*25(指令周期)+5
************************************************/
void delay25us(unsigned char i)
{  
	unsigned char j;
	do
	{	
		j=11;
		while(--j);
	}
	while(--i);
}
/************************************************
//延时程序100个指令周期
//输入参数: 时间量	
//延时时间范围:105-25505
//延时时间为:i*100(指令周期)+5
************************************************/
void delay100us(unsigned char i)
{  
	unsigned char j;
	do
	{	
		j=48;
		while(--j);
		j=1;
	}
	while(--i);
}
/************************************************
//延时程序1000个指令周期
//输入参数: 时间量	
//延时时间范围:1005-255005
//延时时间为:i*1000(指令周期)+5
************************************************/
void delay1ms(unsigned char i)
{  
	unsigned char j;
	do
	{	
		j=7;
		do{ j+=2;j--; }
		while(j);
		j=1;
	}
	while(--i);
}
void main(void)
{
	unsigned char a;
	delay1ms(20);
	delay1ms(21);
	delay1ms(1);
	delay1ms(255);
	for(a=200;a;a--)
	{
	delay2us(20);
	LED=!LED;
	}
	delay2us(20);
	delay2us(255);
	delay2us(50);
	for(a=201;a;a--)
	delay2us(20);
	for(a=100;a;a--)
	delay2us(21);

}

⌨️ 快捷键说明

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