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

📄 delay.h

📁 pt24018_lcd控制器在linux-2.4.19下的驱动程序
💻 H
字号:
/**********************************************************
  MCU AT89C2951   晶振  12MHz  
  对于微妙级延时 必须使用 _nop_();
**********************************************************/
/*******************************************************************************
 精确延时函数
 delay_1()        1个时钟周期 
 delay_10()       10个时钟周期 
 delay_100()      100个时钟周期 
 delay_1000()     1000个时钟周期 
 delay_1000000()  1000000个时钟周期 
 非精确延时函数
 delay_8us(unsigned char n)      n倍8个时钟周期的整数倍 
 delay_8ms(unsigned char n)      n倍1000个时钟周期的整数倍 误差千份之八
 delay_8s(unsigned char n)       n倍1000000个时钟周期的整数倍 误差百万份之八

 delay_us(unsigedn char n)       n倍8个时钟周期的整数倍 
 delay_ms(unsigend char n)       约等于毫秒
 delay_ss(unsigned char n)       约等于秒   
 
 delay_0(unsigned char n)        1个单位延时
 delay_00(unsigned char n)       10个单位延时  
 delay_000(unsigned char n)      100个单位延时
 delay_0000(unsigned char n)     1000个单位延时
*******************************************************************************/

//#ifdef DELAY_1

/*
//delay_1us()        1个时钟周期 
#define delay_1us() _nop_()

//delay_10us()       10个时钟周期 
void delay_10us(void)
{
    _nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
}

//delay_100us()      100个时钟周期 
void delay_100us(void)
{
     unsigned char i;	 
	 for(i=47;i>0;i--)
	 {
	    ;
	 }
     _nop_();
}
*/

//delay_1ms()     1000个时钟周期 
void delay_1ms(void)
{
    unsigned char i,j;
	for(j=38;j>0;j--)
	{
	   ;
	}
    for(i=9;i>0;i--)
	{
		_nop_();
		for(j=49;j>0;j--)
		{
		   ;
		}
	}
}

//delay_1s()     1000000个时钟周期 
void delay_1s(void)
{
   unsigned char i,j,k;
	_nop_();   
	for(j=46;j>0;j--)
	{
	   ;
	}
	
	for(j=99;j>0;j--)
	{
		_nop_();
		for(k=48;k>0;k--)
		{
		   ;
		}
	}

   for(i=99;i>0;i--)
   {	
		for(j=48;j>0;j--)
		{
		   ;
		}

	    for(j=99;j>0;j--)
		{
			_nop_();
			for(k=48;k>0;k--)
			{
			   ;
			}
		}
   }
}

//delay_us(unsigned char n)      n倍8个时钟周期的整数倍 
void delay_us(unsigned char n)
 {
 	unsigned char i;
		for(i=0;i<n;i++)
	 	{
	    	;    
	 	}
 }

//delay_ms(unsigned char n)      n倍1ms个时钟周期的整数倍 	误差千分之8
void delay_ms(unsigned char n)
 {
 	unsigned char i;       
		for(i=0;i<n;i++)
	 	{	    
			delay_1ms();
	 	}
 }

//delay_ss(unsigned char n)       n倍1s个时钟周期的整数倍 	误差百万分之8
 void delay_ss(unsigned char n)
 {
 	unsigned char i;    
	    for(i=0;i<n;i++)
	 	{
	     	delay_1s();			    
	 	}
 }
//#endif




⌨️ 快捷键说明

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