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

📄 lcm5110.c

📁 NOKIA5110液晶驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:
  for(z=0;z<6;z++)
  {        
    Lcd3310WriteByte(Font6x8[num+16][z],1);  //NUMBER+16
  }
}

//*************************************************************
//显示数字 (大型)
//*************************************************************
void LcdBigNumber(char x, char y, unsigned char num)
{
  unsigned char z; 
  SetAddr(x,y);                 //定位
  for(z=0;z<11;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_NUMBERS[num*11+z],1);  
  }
  SetAddr(x,y+1);                 //定位
  for(z=0;z<11;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_NUMBERS[num*11+z+121],1);  
  }
}
//*************************************************************
//显示冒号 (大字体)
//*************************************************************
void LcdBigDot(char x, char y)
{
  unsigned char z; 
  SetAddr(x,y);                 //定位
  for(z=0;z<9;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_DOT[z],1);  
  }
  SetAddr(x,y+1);                 //定位
  for(z=0;z<9;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_DOT[z+9],1);  
  }
}

//*************************************************************
//显示小数点 (大字体)
//*************************************************************
void LcdBigDot1(char x, char y)
{
  unsigned char z; 
  SetAddr(x,y);                 //定位
  for(z=0;z<9;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_DOT1[z],1);  
  }
  SetAddr(x,y+1);                 //定位
  for(z=0;z<9;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_DOT1[z+9],1);  
  }
}
//*************************************************************
//显示 V (大字体)
//*************************************************************
void LcdBigV(char x, char y)
{
  unsigned char z; 
  SetAddr(x,y);                 //定位
  for(z=0;z<10;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_V[z],1);  
  }
  SetAddr(x,y+1);                 //定位
  for(z=0;z<10;z++)
  {        
    Lcd3310WriteByte(FONT_BIG_V[z+10],1);  
  }
}
//*************************************************************
//显示 空格 (大字体)
//*************************************************************
void LcdBigBlank(char x, char y, unsigned char width)
{
  unsigned char z; 
  SetAddr(x,y);                 //定位
  for(z=0;z<width;z++)
  {        
    Lcd3310WriteByte(0x00,1);  
  }
  SetAddr(x,y+1);                 //定位
  for(z=0;z<width;z++)
  {        
    Lcd3310WriteByte(0x00,1);  
  }
}
//***************************************************************
//写6X8标准字符
//****************************************************************
void LcdLetter(char x0,char y0, unsigned char letter)
{
    unsigned char z; 
	  SetAddr(x0,y0);                 //定位
    for(z=0;z<6;z++)
     {        
        Lcd3310WriteByte(Font6x8[letter-32][z],1);  //ASCII-32
     }
}
//***************************************************************
//反白写6X8标准字符
//****************************************************************
void LcdRevLetter(char x0,char y0, unsigned char letter)
{
    unsigned char z; 
	  SetAddr(x0,y0);                 //定位
    for(z=0;z<6;z++)
     {        
        Lcd3310WriteByte(~Font6x8[letter-32][z],1);  //ASCII-32              
     }
}
//****************************************************************
//写3X8字符
//****************************************************************
void LcdLetter3x8(char x0,char y0, unsigned char letter)
{
  unsigned char z; 
	SetAddr(x0,y0);                 //定位
  for(z=0;z<3;z++)
  {        
     Lcd3310WriteByte(Font3x8[letter][z],1);  //ASCII-32
  }
}
//******************************************************************
//写4X8字符
//******************************************************************
void LcdLetter4x8(char x0,char y0, unsigned char letter)
{
  unsigned char z; 
	SetAddr(x0,y0);                 //定位
  for(z=0;z<4;z++)
  {        
     Lcd3310WriteByte(Font4x8[letter][z],1);  // 
     DELAY(4);      
  }
}
//*******************************************************************
//写6X8C字符(摄氏度符号)
//*******************************************************************
void LcdLetter6x8C(char x0,char y0, unsigned char letter)
{
  unsigned char z; 
	SetAddr(x0,y0);                 //定位
  for(z=0;z<6;z++)
  {        
     Lcd3310WriteByte(Font6x8C[letter][z],1);  // 
     DELAY(4);      
  }
}
//***********************************************************************
//写一串字符(标准)  入口:X坐标,Y坐标 字符串名,字符串长度
//************************************************************************
void LcdString( char x, char y, unsigned char *pst)
{
  //unsigned char i;
  //Lcd3310WriteByte(0x0C,0); //设定显示模式,正常显示 D=1,E=0  (反白显示:0x0D,0)
  while(*pst!='\0'){
    
	   LcdLetter(x,y,*pst);
	   x+=6;
	   pst++;
  }
}
//***********************************************************************
//写一串字符(标准反白)  入口:X坐标,Y坐标 字符串名,字符串长度,反白标志位
//************************************************************************
void LcdRevString( char x, char y, unsigned char *pst, unsigned char rev)
{
  //unsigned char i;
  //Lcd3310WriteByte(0x0C,0); //设定显示模式,正常显示 D=1,E=0  (反白显示:0x0D,0)
  while(*pst!='\0'){
    if(rev)
      LcdRevLetter(x,y,*pst);
    else   
	    LcdLetter(x,y,*pst);
	    x+=6;
	    pst++;
  }
}

