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

📄 display_control.h

📁 液晶显示
💻 H
字号:
char Display_BCD[6]; 
uchar Number_Display[14]={0x7d,0x60,0x3e,0x7a,0x63,0x5b,0x5f,0x70,0x7f,0x7b,0x00,0x02,0x62};
void Display_Control(char wlcddata,char wlcdaddr)
{
	char wlcdtemp=0,i=0;
	LCD_CS=0;
	wlcdtemp=0xa0;
	for(i=0;i<3;i++)
	{
		LCD_WR=0;
		if((wlcdtemp<<i)&0x80)
			LCD_Data=1;  
		else  
			LCD_Data=0;
		LCD_WR=1;
	}
	wlcdtemp=wlcdaddr*4;
	for(i=0;i<6;i++)
	{
		LCD_WR=0;
		if((wlcdtemp<<i)&0x80)
			LCD_Data=1;   
		else  
			LCD_Data=0;
		LCD_WR=1;
	}
	wlcdtemp=wlcddata*16;
	for(i=0;i<4;i++)
	{
		LCD_WR=0;
		if((wlcdtemp<<i)&0x80)
			LCD_Data=1;   
		else  
			LCD_Data=0;
			LCD_WR=1;
	}
	LCD_WR=1;
	LCD_CS=1;

}
void LCD_Cmd(char cmddata)
{
	char cmdtemp,i;
	cmdtemp=0x80;
	LCD_CS=0;
	for(i=0;i<3;i++)
	{
		LCD_WR=0;
		if((cmdtemp<<i)&0x80)
			LCD_Data=1;   
  		else
			LCD_Data=0;
		LCD_WR=1;
	}
	cmdtemp=cmddata;

	for(i=0;i<8;i++)
	{
		LCD_WR=0;
		if((cmdtemp<<i)&0x80)
			LCD_Data=1;  
		else  
			LCD_Data=0;
		LCD_WR=1;
	}
		
	LCD_WR=0;
	LCD_Data=0;
	LCD_WR=1;
        
	LCD_WR=1;
	LCD_CS=1;

}

void LCD_Init()	//LCD初始化
{
	uchar  i=0;
	LCD_CS=0;
	LCD_WR=0;
	LCD_Data=0;
	LCD_CS=1;
	LCD_WR=1;
	LCD_Data=1;
	
	LCD_Cmd(0x1);
	LCD_Cmd(0x3);
	LCD_Cmd(0x28);
}

void Clear_Screen(void)	  //清全屏
{
  	uchar  i=0;
	for(i=0;i<=12;i++)	    
  	{
  		Display_Control(0,i);

   	}  
}
void Whole_Screen_Display(void)	//全屏显示
{
  	uchar  i=0;
	for(i=0;i<=12;i++)	    
  	{
  		Display_Control(0x0f,i);

   	}  
}

void Display_Byte_Control(uchar dis_data,char addr)
{
   	Display_Control(dis_data&0x0f,addr);
   	Display_Control((dis_data&0xf0)>>4,addr+1);
}
void Float_To_BCD(float value_Float,char fraction_bit)//浮点数转化为BCD码
{
    char i,j,minus=0;  
    float power=1;
    float round_factor=0.5;
    long int FTB_value=0;
    for(i=0;i<fraction_bit;i++)
    {
        power*=10;
        round_factor*=0.1;
    }
    if(value_Float<0) round_factor=-round_factor;
    FTB_value=(long int)((value_Float+round_factor)*power);////round,取整//四舍五入
    if(FTB_value<0)
	{
  	    FTB_value=-FTB_value;
		minus=1;
	}
	Display_BCD[5]=(char)(FTB_value%10);        ///.singl_bit  
    for(i=4;i>=0;i--)
    {
        FTB_value/=10;
        Display_BCD[i]=(char)(FTB_value%10); 
    }
    j=6-fraction_bit;
    for(i=0;i<j;i++)
    {
         if(i>=1)
		 {  
		   if(!Display_BCD[i])Display_BCD[i]=10;  //去除无效零
           else 
		   {
			  if(minus==1)Display_BCD[i-1]=11;	//最高位为负号
			  i=6;
		   }
		}
		else if(i==0)
		{
		  if(Display_BCD[i]==0)Display_BCD[i]=10;  // 去除无效零
		  else if(Display_BCD[i]==1)
		  {
		     if(minus==1)Display_BCD[i]=12; 	// 最高位为-1
			 i=6; 
		  } 
		}
    }

}
void Float_To_Display(float value_Float,char fraction_bit)//浮点数显示
{
    char i,j,fraction_bit_Addr=1,temp,temp1;
	float value_float1;
	temp=fraction_bit;	 
	temp1=fraction_bit;
	value_float1=value_Float;
	if(value_float1>999999 || value_float1<-199999)//是否超出显示范围
	{
	      Display_Byte_Control(0x02,0);
          Display_Byte_Control(0x02,2);
          Display_Byte_Control(0x02,4);
          Display_Byte_Control(0x02,6);
          Display_Byte_Control(0x02,8);
          Display_Byte_Control(0x02,10);
	}
	else
	{
     	for(i=temp1;i>0;i--)     //根据显示范围调整小数点位置
    	{
	        value_float1=value_float1*10;
	        if((value_float1>999999) || (value_float1<-199999))
	        {
	           temp=temp-i;
		       i=0;
	        }
	    }
		Float_To_BCD(value_Float,temp);	////浮点数转化为BCD码
	    for(i=6-temp;(i-1)>0;i--)fraction_bit_Addr=fraction_bit_Addr+2;	//确定小数点显示位置
    	for(j=0;j<=5;j++)
	    {
	        if((fraction_bit_Addr-1)==(j*2))Display_Byte_Control(Number_Display[Display_BCD[5-temp]]+0x80,fraction_bit_Addr-1);	//BCD加小数点显示
	        else  Display_Byte_Control(Number_Display[Display_BCD[j]],j*2);	//BCD显示
	    }
	}
}

⌨️ 快捷键说明

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