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

📄 xff.c.bak

📁 这是TOPWAY公司的LCD驱动程序
💻 BAK
📖 第 1 页 / 共 4 页
字号:
    {
			Write_char( 1, *s );
	    s ++;
			Delaynms(1);
		}
}

/******************************************************************************************
* 函数名称    :LCD_Write_number
* 功能描述    :数字显示函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LCD_Write_number(unsigned char s)//	数字显示函数
{	
		Write_char(1,num[s]);
		Delaynms(1);
}

/******************************************************************************************
* 函数名称    :LCD_Write_week
* 功能描述    :显示星期几函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void LCD_Write_week(unsigned char s)
{
		switch(s)
		{
			case 1: 
				LCD_Write_string(3,2,yi);
				break;
			case 2: 
				LCD_Write_string(3,2,er);
				break;
			case 3:	
				LCD_Write_string(3,2,san);
				break;
			case 4:	
				LCD_Write_string(3,2,si);
				break;
			case 5:	
				LCD_Write_string(3,2,wu);
				break;
			case 6:	
				LCD_Write_string(3,2,liu);
				break;
			case 7:	
				LCD_Write_string(3,2,ri);
				break;
			case 8:	
				LCD_Write_string(3,2,space_c);
				break;//显示空格,为调整时间用
			default:
				break;
		}
}

/******************************************************************************************
* 函数名称    :Delay
* 功能描述    :延时函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void Delay(int num)
{
		while(num--);
}
	
/******************************************************************************************
* 函数名称    :Init_DS18B20
* 功能描述    :初始化ds1820
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void Init_DS18B20(void)//初始化ds1820
{
		unsigned char x=0;
		DQ = 1;    //DQ复位
		Delay(8);  //稍做延时
		DQ = 0;    //单片机将DQ拉低
		Delay(80); //精确延时 大于 480us
		DQ = 1;    //拉高总线
		Delay(14);
		x=DQ;      //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
		Delay(20);
}

/******************************************************************************************
* 函数名称    :ReadOneChar
* 功能描述    :读一个字节
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
unsigned char ReadOneChar(void)
{
		unsigned char i=0;
		unsigned char dat = 0;
		for (i=8;i>0;i--)
		{
			DQ = 0; // 给脉冲信号
			dat>>=1;
			DQ = 1; // 给脉冲信号
			if(DQ)
			dat|=0x80;
			Delay(4);
		}
		return(dat);
}

/******************************************************************************************
* 函数名称    :WriteOneChar
* 功能描述    :写一个字节
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void WriteOneChar(unsigned char dat)
{
		unsigned char i=0;
		for (i=8; i>0; i--)
		{
			DQ = 0;
			DQ = dat&0x01;
			Delay(5);
			DQ = 1;
			dat>>=1;
		}
}

/******************************************************************************************
* 函数名称    :ReadTemperature
* 功能描述    :读取温度
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
unsigned int ReadTemperature(void)
{
		unsigned char a=0;
		unsigned char b=0;
		unsigned int t=0;
		float tt=0;
		Init_DS18B20();
		WriteOneChar(0xCC); // 跳过读序号列号的操作
		WriteOneChar(0x44); // 启动温度转换
		Init_DS18B20();
		WriteOneChar(0xCC); //跳过读序号列号的操作
		WriteOneChar(0xBE); //读取温度寄存器
		a=ReadOneChar();    //读低8位
		b=ReadOneChar();    //读高8位
		t=b;
		t<<=8;
		t=t|a;
		tt=t*0.0625;
		t= tt*10+0.5; //放大10倍输出并四舍五入
		return(t);
}

/******************************************************************************************
* 函数名称    :clock_out
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void clock_out(unsigned char dd)
{
		ACC=dd;
		clock_dat=a0; clock_clk=1; clock_clk=0;
		clock_dat=a1; clock_clk=1; clock_clk=0;
		clock_dat=a2; clock_clk=1; clock_clk=0;
		clock_dat=a3; clock_clk=1; clock_clk=0;
		clock_dat=a4; clock_clk=1; clock_clk=0;
		clock_dat=a5; clock_clk=1; clock_clk=0;
		clock_dat=a6; clock_clk=1; clock_clk=0;
		clock_dat=a7; clock_clk=1; clock_clk=0;
}

/******************************************************************************************
* 函数名称    :clock_in
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
unsigned char clock_in(void)
{
		clock_dat=1;
		a0=clock_dat;
		clock_clk=1; clock_clk=0; a1=clock_dat;
		clock_clk=1; clock_clk=0; a2=clock_dat;
		clock_clk=1; clock_clk=0; a3=clock_dat;
		clock_clk=1; clock_clk=0; a4=clock_dat;
		clock_clk=1; clock_clk=0; a5=clock_dat;
		clock_clk=1; clock_clk=0; a6=clock_dat;
		clock_clk=1; clock_clk=0; a7=clock_dat;
		return(ACC);
}

/******************************************************************************************
* 函数名称    :read_clock
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
unsigned char read_clock(unsigned char ord)
{
		unsigned char dd=0;
		clock_clk=0;
		clock_Rst=0;
		clock_Rst=1;
		clock_out(ord);
		dd=clock_in();
		clock_Rst=0;
		clock_clk=1;
		return(dd);
}

/******************************************************************************************
* 函数名称    : write_clock
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void write_clock(unsigned char ord, unsigned char dd)
{
		clock_clk=0;
		clock_Rst=0;
		clock_Rst=1;
		clock_out(ord);
		clock_out(dd);
		clock_Rst=0;
		clock_clk=1;
}

/******************************************************************************************
* 函数名称    :Disp
* 功能描述    :显示和闪烁函数
* 参数        :  参数名称:	输入/输出?	类型		描述
* 
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void Disp(void)
{
		unsigned int i=0;
		unsigned char a=0,b=0,c=0,f=0;

		i=ReadTemperature();//读温度并送显
		a=i/100;

		LCD_set_xy(4,2);
		LCD_Write_number(a);
		b=i/10-a*10;
		LCD_Write_number(b);
		LCD_Write_number(12);//.
		c=i-a*100-b*10;
		LCD_Write_number(c);

		if(hour==1)  //小时闪烁标志位
    	{
    		if(flag==1)
       		{    
      			d=read_clock(0x85);//读小时
						e=d;
						d=d>>4;
						e=e&0x0f;
						LCD_set_xy(3,3);
						LCD_Write_number(d);
						LCD_Write_number(e);
       		}
     		else
       		{
						LCD_set_xy(3,3);
        		LCD_Write_number(10); //显示空格
	        	LCD_Write_number(10);    
    			}
    	} 
  	else
   		{ 
    		d=read_clock(0x85);//读小时
				e=d;
				d=d>>4;
				e=e&0x0f;
				LCD_set_xy(3,3);
				LCD_Write_number(d);
				LCD_Write_number(e);
   		}

		if(flag == 0)
			LCD_Write_number(11);//显示:
		else 
			LCD_Write_number(10);
		
		if(min==1)  //分钟闪烁标志位
    	{
    		if(flag==1)
       		{    
       			d=read_clock(0x83);//读分钟
						e=d;
						d=d>>4;
						e=e&0x0f;
						LCD_Write_number(d);
						LCD_Write_number(e);     
       		}
     		else
       		{	
        		LCD_Write_number(10); //显示空格
	        	LCD_Write_number(10);    
       		}
    	} 
  		else

⌨️ 快捷键说明

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