miniLCD12864 16引脚

显示图片

main.c

#include<reg51.h>
#include"st7565.h"
//---存一个图片--//
unsigned char code pic[]={
/*-- 宽度x高度=128x64 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0x57,0x53,0x57,0x07,0xFF,0x0F,0xE3,0x0F,0xEF,0xFF,0xEF,0xEF,0xEF,0x03,0xEF,0xEF,
0xEF,0x0F,0xE3,0x0F,0xEF,0xFF,0x77,0x77,0x17,0x57,0x57,0x53,0x57,0x57,0x17,0x77,
0x77,0xFF,0xFB,0x8B,0xAB,0x83,0xAB,0x83,0xAB,0x8B,0xFF,0x37,0xDB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0x57,0x53,0x57,0x07,0xFF,0x0F,0xE3,0x0F,0xEF,0xFF,0xEF,0xEF,0xEF,0x03,0xEF,0xEF,
0xEF,0x0F,0xE3,0x0F,0xEF,0xFF,0x77,0x77,0x17,0x57,0x57,0x53,0x57,0x57,0x17,0x77,
0x77,0xFF,0xFB,0x8B,0xAB,0x83,0xAB,0x83,0xAB,0x8B,0xFF,0x37,0xDB,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEE,0xF5,
0xFB,0xF4,0xEF,0xE0,0xFF,0xF4,0xFB,0xF4,0xEF,0xFF,0xE0,0xEE,0xEE,0xEE,0xEE,0xE0,
0xFF,0xF4,0xFB,0xF5,0xEC,0xFF,0xE2,0xEF,0xEF,0xE1,0xFD,0xFD,0xFD,0xF9,0xF7,0xEF,
0xEE,0xFF,0xEB,0xF2,0xFA,0xE2,0xEA,0xFA,0xF2,0xEB,0xFF,0xE0,0xFD,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEE,0xF5,
0xFB,0xF4,0xEF,0xE0,0xFF,0xF4,0xFB,0xF4,0xEF,0xFF,0xE0,0xEE,0xEE,0xEE,0xEE,0xE0,
0xFF,0xF4,0xFB,0xF5,0xEC,0xFF,0xE2,0xEF,0xEF,0xE1,0xFD,0xFD,0xFD,0xF9,0xF7,0xEF,
0xEE,0xFF,0xEB,0xF2,0xFA,0xE2,0xEA,0xFA,0xF2,0xEB,0xFF,0xE0,0xFD,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE3,0x81,0x81,0xE3,0xFF,0xFF,0xDF,0xDD,0xD5,0x4D,0x9D,0x00,
0x9D,0x4D,0xD5,0xDD,0xDF,0xFF,0xFB,0xFB,0x00,0xFB,0xFB,0x9B,0xEB,0xFB,0x0F,0xE9,
0xEE,0xFF,0xEF,0xEE,0x2A,0xAA,0xAA,0xA8,0xA2,0x0A,0xAA,0x6E,0xEF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE3,0x81,0x81,0xE3,0xFF,0xFF,0xDF,0xDD,0xD5,0x4D,0x9D,0x00,
0x9D,0x4D,0xD5,0xDD,0xDF,0xFF,0xFB,0xFB,0x00,0xFB,0xFB,0x9B,0xEB,0xFB,0x0F,0xE9,
0xEE,0xFF,0xEF,0xEE,0x2A,0xAA,0xAA,0xA8,0xA2,0x0A,0xAA,0x6E,0xEF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFF,0xFF,0xFF,0xFD,0xFD,0xFE,0xFF,0x7F,0x78,
0x7F,0x7F,0xFE,0x7D,0x7D,0xBF,0xBB,0xBB,0xBA,0xBA,0x3A,0xBB,0xBB,0xBD,0xBE,0x7D,
0x7B,0xBF,0xBF,0xBF,0x78,0xFA,0xFA,0xFA,0xFA,0xF8,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFF,0xFF,0xFF,0xFD,0xFD,0xFE,0xFF,0x7F,0x78,
0x7F,0x7F,0xFE,0x7D,0x7D,0xBF,0xBB,0xBB,0xBA,0xBA,0x3A,0xBB,0xBB,0xBD,0xBE,0x7D,
0x7B,0xBF,0xBF,0xBF,0x78,0xFA,0xFA,0xFA,0xFA,0xF8,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x87,0xF8,0xFF,0xFF,
0xFF,0x7F,0x7E,0xBD,0xCF,0x73,0xBF,0xDB,0xDD,0xBD,0x7B,0xFE,0x7F,0xBB,0xDD,0xDD,
0xBB,0x7F,0xE7,0x9F,0x5F,0xBE,0x7D,0x73,0xEF,0x9F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x87,0xF8,0xFF,0xFF,
0xFF,0x7F,0x7E,0xBD,0xCF,0x73,0xBF,0xDB,0xDD,0xBD,0x7B,0xFE,0x7F,0xBB,0xDD,0xDD,
0xBB,0x7F,0xE7,0x9F,0x5F,0xBE,0x7D,0x73,0xEF,0x9F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFD,0x0D,0xF2,0xFC,
0xFE,0xFF,0xFF,0xEF,0x1F,0x3E,0xDC,0xE8,0xEB,0xED,0xDE,0xD7,0xD6,0xD4,0x68,0x6B,
0xED,0xF6,0xF7,0xEF,0x1F,0xFE,0xFD,0xF3,0x0E,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFD,0x0D,0xF2,0xFC,
0xFE,0xFF,0xFF,0xEF,0x1F,0x3E,0xDC,0xE8,0xEB,0xED,0xDE,0xD7,0xD6,0xD4,0x68,0x6B,
0xED,0xF6,0xF7,0xEF,0x1F,0xFE,0xFD,0xF3,0x0E,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC3,0x81,0x3C,0x7E,0xFE,0xFE,0xFD,0xF9,0xFD,0xFE,0xFA,0x66,
0xBD,0x00,0x7E,0xFE,0xFE,0xFD,0xF9,0xFD,0xFE,0xFA,0x66,0xBD,0xC3,0xFF,0xFC,0x73,
0x37,0x2F,0xAF,0xDE,0xDF,0xBF,0xAC,0x9B,0xB7,0xB7,0x6C,0x6C,0x6F,0x6F,0xB6,0xB6,
0xDB,0xCB,0xD5,0xAA,0x2F,0x37,0x7B,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC3,0x81,0x3C,0x7E,0xFE,0xFE,0xFD,0xF9,0xFD,0xFE,0xFA,0x66,
0xBD,0x00,0x7E,0xFE,0xFE,0xFD,0xF9,0xFD,0xFE,0xFA,0x66,0xBD,0xC3,0xFF,0xFC,0x73,
0x37,0x2F,0xAF,0xDE,0xDF,0xBF,0xAC,0x9B,0xB7,0xB7,0x6C,0x6C,0x6F,0x6F,0xB6,0xB6,
0xDB,0xCB,0xD5,0xAA,0x2F,0x37,0x7B,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xF7,0xFB,0xFD,0xFE,0xFF,
0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xF7,0xFB,0xFD,0xFE,0xFF,0xDF,0xDF,0xC1,0xC8,0xDC,
0xFF,0xF8,0xF7,0xEF,0xDF,0xF8,0xF2,0xF2,0xF8,0xFC,0xFE,0xFC,0xFC,0xFE,0xFC,0xF8,
0xF2,0xD2,0xE8,0xF7,0xF8,0xFF,0xDC,0xC8,0xC1,0xC3,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xF7,0xFB,0xFD,0xFE,0xFF,
0xFF,0xFF,0xFE,0xFC,0xF9,0xF3,0xF7,0xFB,0xFD,0xFE,0xFF,0xDF,0xDF,0xC1,0xC8,0xDC,
0xFF,0xF8,0xF7,0xEF,0xDF,0xF8,0xF2,0xF2,0xF8,0xFC,0xFE,0xFC,0xFC,0xFE,0xFC,0xF8,
0xF2,0xD2,0xE8,0xF7,0xF8,0xFF,0xDC,0xC8,0xC1,0xC3,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,
};

/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/

void main(void)
{
uchar i , j;
uint n;
Lcd12864_Init(); //初始化
Lcd12864_ClearScreen(); //清屏

for (i=0;i<8;i++)
{
//--设置初始显示开始位置--//
LcdSt7565_WriteCmd(0x40);

//--设置Y坐标--//
LcdSt7565_WriteCmd(0xB0+i);

//--设置X坐标--//
LcdSt7565_WriteCmd(0x10);
LcdSt7565_WriteCmd(0x04);
for(j=0; j<128; j++)
{
LcdSt7565_WriteData(~pic[n]);
n=n+1;
}
}
while (1)
{
}
}

st7565.c

#include"st7565.h"

/*******************************************************************************
* 函 数 名 : LCD12864_WriteCmd
* 函数功能 : 写入一个命令到12864
* 输 入 : cmd
* 输 出 : 无
*******************************************************************************/

void LcdSt7565_WriteCmd(cmd)
{
LCD12864_CS = 0; //chip select,打开片选
LCD12864_RD = 1; //disable read,读失能
LCD12864_RS = 0; //select command,选择命令
LCD12864_RW = 0; //select write,选择写模式
_nop_();
_nop_();

DATA_PORT = cmd; //put command,放置命令
_nop_();
_nop_();

LCD12864_RW = 1; //command writing ,写入命令
}

/*******************************************************************************
* 函 数 名 : LcdSt7565_WriteData
* 函数功能 : 写入一个数据到12864
* 输 入 : dat
* 输 出 : 无
*******************************************************************************/

void LcdSt7565_WriteData(dat)
{
LCD12864_CS = 0; //chip select,打开片选
LCD12864_RD = 1; //disable read,读失能
LCD12864_RS = 1; //select data,选择数据
LCD12864_RW = 0; //select write,选择写模式
_nop_();
_nop_();

DATA_PORT = dat; //put data,放置数据
_nop_();
_nop_();

LCD12864_RW = 1; //data writing,写数据
}
/*******************************************************************************
* 函 数 名 : LCD12864_Init
* 函数功能 : 初始化12864
* 输 入 : 无
* 输 出 : 无
* 说 明 : LCD12864的命令指令可以查看例程文件夹下的《ST7565p数据手册》
* * 的第51页的位置。
*******************************************************************************/

void Lcd12864_Init()
{
uchar i;
LCD12864_RSET = 0;
for (i=0; i<100; i++);
LCD12864_CS = 0;
LCD12864_RSET = 1;

//----------------Star Initial Sequence-------//
//------程序初始化设置,具体命令可以看文件夹下---//

//--软件初始化--//
LcdSt7565_WriteCmd(0xE2); //reset
for (i=0; i<100; i++); //延时一下

//--表格第8个命令,0xA0段(左右)方向选择正常方向(0xA1为反方向)--//
LcdSt7565_WriteCmd(0xA1); //ADC select segment direction

//--表格第15个命令,0xC8普通(上下)方向选择选择反向,0xC0为正常方向--//
LcdSt7565_WriteCmd(0xC8); //Common direction

//--表格第9个命令,0xA6为设置字体为黑色,背景为白色---//
//--0xA7为设置字体为白色,背景为黑色---//
LcdSt7565_WriteCmd(0xA6); //reverse display

//--表格第10个命令,0xA4像素正常显示,0xA5像素全开--//
LcdSt7565_WriteCmd(0xA4); //normal display

//--表格第11个命令,0xA3偏压为1/7,0xA2偏压为1/9--//
LcdSt7565_WriteCmd(0xA2); //bias set 1/9

//--表格第19个命令,这个是个双字节的命令,0xF800选择增压为4X;--//
//--0xF801,选择增压为5X,其实效果差不多--//
LcdSt7565_WriteCmd(0xF8); //Boost ratio set
LcdSt7565_WriteCmd(0x01); //x4

//--表格第18个命令,这个是个双字节命令,高字节为0X81,低字节可以--//
//--选择从0x00到0X3F。用来设置背景光对比度。---/
LcdSt7565_WriteCmd(0x81); //V0 a set
LcdSt7565_WriteCmd(0x23);

//--表格第17个命令,选择调节电阻率--//
LcdSt7565_WriteCmd(0x25); //Ra/Rb set

//--表格第16个命令,电源设置。--//
LcdSt7565_WriteCmd(0x2F);
for (i=0; i<100; i++);

//--表格第2个命令,设置显示开始位置--//
LcdSt7565_WriteCmd(0x40); //start line

//--表格第1个命令,开启显示--//
LcdSt7565_WriteCmd(0xAF); // display on
for (i=0; i<100; i++);

}

/*******************************************************************************
* 函 数 名 : LCD12864_ClearScreen
* 函数功能 : 清屏12864
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/

void Lcd12864_ClearScreen(void)
{
uchar i, j;

for(i=0; i<8; i++)
{
//--表格第3个命令,设置Y的坐标--//
//--Y轴有64个,一个坐标8位,也就是有8个坐标--//
//所以一般我们使用的也就是从0xB0到0x07,就够了--//
LcdSt7565_WriteCmd(0xB0+i);

//--表格第4个命令,设置X坐标--//
//--当你的段初始化为0xA1时,X坐标从0x10,0x04到0x18,0x04,一共128位--//
//--当你的段初始化为0xA0时,X坐标从0x10,0x00到0x18,0x00,一共128位--//
//--在写入数据之后X坐标的坐标是会自动加1的,我们初始化使用0xA0所以--//
//--我们的X坐标从0x10,0x00开始---//
LcdSt7565_WriteCmd(0x10);
LcdSt7565_WriteCmd(0x04);

//--X轴有128位,就一共刷128次,X坐标会自动加1,所以我们不用再设置坐标--//
for(j=0; j<128; j++)
{
LcdSt7565_WriteData(0x00); //如果设置背景为白色时,清屏选择0XFF
}
}
}

/*******************************************************************************
* 函 数 名 : LCD12864_Write16CnCHAR
* 函数功能 : 在12864上面书写16X16的汉字
* 输 入 : x, y, cn
* 输 出 : 无
* 说 明 : 该函数可以直接书写字符串,但是书写是从右到左,所以输入的时
* * 侯注意输入。汉字的取模方式请观看文件夹下的《汉字取模软件的
* * 使用说明》
*******************************************************************************/

#ifdef CHAR_CODE

#include"charcode.h"

uchar Lcd12864_Write16CnCHAR(uchar x, uchar y, uchar *cn)
{
uchar j, x1, x2, wordNum;

//--Y的坐标只能从0到7,大于则直接返回--//
if(y > 7)
{
return 0;
}

//--X的坐标只能从0到128,大于则直接返回--//
if(x > 128)
{
return 0;
}
y += 0xB0; //求取Y坐标的值
//--设置Y坐标--//
LcdSt7565_WriteCmd(y);
while ( *cn != '') //在C语言中字符串结束以‘’结尾
{

//--设置Y坐标--//
LcdSt7565_WriteCmd(y);

x1 = (x >> 4) & 0x0F; //由于X坐标要两句命令,分高低4位,所以这里先取出高4位
x2 = x & 0x0F; //去低四位
//--设置X坐标--//
LcdSt7565_WriteCmd(0x10 + x1); //高4位
LcdSt7565_WriteCmd(0x04 + x2); //低4位

for (wordNum=0; wordNum<50; wordNum++)
{
//--查询要写的字在字库中的位置--//
if ((CN16CHAR[wordNum].Index[0] == *cn)
&&(CN16CHAR[wordNum].Index[1] == *(cn+1)))
{
for (j=0; j<32; j++) //写一个字
{
if (j == 16) //由于16X16用到两个Y坐标,当大于等于16时,切换坐标
{
//--设置Y坐标--//
LcdSt7565_WriteCmd(y + 1);

//--设置X坐标--//
LcdSt7565_WriteCmd(0x10 + x1); //高4位
LcdSt7565_WriteCmd(0x04 + x2); //低4位
}
LcdSt7565_WriteData(CN16CHAR[wordNum].Msk[j]);
}
x += 16;
}//if查到字结束
} //for查字结束
cn += 2;
} //while结束
return 1;
}

#endif

 st7565.h

//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif

#ifndef uint
#define uint unsigned int
#endif

//--定时使用的IO口--//
#define DATA_PORT P0
sbit LCD12864_CS = P3^2;
sbit LCD12864_RSET = P3^3;
sbit LCD12864_RS = P2^6;
sbit LCD12864_RW = P2^7;
sbit LCD12864_RD = P2^5;

//--定义全局函数--//
void LcdSt7565_WriteCmd(cmd);
void LcdSt7565_WriteData(dat);
void Lcd12864_Init();
void Lcd12864_ClearScreen(void);
uchar Lcd12864_Write16CnCHAR(uchar x, uchar y, uchar *cn);

#endif

显示汉字

main.c

#include<reg51.h>
#include"st7565.h"

//---声明一个全局变量---//
void Delay10ms(unsigned int c);

/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/

void main()
{
uchar i = 128;
Lcd12864_Init();
Lcd12864_ClearScreen();

while (1)
{
for (i=0; i<8; i += 2)
{
Lcd12864_ClearScreen();

//--由于这个函数显示方向正好相反--//
Lcd12864_Write16CnCHAR(0, i, "司公限有技科中普");
Delay10ms(100);
}

}
}

/*******************************************************************************
* 函 数 名 : Delay10ms
* 函数功能 : 延时函数,延时10ms
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/

void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a,b;
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}

CHARCODE.H

#ifndef __CHARCODE_H
#define __CHARCODE_H

#ifdef CHAR_CODE

// ------------------ 汉字字模的数据结构定义 ------------------------ //
struct Cn16CharTypeDef // 汉字字模数据结构
{
unsigned char Index[2]; // 汉字内码索引,一个汉字占两个字节
unsigned char Msk[32]; // 点阵码数据(16*16有32个数据)
};

struct Cn16CharTypeDef code CN16CHAR[]=
{
/*-- 文字: 普 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"普",0x00,0x40,0x44,0x54,0x64,0x45,0x7E,0x44,0x44,0x44,0x7E,0x45,0x64,0x54,0x44,0x40,
0x00,0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,

/*-- 文字: 中 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"中",0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
/*-- 文字: 科 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"科",0x00,0x00,0x00,0xFF,0x00,0x00,0xCC,0x22,0x00,0x91,0x51,0xFE,0x72,0x92,0x12,0x10,
0x00,0x01,0x01,0xFF,0x02,0x02,0x02,0x04,0x04,0x04,0x00,0xFF,0x00,0x01,0x02,0x04,
/*-- 文字: 技 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"技",0x00,0x08,0x48,0xC8,0x48,0x7F,0x48,0x48,0xC8,0x00,0x28,0x48,0xFF,0x88,0x08,0x08,
0x00,0x20,0x60,0x21,0x12,0x0C,0x0C,0x13,0x20,0x40,0x40,0x00,0x7F,0x80,0x41,0x01,
/*-- 文字: 有 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"有",0x00,0x04,0x04,0x04,0xE4,0x24,0x24,0x24,0x27,0x2C,0x34,0xE4,0x44,0x84,0x04,0x00,
0x00,0x00,0x00,0x00,0x7F,0xC9,0x49,0x29,0x09,0x09,0x09,0xFF,0x00,0x00,0x01,0x02,

/*-- 文字: 限 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"限",0x00,0x00,0x00,0x7E,0x4A,0x4A,0x4A,0xCA,0x4A,0xFE,0x00,0x82,0x4E,0x32,0x02,0xFE,
0x00,0x20,0x60,0x21,0x12,0x0C,0x03,0x20,0x40,0xFF,0x00,0x03,0x04,0x02,0x00,0xFF,

/*-- 文字: 公 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"公",0x00,0x80,0x80,0xC0,0x60,0x10,0x0E,0x00,0x00,0x84,0x0E,0x30,0x40,0x80,0x00,0x00,
0x00,0x00,0x01,0x30,0x78,0x14,0x10,0x10,0x31,0x23,0x24,0x28,0x70,0x20,0x01,0x00,

/*-- 文字: 司 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"司",0x00,0x00,0xFE,0x02,0x02,0x12,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x10,0x00,
0x00,0x00,0x3F,0x40,0x20,0x00,0x0F,0x04,0x04,0x04,0x04,0x04,0x04,0x1F,0x00,0x00,

};

#endif //end of CHAR_CODE

#endif

原文地址:https://www.cnblogs.com/chengxinhust/p/5800897.html