//*************************************************************
//显示温度数值
//**************************************************************
void LcdTemp( char x, char y, unsigned long n)
{
  unsigned char d[7];

     d[0]=0x30+(n/10000);        if(d[0]==0x30)d[0]=0x20;
	   d[1]=0x30+(n%10000)/1000;  //if(d[1]==0x30)d[0]=0x20;
	   d[2]=0x30+(n%1000)/100;
	   d[3]='.';
	   d[4]=0x30+(n%100)/10;
	   d[5]=0x30+(n%10);
	   d[6]=0;

   LcdString(x,y,"Temp =");//9
   LcdLetter3x8(x+24,y,1);
   LcdString(x+36,y,d);//42
   LcdLetter6x8C(x+74,y,0);//77
   LcdLetter(x+77,y,'C');//78
}
//*************************************************************
//显示电压数值
//**************************************************************
void LcdVolt( char x, char y, unsigned long n)
{
  unsigned char d[7];

       d[0]=0x30+(n/10000);        if(d[0]==0x30)d[0]=0x20;
	   d[1]=0x30+(n%10000)/1000;  //if(d[1]==0x30)d[0]=0x20;
	   d[2]='.';
	   d[3]=0x30+(n%1000)/100;	   
	   d[4]=0x30+(n%100)/10;
	   d[5]=0x30+(n%10);
	   d[6]='\0';

   LcdString(x,y,"Volt =");
   LcdLetter3x8(x+24,y,1);
   LcdString(x+36,y,d);     
   LcdLetter(x+75,y,'V');
}

//*************************************************************
//显示参数数值
//**************************************************************
void LcdPara( char x, char y, unsigned char *pst, unsigned long n)
{
  unsigned char d[7];

       d[0]=0x30+(n/10000);        if(d[0]==0x30)d[0]=0x20;
	   d[1]=0x30+(n%10000)/1000;  //if(d[1]==0x30)d[0]=0x20;
	   d[2]='.';
	   d[3]=0x30+(n%1000)/100;	   
	   d[4]=0x30+(n%100)/10;
	   d[5]=0x30+(n%10);
	   d[6]='\0';

   LcdString(x,y, pst);
   LcdLetter3x8(x+24,y,1);
   LcdString(x+36,y,d);     
   LcdLetter(x+75,y,'V');
}
//*************************************************************
//大字显示电压数值
//**************************************************************
void LcdBigVolt(char y, unsigned long n)
{
   unsigned char i,x=0,d[7];

       d[0]=(n/10000);        if(d[0]==0x0)d[0]=0x0a;
	   d[1]=(n%10000)/1000;  //if(d[1]==0x30)d[0]=0x20;
	   d[2]='.';
	   d[3]=(n%1000)/100;	   
	   d[4]=(n%100)/10;
	   d[5]=(n%10);
	   d[6]='\0';

  for(i=0;i<6;i++){
    if(i==2) 
	{
	  LcdBigDot1(x,y);
	  x += 9;
	}
    else 
	{
	  LcdBigNumber(x,y,d[i]);
	  x += 11;
	}
  } 
  LcdBigBlank(x,y,4);
  x += 4;
  LcdBigV(x,y);      //Display symbol 'V'
  x += 10;
  LcdBigBlank(x,y,6);
}


⌨️ 快捷键说明

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