模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

2337查看 | 16回复

[DIY交流] 5110液晶驱动显示实验

[复制链接]
发表于 2018-6-21 03:05:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
感谢萝莉大神的无私奉献
二代材料买了没时间折腾
接着3代又出了
然后就直接做了3代
手头多出个5110液晶
一直想驱动起来历经磨难
终于点亮
代码来自网络
东平西凑

由于平时写代码习惯了把文档建到桌面
本子不行了
还是把自己调通的代码传到网站上安全些
万一那天本子挂了  哭都没地哭去

5110液晶驱动显示实验 tft液晶驱动ic,1602液晶驱动 作者:ldy7474 9597



 楼主| 发表于 2018-6-21 03:07:15 | 显示全部楼层
本帖最后由 ldy7474 于 2018-6-21 03:17 编辑

用到的时候贴过去命名为.C文件即可

/*
*********Nokia 5110驱动********

*说明:本驱动适用于51单片机(5V或3.3V),液晶的VCC接5V或3.3V
       修改偏置电压可改变5110点阵显示的亮度
       5110接5V时偏置电压改为(0xa7,0),接3.3V时改为(0xc0,0)
***************************************************************
*/
#include  "font.h"
#include  "lcd5110.h"
#define u16 unsigned int
#define u8 unsigned char
u8 qian,bai,shi,ge;


/*
**********************************************************
     和LCD显示有关的函数声明区
**********************************************************
*/
void LCD_Init(void);//lcd初始化函数
void LCD_WriteByte(u8 dat, u8 command);
void LCD_Set_XY(u8 X, u8 Y);
void LCD_Clear(void);
void LCD_Write_Char(u8 x,u8 y,u8 c);
void LCD_WriteString(u8 X,u8 Y,char *s);
void LCD_WriteNum(u8 X,u8 Y,u16 num);
void LCD_Write_12X16Font(u8 x,u8 y,u8 c[2]);
void LCD_DrawPicture(u8 X,u8 Y,unsigned char const *map,
                  u8 Pix_x,u8 Pix_y);


void DepartNum(u16 temp);//用于分解要显示的数据

/****************************************
用于显示的数位分解函数,把数据转化为ASCII码
入口参数是要显示的数据
****************************************/
void DepartNum(u16 temp)
{
    qian=temp/1000+0x30;
        bai=temp00/100+0x30;
        shi=temp0/10+0x30;
        ge= temp+0x30;
}
/*
**********************************************************
                -------main函数--------
*函数名:主函数
*备 注:
**********************************************************
*/
void main()
{   
    while(1)
    {
    LCD_LED=0;                                
    //LCD_WriteNum(0,0,123); //写入数字 int型的
    //LCD_WriteString(0,0,"LDY");//写6X8的字符串
    //LCD_WriteChar(0,0,'L');// 写一个6X8的字符
    //LCD_WriteChar(7,0,'D');
    //LCD_WriteChar(14,0,'Y');
    LCD_WriteString(0,0,"LCD");//写6X8的字符串
    LCD_Write_12X16Font(18,0,"驱");  //写一个16X16的汉字
    LCD_Write_12X16Font(30,0,"动");
    LCD_Write_12X16Font(41,0,"实");
    LCD_Write_12X16Font(53,0,"验");

    LCD_WriteString(64,0,"LDY");//写6X8的字符串

    LCD_DrawPicture(62,2,F_22,16,16);
    LCD_DrawPicture(62,4,X_1,16,16); //绘图

   

    }
}



回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-21 03:08:26 | 显示全部楼层
本帖最后由 ldy7474 于 2018-6-21 03:20 编辑

//用到的时候直接命名为lcd5110.H文件即可在主程序中调用

#include <STC15F2K60S2.H>
#define u16 unsigned int
#define u8 unsigned char

/******** IO口定义区**************/
sbit  LCD_RST = P1^2;
sbit  LCD_CE = P1^3;
sbit  LCD_DC = P1^4;
sbit  LCD_DIN = P1^5;
sbit  LCD_CLK = P5^4;
sbit  LCD_LED = P5^4;

