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

📄 delay.c

📁 这是液晶的操作源代码,希望对做这个工作的朋友有一定的帮助
💻 C
字号:
/*******************************************
*	文件名	:	DELAY.C
*	功能	:	基本延时
*	占用资源:	----
*	程序员	:	wyl(wyl-e@163.com)
*	日期	:	2007.07
*	包含文件:	DELAY.H
*	说明	:	本模块仅定义了在12MHZ晶振频率下
				的时间单位级上的延时,在晶振频率
				为其它值时,应该采用通用延时程序,
				以机器周期为计量单位,进行延时推算.
********************************************/
#include<_REG52_.H>
#include"DELAY.H"

#ifndef	T_IS_KNOWABLE
/*******************************************
* 函数功能 : 基本延时程序 10T级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 10*cnt+12
			 T~Delay(0)	  = 9.	
********************************************/
void Delay_10T(uchar cnt)
	{
		if(cnt==0)return;
		while(--cnt)
			{
				_nop_();	_nop_();
				_nop_();	_nop_();	
			};		
	}
/*******************************************
* 函数功能 : 基本延时程序  10E3T级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 1000*cnt+13
********************************************/
void Delay_E3T(uchar cnt)
	{
		while(cnt--)Delay_10T(99);
	}
/*******************************************
* 函数功能 : 基本延时程序	 10E5T级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 100021*cnt+13
********************************************/
void Delay_100E3T(uchar cnt)
	{
		while(cnt--)Delay_E3T(100);
	}
/*******************************************
* 函数功能 : 基本延时程序	10E6T级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 1000231*cnt+13
********************************************/
void Delay_E6T(uchar cnt)
	{
		while(cnt--)Delay_100E3T(10);
	}

#else
#if	((XTAL<=13)&&(XTAL>=11))



/*********************************************
*********12 MHZ晶振频率下的延时程序.**********
**********************************************/


/*******************************************
* 函数功能 : 基本延时程序 10Tus级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 10*cnt+12
			 T~Delay(0)	  = 9.	
********************************************/
void Delay_10us(uchar cnt)
	{
		if(cnt==0)return;
		while(--cnt)
			{
				_nop_();	_nop_();
				_nop_();	_nop_();	
			};		
	}
/*******************************************
* 函数功能 : 基本延时程序  ms级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 :  执行机器周期 = 1000*cnt+13
********************************************/
void Delay_ms(uchar cnt)
	{
		while(cnt--)Delay_10us(99);
	}
/*******************************************
* 函数功能 : 基本延时程序	 100ms级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 100021*cnt+13
********************************************/
void Delay_100ms(uchar cnt)
	{
		while(cnt--)Delay_ms(100);
	}
/*******************************************
* 函数功能 : 基本延时程序	s级延时
* 入口参数 : (uchar cnt)
*   返回值 : (void)
*     说明 : 执行机器周期 = 1000231*cnt+13
********************************************/
void Delay_s(uchar cnt)
	{
		while(cnt--)Delay_100ms(10);
	}

#endif
#endif		
/*****************THE END*******************/

⌨️ 快捷键说明

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