找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2481|回复: 0
收起左侧

lcd5110学习程序

[复制链接]
ID:134368 发表于 2016-7-20 15:02 | 显示全部楼层 |阅读模式
                         Nokia5110驱动

*说明:本驱动适用于51单片机(5V3.3V,液晶的VCC5V3.3V
          修改偏置电压可改变5110点阵显示的亮度
         51105V时偏置电压改为(0xa7,0,3.3V时改为(0xc0,0
*作者:JK
*创建日期:2013/1/26
*修改日期:
***************************************************************
*/

#include <reg52.h>
#include "font.h"

#define uint unsigned int
#define uchar unsigned char

/*
**********************************************************
                    IO口定义区
**********************************************************
*/


sbit LCD_RST = P0^0;
sbit LCD_CE = P0^1;
sbit LCD_DC = P0^2;
sbit LCD_DIN = P0^3;
sbit LCD_CLK = P0^4;


/*
**********************************************************
                   函数声明区
**********************************************************
*/
void LCD_Init(void);
void LCD_WriteByte(unsigned char dat,unsigned char command);
void LCD_Set_XY(unsigned char X, unsignedchar Y);
void LCD_Clear(void);
void LCD_WriteChar(unsigned char x,unsignedchar y,unsigned char c);
void LCD_WriteString(unsigned charX,unsigned char Y,char *s);
void LCD_WriteNum(unsigned char X,unsignedchar Y,unsigned int num);
void LCD_Write_12X16Font(unsigned charx,unsigned char y,unsigned char c[2]);
void LCD_DrawPicture(unsigned charX,unsigned char Y,unsigned char const *map,
                  unsigned char Pix_x,unsignedchar Pix_y);

/*
**********************************************************
*函数名:LCD_Init
*功能:初始化LCD
*参数:无

*返回值:无
*注:
**********************************************************
*/
void LCD_Init(void)
{
unsigned char i;
LCD_RST=0;                     //复位
for(i=0;i<150;i++);

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

LCD_WriteByte(0xc0, 0);  // 设置偏置电压,修改可改变5110点阵显示的亮度
                    /*51105V时偏置电压改为(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(unsigned char dat,unsigned char command)
{
unsigned char 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(unsigned char X, unsignedchar Y)
{
LCD_WriteByte(0x40 | Y, 0);// column
LCD_WriteByte(0x80 | X, 0);// row     
}


/*
**********************************************************
*函数名:LCD_Clear
*功能: LCD清屏函数
*参数:无  
*返回值:无
*注:
**********************************************************
*/
void LCD_Clear(void)
{
unsigned char t;
unsigned char 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  
*返回值
**********************************************************
*/
voidLCD_WriteChar(unsigned char x,unsigned char y,unsigned char c)
{
    unsigned char 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
*功能: LCD6X8的字符串
*参数:X , Y , S   
*返回值:无
注:
**********************************************************
*/
void LCD_WriteString(unsigned charX,unsigned char Y,char *s)
{
while(*s)
  {
    LCD_WriteChar(X,Y,*s);
    s++;
    X += 6;
  }
}

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

/*
**********************************************************
*函数名:LCD_Write_16X16Font
*功能:写一个16X16的汉字
*参数:x , y , c[2]  x:0-83y:0-5  
*返回值:无
*注:
**********************************************************
*/
void LCD_Write_12X16Font(unsigned charx,unsigned char y,unsigned char c[2])
{
   unsigned char 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
*功能:绘图
*参数:    XY    :位图绘制的起始XY坐标;
          *map   :位图点阵数据;
         Pix_x   :位图像素(长) <=84
         Pix_y   :位图像素(宽) <=48  
*返回值:无
*注:
**********************************************************
*/
void LCD_DrawPicture(unsigned charX,unsigned char Y,unsigned char const *map,
                 unsigned charPix_x,unsigned char Pix_y)
{
       unsignedint i,n;
       unsignedchar 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);
              }                          
       }     
}
/*
**********************************************************
                            -------main函数--------
*函数名:主函数
*注:
**********************************************************
*/
void main()
{   
   LCD_Init();
       while(1)
       {
       LCD_WriteNum(0,0,123);// 写入数字 int型的
       LCD_WriteNum(18,0,7);// 写入数字 int型的
       LCD_WriteNum(24,0,9);                                                  
       LCD_WriteChar(48,0,'I');//写一个6X8的字符
       LCD_WriteChar(54,0,'J');
       LCD_WriteChar(60,0,'K');
       LCD_WriteString(0,2,"jhf");   //6X8的字符串      
   LCD_DrawPicture(32,2,gImage_1,16,16); //绘图         
   LCD_Write_12X16Font(12,4,"");      //写一个16X16的汉字
   LCD_Write_12X16Font(24,4,"");
    LCD_Write_12X16Font(36,4,"");
       LCD_Write_12X16Font(48,4,"");
       LCD_Write_12X16Font(60,4,"");
       }
}
///////////////////////////////////////// 以下是 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];
  unsignedchar Msk[24];  
}TYPE_FONT12X16;
codeTYPE_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*/
};
//数据水平,字节垂直,字节内像素数据反序
code unsignedchar gImage_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};
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表