void LCD_Clear(void);
void LCD_WriteByte(u8 dat, u8 command);
/*
**********************************************************
*函数名:LCD_Init
*功能:初始化LCD
*参数:无
      
*返回值:无
*备 注:
**********************************************************
*/
void LCD_Init(void)
{
  u8 i;
  LCD_RST=0;               //复位
  for(i=0;i<150;i++);

  LCD_RST=1;
  LCD_WriteByte(0x21, 0);   // 使用扩展命令设置LCD模式

  LCD_WriteByte(0xB7, 0);//设置偏置电压,
  //修改可改变5110点阵显示的亮度
/*5110接5V时偏置电压改为(0xa7,0),
//接3.3V时改为(0xc0,0)*/

  LCD_WriteByte(0x20, 0);   // 使用基本命令。并设置V=0,水平寻址
  LCD_Clear();                  // 清屏
  LCD_WriteByte(0x0c, 0);   // 设定显示模式,正常显示(普通显示)
  LCD_CE=0;   
}

/*
**********************************************************
*函数名:LCD_WriteByte
*功能:模拟SPI接口时序写数据/命令LCD
*参数:data    :写入的数据;
      command :写数据(1)/命令选择(0);
*返回值:无
*备 注:
**********************************************************
*/
void LCD_WriteByte(u8 dat, u8 command)
{
  u8 i;
  LCD_CE=0; //5110片选有效,允许输入数据
  if (command == 0) //写命令
    LCD_DC=0;                         
  else  
    LCD_DC=1;//写数据
  for(i=0;i<8;i++)//传送8bit数据
  {
      if(dat&0x80)
        LCD_DIN=1;
      else
        LCD_DIN=0;
      LCD_CLK=0;
      dat = dat << 1;
      LCD_CLK=1;
  }
   LCD_CE=1;//禁止5110
}

/*
**********************************************************
*函数名:LCD_Set_XY
*功能: 设置LCD坐标
*参数: X:0-83 Y:0-5   
*返回值:无
*备 注:
**********************************************************
*/
void LCD_Set_XY(u8 X, u8 Y)
{
  LCD_WriteByte(0x40 | Y, 0);// column  列
  LCD_WriteByte(0x80 | X, 0);// row    行
}


/*
**********************************************************
*函数名:LCD_Clear
*功能: LCD清屏函数
*参数:无  
*返回值:无
*备 注:
**********************************************************
*/
void LCD_Clear(void)
{
  u8 t;
  u8 k;
  LCD_Set_XY(0, 0);//设置RAM起始地址
  for(t=0;t<6;t++)
  {
    for(k=0;k<84;k++)
    {
      LCD_WriteByte(0x00,1);            
    }
  }
}

/*
**********************************************************
*函数名:LCD_WriteChar
*功能: LCD写一个6X8的字符
*参数:c  
*返回值:无
备 注:
**********************************************************
*/
void LCD_Write_Char(u8 x,u8 y,u8 c)
{
    u8 i;
    c -= 32;//数组的行号
    LCD_Set_XY(x,y);
    for(i=0; i<12; i++)
    {
       LCD_WriteByte(font6x12[c], 1);
       if(i==5)
       {
          y++;
          LCD_Set_XY(x,y);
       }
    }

}

/*
**********************************************************
*函数名:LCD_WriteString
*功能: LCD写6X8的字符串
*参数:X , Y , S   
*返回值:无
备 注:
**********************************************************
*/
void LCD_WriteString(u8 X,u8 Y,char *s)
{
  while(*s)
  {
     LCD_Write_Char(X,Y,*s);
     s++;
     X += 6;
  }
}

/*
***************************************************************
*函数名:LCD_WriteNum(unsigned int num)
*功能:写入数字
*参数:num  
*返回值:无
****************************************************************
*/
void LCD_WriteNum(u8 X,u8 Y,u16 num)
{
  u8 str[8],i=0,len=0;
  u16 temp;
  temp = num;
  while(temp)
  {
    temp /=10;
    len++;
  }
  if(!num)
  {
     len++;
     str[0]=0x30;
  }  
  str[len] = 0;
  while(num)
  {
    str[len-i-1] = num + 0x30;
    num /=10;
    i++;
  }
  LCD_WriteString(X,Y,(char *)str);
}

/*
**********************************************************
*函数名:LCD_Write_12X12Font
*功能: 写一个12X12的汉字
*参数:x , y , c[2]  x:0-83 y:0-5  
*返回值:无
*备 注:
**********************************************************
*/
void LCD_Write_12X16Font(u8 x,u8 y,u8 c[2])
{
    u8 i,k;
    LCD_Set_XY(x,y);
    for(k=0; k<25; k++)
        //K的值表示汉字库最多存放的字的数量(可改大)
    {
      if((font12x16[k].Index[0]==c[0])&&(font12x16[k].Index[1]==c[1]))
      {
          for(i=0; i<24; i++)
          {
             LCD_WriteByte(font12x16[k].Msk, 1);
             if(i==11)
             {
                y++;
                LCD_Set_XY(x,y);
             }
          }
      }
    }
}
/*
**********************************************************
*函数名:LCD_DrawPicture
*功能: 绘图
*参数:   X、Y    :位图绘制的起始X、Y坐标;

          *map    :位图点阵数据;

          Pix_x   :位图像素(长) <=84

          Pix_y   :位图像素(宽) <=48  
*返回值:无
*备 注:
**********************************************************
*/
void LCD_DrawPicture(u8 X,u8 Y,unsigned char const *map,
                  u8 Pix_x,u8 Pix_y)
{
    u16 i,n;
    u8 row;

    //计算位图所占行数

    if (Pix_y%8==0)   //如果为位图所占行数为整数      
        row=Pix_y/8;      

    else

        row=Pix_y/8+1;  //如果为位图所占行数不是整数

   

    LCD_Set_XY(X,Y);

    for (n=0;n<row;n++)  //换行

    {  

        for(i=0;i<Pix_x;i++)

        {  

            LCD_Set_XY(X+i,Y+n);

            LCD_WriteByte(map[i+n*Pix_x], 1);

        }                          

    }     
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-21 03:11:02 | 显示全部楼层
// 以下是 font.h 的内容 /////////////
/*
**********************************************************
*说明:
该font.h 文件中包含的是5110显示所用的ASCII、
部分汉字、及图片字模。取模软件使用
“PCtoLCD2002”,取模方式选项:
阴码、逆向、列行式、十六进制数。
汉字取模:宽12 、高 12
**********************************************************
*/
// 6 x 8 font
// 1 pixel space at left and bottom
// index = ASCII - 32                               
code unsigned char font6x12[][12] =
{
/*--  文字:     --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  !  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00},

/*--  文字:  "  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x0C,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  #  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x90,0xD0,0xBC,0xD0,0xBC,0x90,0x00,0x03,0x00,0x03,0x00,0x00},

/*--  文字:  $  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x18,0x24,0xFE,0x44,0x8C,0x00,0x03,0x02,0x07,0x02,0x01,0x00},

/*--  文字:  %  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x18,0x24,0xD8,0xB0,0x4C,0x80,0x00,0x03,0x00,0x01,0x02,0x01},

/*--  文字:  &  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xC0,0x38,0xE4,0x38,0xE0,0x00,0x01,0x02,0x02,0x01,0x02,0x02},

/*--  文字:  '  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  (  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x00,0xF8,0x04,0x02,0x00,0x00,0x00,0x01,0x02,0x04},

/*--  文字:  )  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x02,0x04,0xF8,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x00},

/*--  文字:  *  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x90,0x60,0xF8,0x60,0x90,0x00,0x00,0x00,0x01,0x00,0x00,0x00},

/*--  文字:  +  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0x20,0xFC,0x20,0x20,0x00,0x00,0x00,0x01,0x00,0x00,0x00},

/*--  文字:  ,  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x00,0x00,0x00,0x00},

/*--  文字:  -  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  .  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00},

/*--  文字:  /  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x80,0x60,0x1C,0x02,0x00,0x04,0x03,0x00,0x00,0x00,0x00},

/*--  文字:  0  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF8,0x04,0x04,0x04,0xF8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  1  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00},

/*--  文字:  2  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x18,0x84,0x44,0x24,0x18,0x00,0x03,0x02,0x02,0x02,0x02,0x00},

/*--  文字:  3  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x08,0x04,0x24,0x24,0xD8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  4  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x40,0xB0,0x88,0xFC,0x80,0x00,0x00,0x00,0x00,0x03,0x02,0x00},

/*--  文字:  5  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x3C,0x24,0x24,0x24,0xC4,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  6  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF8,0x24,0x24,0x2C,0xC0,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  7  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x0C,0x04,0xE4,0x1C,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x00},

/*--  文字:  8  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xD8,0x24,0x24,0x24,0xD8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  9  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x38,0x44,0x44,0x44,0xF8,0x00,0x00,0x03,0x02,0x02,0x01,0x00},

/*--  文字:  :  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00},

/*--  文字:  ;  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00},

/*--  文字:  <  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x20,0x50,0x88,0x04,0x02,0x00,0x00,0x00,0x00,0x01,0x02},

/*--  文字:  =  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x90,0x90,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  >  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x02,0x04,0x88,0x50,0x20,0x00,0x02,0x01,0x00,0x00,0x00},

/*--  文字:  ?  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x18,0x04,0xC4,0x24,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00},

/*--  文字:  @  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF8,0x04,0xE4,0x94,0xF8,0x00,0x01,0x02,0x02,0x02,0x02,0x00},

/*--  文字:  A  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0xE0,0x9C,0xF0,0x80,0x00,0x02,0x03,0x00,0x00,0x03,0x02},

/*--  文字:  B  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x24,0x24,0xD8,0x00,0x02,0x03,0x02,0x02,0x01,0x00},

/*--  文字:  C  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF8,0x04,0x04,0x04,0x0C,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  D  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x04,0x04,0xF8,0x00,0x02,0x03,0x02,0x02,0x01,0x00},

/*--  文字:  E  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x24,0x74,0x0C,0x00,0x02,0x03,0x02,0x02,0x03,0x00},

/*--  文字:  F  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x24,0x74,0x0C,0x00,0x02,0x03,0x02,0x00,0x00,0x00},

/*--  文字:  G  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF0,0x08,0x04,0x44,0xCC,0x40,0x00,0x01,0x02,0x02,0x01,0x00},

/*--  文字:  H  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x20,0x20,0xFC,0x04,0x02,0x03,0x00,0x00,0x03,0x02},

/*--  文字:  I  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0x04,0xFC,0x04,0x04,0x00,0x02,0x02,0x03,0x02,0x02,0x00},

/*--  文字:  J  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x04,0x04,0xFC,0x04,0x04,0x06,0x04,0x04,0x03,0x00,0x00},

/*--  文字:  K  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x24,0xD0,0x0C,0x04,0x02,0x03,0x02,0x00,0x03,0x02},

/*--  文字:  L  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x04,0x00,0x00,0x00,0x02,0x03,0x02,0x02,0x02,0x03},

/*--  文字:  M  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xFC,0x3C,0xC0,0x3C,0xFC,0x00,0x03,0x00,0x03,0x00,0x03,0x00},

/*--  文字:  N  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x30,0xC4,0xFC,0x04,0x02,0x03,0x02,0x00,0x03,0x00},

/*--  文字:  O  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF8,0x04,0x04,0x04,0xF8,0x00,0x01,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  P  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x24,0x24,0x18,0x00,0x02,0x03,0x02,0x00,0x00,0x00},

/*--  文字:  Q  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xF8,0x84,0x84,0x04,0xF8,0x00,0x01,0x02,0x02,0x07,0x05,0x00},

/*--  文字:  R  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x24,0x64,0x98,0x00,0x02,0x03,0x02,0x00,0x03,0x02},

/*--  文字:  S  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x18,0x24,0x24,0x44,0x8C,0x00,0x03,0x02,0x02,0x02,0x01,0x00},

/*--  文字:  T  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x0C,0x04,0xFC,0x04,0x0C,0x00,0x00,0x02,0x03,0x02,0x00,0x00},

/*--  文字:  U  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x00,0x00,0xFC,0x04,0x00,0x01,0x02,0x02,0x01,0x00},

/*--  文字:  V  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0x7C,0x80,0xE0,0x1C,0x04,0x00,0x00,0x03,0x00,0x00,0x00},

/*--  文字:  W  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x1C,0xE0,0x3C,0xE0,0x1C,0x00,0x00,0x03,0x00,0x03,0x00,0x00},

/*--  文字:  X  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0x9C,0x60,0x9C,0x04,0x00,0x02,0x03,0x00,0x03,0x02,0x00},

/*--  文字:  Y  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0x1C,0xE0,0x1C,0x04,0x00,0x00,0x02,0x03,0x02,0x00,0x00},

/*--  文字:  Z  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x0C,0x84,0x64,0x1C,0x04,0x00,0x02,0x03,0x02,0x02,0x03,0x00},

/*--  文字:  [  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0xFE,0x02,0x02,0x00,0x00,0x00,0x07,0x04,0x04,0x00},

/*--  文字:  |  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00},

/*--  文字:  ]  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x02,0x02,0xFE,0x00,0x00,0x00,0x04,0x04,0x07,0x00,0x00},

/*--  文字:  ^  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x04,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  _  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08},

/*--  文字:  '  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

/*--  文字:  a  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x40,0xA0,0xA0,0xC0,0x00,0x00,0x01,0x02,0x02,0x03,0x02},

/*--  文字:  b  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x20,0x20,0xC0,0x00,0x00,0x03,0x02,0x02,0x01,0x00},

/*--  文字:  c  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0xC0,0x20,0x20,0x60,0x00,0x00,0x01,0x02,0x02,0x02,0x00},

/*--  文字:  d  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0xC0,0x20,0x24,0xFC,0x00,0x00,0x01,0x02,0x02,0x03,0x02},

/*--  文字:  e  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0xC0,0xA0,0xA0,0xC0,0x00,0x00,0x01,0x02,0x02,0x02,0x00},

/*--  文字:  f  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x20,0xF8,0x24,0x24,0x04,0x00,0x02,0x03,0x02,0x02,0x00},

/*--  文字:  g  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x40,0xA0,0xA0,0x60,0x20,0x00,0x07,0x0A,0x0A,0x0A,0x04},

/*--  文字:  h  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x20,0x20,0xC0,0x00,0x02,0x03,0x02,0x00,0x03,0x02},

/*--  文字:  i  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x20,0xE4,0x00,0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00},

/*--  文字:  j  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x00,0x20,0xE4,0x00,0x00,0x08,0x08,0x08,0x07,0x00,0x00},

/*--  文字:  k  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0xFC,0x80,0xE0,0x20,0x20,0x02,0x03,0x02,0x00,0x03,0x02},

/*--  文字:  l  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x04,0x04,0xFC,0x00,0x00,0x00,0x02,0x02,0x03,0x02,0x02,0x00},

/*--  文字:  m  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0xE0,0x20,0xE0,0x20,0xC0,0x00,0x03,0x00,0x03,0x00,0x03,0x00},

/*--  文字:  n  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0xE0,0x20,0x20,0xC0,0x00,0x02,0x03,0x02,0x00,0x03,0x02},

/*--  文字:  o  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0xC0,0x20,0x20,0xC0,0x00,0x00,0x01,0x02,0x02,0x01,0x00},

/*--  文字:  p  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0xE0,0x20,0x20,0xC0,0x00,0x08,0x0F,0x0A,0x02,0x01,0x00},

/*--  文字:  q  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0xC0,0x20,0x20,0xE0,0x00,0x00,0x01,0x02,0x0A,0x0F,0x08},

/*--  文字:  r  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0xE0,0x40,0x20,0x20,0x00,0x02,0x03,0x02,0x00,0x00,0x00},

/*--  文字:  s  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x60,0xA0,0xA0,0x20,0x00,0x00,0x02,0x02,0x02,0x03,0x00},

/*--  文字:  t  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x20,0xF8,0x20,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x00},

/*--  文字:  u  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0xE0,0x00,0x20,0xE0,0x00,0x00,0x01,0x02,0x02,0x03,0x02},

/*--  文字:  v  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0xE0,0x20,0x80,0x60,0x20,0x00,0x00,0x03,0x01,0x00,0x00},

/*--  文字:  w  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x60,0x80,0xE0,0x80,0x60,0x00,0x00,0x03,0x00,0x03,0x00,0x00},

/*--  文字:  x  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0x60,0x80,0x60,0x20,0x00,0x02,0x03,0x00,0x03,0x02,0x00},

/*--  文字:  y  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x20,0xE0,0x20,0x80,0x60,0x20,0x08,0x08,0x07,0x01,0x00,0x00},

/*--  文字:  z  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=6x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
{0x00,0x20,0xA0,0x60,0x20,0x00,0x00,0x02,0x03,0x02,0x02,0x00},


};


typedef struct
{
  unsigned char Index[2];
  unsigned char Msk[24];  
}TYPE_FONT12X16;


code TYPE_FONT12X16 font12x16[]=
{   

/*--  文字:  我  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"我",0x10,0x12,0x12,0xFF,0x91,0x10,0xFF,0x10,0x90,0x52,0x14,0x00,0x02,0x02,0x09,0x0F,
0x00,0x04,0x02,0x03,0x04,0x08,0x0E,0x00,

/*--  文字:  是  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"是",0x40,0x40,0x5F,0x55,0x55,0xD5,0x55,0x55,0x5F,0x40,0x40,0x00,0x08,0x04,0x03,0x04,
0x08,0x0F,0x09,0x09,0x09,0x09,0x08,0x00,

/*--  文字:  中  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"中",0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x01,0x00,0x00,
0x00,0x0F,0x00,0x00,0x00,0x01,0x00,0x00,

/*--  文字:  国  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"国",0xFF,0x01,0x25,0x25,0x25,0xFD,0x25,0x65,0xA5,0x01,0xFF,0x00,0x0F,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x0F,0x00,

/*--  文字:  人  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"银",0x98,0xF7,0x94,0x94,0x00,0xFF,0x49,0xC9,0x49,0x7F,0x80,0x00,0x00,0x0F,0x04,0x02,0x00,
0x0F,0x04,0x01,0x02,0x05,0x08,0x00,/*"",0*/

/*--  文字:  解  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"解",0x08,0xFE,0xAB,0xFE,0xAA,0xF8,0xAA,0xA6,0xFA,0xAA,0xAE,0x00,0x06,0x01,0x00,0x07,
0x04,0x07,0x00,0x00,0x07,0x00,0x00,0x00,

/*--  文字:  码  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"码",0x21,0xFF,0x11,0xF1,0x80,0xA1,
     0xBD,0xA1,0xA1,0x3F,0xE0,0x00,
         0x00,0x03,0x01,0x03,0x00,0x00,
         0x00,0x04,0x04,0x04,0x03,0x00,

/*--  文字:  实  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"实",0x88,0x86,0xA2,0xCA,0x92,0x83,0xFA,0x82,0x82,0x8A,0x86,0x00,0x00,0x04,0x04,0x04,
0x02,0x01,0x00,0x01,0x02,0x04,0x00,0x00,

/*--  文字:  验  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"验",0x21,0x3D,0xA1,0xFF,0x10,0xC8,0x14,0xD3,0x14,0xC8,0x10,0x00,0x01,0x05,0x04,0x03,
0x04,0x05,0x04,0x05,0x06,0x05,0x04,0x00,


/*--  文字:  驱  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"驱",0x21,0x3D,0x21,0x3F,0xE0,0x00,0xFF,0x89,0x51,0x71,0x8D,0x00,0x01,0x05,0x05,0x06,
0x01,0x00,0x07,0x04,0x04,0x04,0x05,0x00,

/*--  文字:  动  --*/
/*--  宋体9;  此字体下对应的点阵为:宽x高=12x12   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=12x16  --*/
"动",0x92,0x52,0x32,0x52,0x92,0x10,0x08,0xFF,0x08,0x08,0xF8,0x00,0x03,0x01,0x01,0x01,
0x05,0x02,0x01,0x04,0x04,0x06,0x01,0x00,




};


/*--  调入了一幅图像:这是您新建的图像  --*/
/*--  宽度x高度=32x16  --*/
code unsigned char X_1[] =
{
0x00,0x00,0xE0,0xF0,0xF8,0xF8,0xF8,0xF0,
0xE0,0xF0,0xF8,0xF8,0xF8,0xF0,0xE0,0x00,
0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,
0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00};

/*--  调入了一幅图像:这是您新建的图像  --*/
/*--  宽度x高度=32x16  --*/
code unsigned char F_22[] =
{
0x80,0x80,0x80,0xC0,0x40,0x20,0x10,0x08,0x04,0x02,0x22,0x1C,0x20,0x90,0x48,0x38,
0x00,0x00,0x00,0x01,0x01,0x02,0x04,0x08,0x10,0x20,0x22,0x1C,0x02,0x04,0x09,0x0E
};
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-21 03:13:42 | 显示全部楼层
二楼为.C文件3楼4楼为.H文件
自己发明的简洁试  模块化
先存档方便以后查阅
回复 支持 反对

使用道具 举报

发表于 2018-6-21 05:50:36 | 显示全部楼层
赞,牛啊
回复 支持 反对

使用道具 举报

发表于 2018-6-21 07:19:42 | 显示全部楼层
专业技术,膜拜
回复 支持 反对

使用道具 举报

发表于 2018-6-21 08:20:43 | 显示全部楼层
顶楼主
回复 支持 反对

使用道具 举报

发表于 2018-6-21 09:53:38 | 显示全部楼层
感谢分享
5110液晶驱动显示实验 tft液晶驱动ic,1602液晶驱动 作者:昶春斋 4315
回复 支持 反对

使用道具 举报

发表于 2018-6-21 13:24:42 | 显示全部楼层
学习学习,学习一下,谢谢
回复 支持 反对

使用道具 举报

发表于 2018-6-24 19:10:41 | 显示全部楼层
这都能做,神人
回复 支持 反对

使用道具 举报

发表于 2018-9-20 11:43:56 | 显示全部楼层
好资料学习啦,顶!!!
回复 支持 反对

使用道具 举报

发表于 2018-12-6 22:40:12 | 显示全部楼层
回帖是一种美德,美德
回复 支持 反对

使用道具 举报

发表于 2020-8-30 09:51:34 | 显示全部楼层
ldy7474 发表于 2018-6-21 03:11
// 以下是 font.h 的内容 /////////////
/*
**********************************************************  ...

楼主威武,学习啦!!!!!!
回复 支持 反对

使用道具 举报

发表于 2023-1-18 22:23:58 来自手机 | 显示全部楼层
这个可是有点费事儿!
回复 支持 反对

使用道具 举报

发表于 2023-1-23 16:58:16 | 显示全部楼层
ttttttttttttttttttttttttttttttttttttttttttttttttttttttt
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|关于模吧|APP下载|广告报价|手机版|企业会员|商城入驻|联系我们|模吧 ( 黔ICP备2022002348号-1 )

© 2013-2020 Moz8.com 模吧,玩出精彩!