您的位置 首页 编程

克己单片机之七……LCD12864的驱动之源代码

今天将LCD12864的源代码发上来。LCD12864**********************************************************连线表:CPU=89C51Sy

今日将LCD12864的源代码发上来。

//LCD12864
//**********************************************************
//连线表: CPU=89C51 SysClock=12MHz *
//RS=P1.0 R/W=P1.1 E=P1.2 CS1=P1.3 CS2=P1.4 *
//DB0-DB7=P0.0-P0.7 /Reset=InBoard *
//**********************************************************
#include
#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
/********************引脚界说********************/
#define DataPort P3 //LCD128*64 I/O 信号管脚
sbit RS =P2^0; //数据指令
sbit RW =P2^1; //读写
sbit E =P2^2; //使能
sbit CSL =P2^3; //左片选
sbit CSR =P2^4; //右片选
uchar Page; //页 地址
uchar Col; //列 地址
uchar code BMP1[]; //一幅图
uchar code HZK_12[]; //12×12阵点字模
uchar code ASC_5x7[]; //5×7阵点字模
uchar str[4];

/********************函数界说*******************/
void BusyL(void); //左屏检测忙
void BusyR(void); //右屏检测忙
void CheckBusy(void); //读取忙信号
void Delay(uint MS); //延时
void Locatexy(void); //将屏幕横向0-12纵向0-7转换成左、右屏的的X、Y
void WriteCommandL( uchar CommandByte ); //向左屏写入指令
void WriteCommandR( uchar CommandByte ); //向右屏写入指令
uchar ReadData( void ); //读数据
void WriteData( uchar DataByte ); //写数据
void LcmClear( void ); //清屏
void LcmInit( void ); //初始化
void LcmPutBMP( uchar *puts ); //显现一幅图
void LcmReverseBMP( void ); //将整屏反显
void LcmPutHZ_12( uchar x,uchar y,uchar HZcode ); //在屏幕上恣意点显现一个12×12汉字
uchar * uchartostr(unsigned char unm); //将值转成字符串
void LcmPutAsc( uchar asc ); //显现一个5×7的ASC字符
void LcmPutstr( uchar row,uchar y,uchar * str ); //在设定方位显现字符串
void LcmPutpoint( uchar ro,uchar lie,uchar colour ); //在设定方位显现一个点

/***************************/
/*查看Busy */
/***************************/
void BusyL(void)
{
CSL= 1;
CSR= 0;
CheckBusy();
}
void BusyR(void)
{
CSL= 0;
CSR= 1;
CheckBusy();
}
void CheckBusy(void)
{
RS = 0; //指令
RW = 1;
DataPort= 0xFF; //输出0xff以便读取正确
E = 1;
_nop_();
while(0); //DataPort & 0x80); //Status Read Bit7 = BUSY 这当地有点问题,用了while(//DataPort & 0x80)后就一直读不到0了,堕入死循环。当用while(0) 时反而能正常作业,不知道有没有人能解说
E = 0;
_nop_();
}
/********************************************************/
/*依据设定的坐标数据,定位LCM上的下一个操作单元方位 */
/********************************************************/
void Locatexy(void)
{
uchar x,y;
switch (Col&0xc0) /* col.and.0xC0 */
{ /*条件分支履行 */
case 0: {BusyL();break;}/*左区 */
case 0x40: {BusyR();break;}/*右区 */
}
x = Col&0x3F|0x40; /* col.and.0x3f.or.Set Y Address*/
y = Page&0x07|0xB8; /* row.and.0x07.or.set Page */
CheckBusy(); /* waitting for enable */
RS = 0; //指令
RW = 0; //写
DataPort = y; //设置页面地址
E = 1;
_nop_();
E = 0;
_nop_();
CheckBusy(); /* waitting for enable */
RS = 0;
RW = 0;
DataPort = x; //设置列地址
E = 1;
_nop_();
E = 0;
_nop_();
}
/***************************/
/*写指令 */
/***************************/
void WriteCommandL( uchar CommandByte )
{
BusyL();
DataPort = CommandByte;
RS = 0; //指令
RW = 0;
E = 1;
_nop_();
E = 0;
_nop_();
}
void WriteCommandR( uchar CommandByte )
{
BusyR();
DataPort = CommandByte;
RS = 0; //指令
RW = 0;
E = 1;
_nop_();
E = 0;
_nop_();
}
/***************************/
/*读数据 */
/***************************/
uchar ReadData( void )
{
uchar DataByte;
Locatexy(); /*坐标定位,回来时保存分区状况不变 */
RS = 1; /*数据输出*/
RW = 1; /*读入 */
DataPort = 0xFF; //输出0xff以便读取正确
E = 1; /*读入到LCM*/
_nop_();
DataByte = DataPort; /*数据读出到数据口P1 */
E = 0;
_nop_();
return DataByte;
}
/***************************/
/*写数据 */
/***************************/
void WriteData( uchar DataByte )
{
Locatexy(); /*坐标定位,回来时保存分区状况不变 */
RS = 1; /*数据输出*/
RW = 0; /*写输出 */
DataPort = DataByte; /*数据输出到数据口 */
E = 1; /*写入到LCM*/
_nop_();
E = 0;
_nop_();
}
void LcmClear( void )
{
Page = 0;
Col = 0;
for(Page=0;Page<8;Page++)
for(Col=0;Col<128;Col++)
WriteData(0);
}
void LcmInit( void )
{
Delay(200); //等候复位
WriteCommandL(0x3f); //开显现
WriteCommandR(0x3f);

WriteCommandL(0xc0); //设置开始地址=0
WriteCommandR(0xc0);
WriteCommandL(0x3f); //开显现
WriteCommandR(0x3f);
LcmClear();
Col = 0;
Page= 0;
Locatexy();
}

void LcmPutBMP( uchar *puts )
{
uint X=0;
Page = 0;
Col = 0;
for(Page=0;Page<8;Page++)
{
for(Col=0;Col<128;Col++)
{
WriteData( puts[X] );
X++;
}
}
}
void LcmReverseBMP( void )
{
uchar temp;
Page = 0;
Col = 0;
for(Page=0;Page<8;Page++)
{
for(Col=0;Col<128;Col++)
{
temp = ReadData(); //空读一次
temp = ReadData();
temp = ~temp;
WriteData(temp);
}
}
}
void LcmPutHZ_12( uchar x,uchar y,uchar HZcode )
{
uchar offset,Rd,Wt,m,tmp,i;
uint n;
if(x<117&y<53) //x为横向开始点数0-117,超越117就显现不全一个汉字了。y同理。
{
Page=(y & 0x38)>>3; //将竖向的点阵数y转换成页数
Col=x; //横向的X便是LCD的列数。
n = 0x18*HZcode; //一个汉字24字节(18H),HZcode为字库序号。n便是要显现汉字的开始地址
offset=y&0x07;    //将显现该页的竖向偏移量。
if(offset<5) //假如偏移量小于5,那么在竖向用两个页的规模就可显现出汉字了。
{

for(i=12;i>0;i–)
{
Rd=ReadData();
Rd=ReadData(); //读出LCD该Page、Col方位的上半个数据。
m=HZK_12[n]; //读出汉字模第n的数据。
Wt=Rd&(0xff>>(8-offset))|(m< WriteData(Wt); //再将Wt写回LCD
Page++; //页方位移到下半个汉字方位
n++;
tmp=m; //将获得的上半个字模数据交给tmp
m=HZK_12[n]; //取下半个字模数据
Rd=ReadData(); //读LCD下半个字模数据
Rd=ReadData();
Wt=tmp>>(8-offset)|(m<|(rd&(0xff<<(offset+4))); br="">|(rd&(0xff<<(offset+4))); br=""> WriteData(Wt);//再写回LCD
Col++;//列数添加一
Page–;//将页数回来上半个汉字方位。
n++;
}
}
else //假如偏移量大于或等于5,竖向就要用3个页的规模来显现一个汉字了。
{
for(i=12;i>0;i–)
|(rd&(0xff<<(offset+4)));>|(rd&(0xff<<(offset+4)));>

{
Rd=ReadData();
Rd=ReadData(); //读取LCD上汉字上部方位的本来数据。
m=HZK_12[n]; //读取汉字模数据
Wt=Rd&(0xff>>(8-offset))|(m< WriteData(Wt); //写回
Page++; //到下一页即汉字中部方位
n++;
tmp=m; //上半个字模交给tmp
m=HZK_12[n]; //读取下半个字模
Wt=tmp>>(8-offset)|(m< WriteData(Wt); //写回
Page++; //到下一页即汉字下部方位
n++;
Rd=ReadData();
Rd=ReadData(); //读取LCD上汉字下部方位的本来数据
Wt=m>>(8-offset)|(Rd&(0xff<<(offset-4))); //嵌入
WriteData(Wt); //写回
Page=Page-2;//康复方位
Col++; //批改下一个汉字的开始方位
}
}
}
}

uchar * uchartostr(uchar unm)
{
uchar x00,xx,x0,x,n;
x00=unm/100;
xx=unm%100;
x0=xx/10;
x=xx%10;
n=0;
if(x00!=0)
{ str[n]=x00+48; //值加48即为字符
n++;
}
if(!(x00==0&x0==0))
{ str[n]=x0+48;
n++;
}
str[n]=x+48;
n++;
str[n]=\0;
return str;

}
void LcmPutAsc( uchar asc )
{
uchar j;
uint x;
x = 5*(asc-32);
for(j=0;j<5;j++)
{
WriteData(ASC_5x7[x]);
x++;
Col++;
}
WriteData(0x00);
Col++;

}

void LcmPutstr( uchar row,uchar y,uchar * str )
{ unsigned char * x;
x=str;
Page=row;
Col=y;
while(*x!=\0)
{ LcmPutAsc( *x );
x++;
}

}

void LcmPutpoint( uchar ro,uchar lie,uchar colour ) //画点函数
{
if((ro<64)&(lie<128))
{
uchar modbyte,outByte;
uchar offsetbit;
Col=lie; //列等于lie
Page=(ro & 0x38)>>3; //页等于行数row与00111000B再右移3位
offsetbit=ro&0x07; //偏移量为行数与00000111
modbyte=1;
modbyte<<= offsetbit; //输出位的模00000001左移offsetbit位
outByte=ReadData();
outByte=ReadData();
if(colour==0)
{
modbyte=~modbyte;
outByte=modbyte&outByte; //输出位不影响其它位
}
else outByte=modbyte|ReadData(); //输出位不影响其它位
WriteData(outByte);
}
}

void Delay(uint MS)
{
uchar us,usn;
while(MS!=0)
{
usn = 2; //for 12M
while(usn!=0)
{
us=0xf6;
while (us!=0){us–;};
usn–;
}
MS–;
}
}
void Main( void )
{
uchar x,i;
LcmInit();
LcmClear();
while(1)
{
LcmClear();
LcmPutBMP(BMP1);
Delay(3000);
LcmClear();
//LcmReverseBMP();
Delay(1000);
//LcmClear();
x=0;
for(i=0;i<8;i++)
{
LcmPutHZ_12(x,i*7,i);
x=x+16;
}
LcmPutstr( 4,2,”Hello” );
LcmPutstr( 6,35,”World!” );
Delay(5000);

}
}

unsigned char code BMP1[]={ //字节倒序
//– 调入了一幅图画:
//宽度x高度=1264

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0xE0,0xF0,0xFC,0xFE,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x9F,0xCF,0xDF,0x9F,
0x9E,0x3E,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFA,0xFC,0xF8,0xE0,0xC0,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0xC0,0xF0,0xF8,0xFC,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xEF,
0xCF,0xDF,0x9F,0x0F,0x1F,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0xFC,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,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFB,0xFF,
0xFF,0xFF,0xFF,0xFE,0xF8,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,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x3F,
0x37,0x37,0x37,0x27,0x63,0x43,0x03,0x03,
0x03,0x03,0x03,0x07,0x67,0x27,0x0F,0x0F,
0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x80,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,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,0x7F,0x7F,
0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0xE0,0xFC,0xFE,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xDF,0x0F,0x07,0x07,0x03,
0x03,0x03,0x03,0x02,0xC0,0xAC,0xBF,0xA0,
0x80,0x00,0x00,0x00,0x02,0x02,0x06,0x06,
0x04,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x3F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xBF,0x3F,0x3F,0x3D,
0x7D,0xF8,0xF0,0xF0,0xC0,0x00,0x00,0x00,
0x08,0x8C,0xFC,0xFE,0xEE,0xE6,0xC2,0xC0,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x1F,0x1F,0x87,0x0D,0x7D,0x70,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,
0xF0,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xE0,0x00,
0x00,0x00,0x02,0xE7,0xE7,0xE7,0xE7,0xC3,
0xC3,0xC1,0x82,0x87,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE3,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFC,0xF8,0xE0,0xC0,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xDF,0x1F,0x1F,0x1F,0x1B,0xF9,
0xF9,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,
0x00,0x01,0x01,0x03,0x03,0x83,0x83,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x00,
0xF8,0xFC,0xFC,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,
0xFE,0xFC,0xF8,0xFE,0x8F,0x8F,0x0E,0x06,
0x0E,0x0C,0x0C,0x00,0x01,0x00,0x00,0x80,
0xC0,0xF0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,
0xF8,0xF0,0xF0,0xE0,0x00,0x00,0x00,0x00,
0x00,0x03,0x07,0x0F,0x1F,0x1F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xDE,
0xD4,0xC2,0x82,0x80,0x80,0x83,0xC7,0xC7,
0x0F,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0xF4,0xFC,0xFC,0xFC,0xFC,0xF8,0xF8,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x7F,0x3F,0x1F,0x1F,0xDF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x1E,
0x1E,0x0E,0x0C,0x04,0x02,0x06,0x1F,0xFF,
0xFF,0xCF,0x0F,0x0F,0x0F,0x1F,0x3F,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x7F,0x1F,0x1F,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xC1,0xE7,
0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,
0xF3,0xF9,0x71,0x31,0x00,0x00,0x00,0x01,
0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x03,0x07,0x0F,0x1F,0x1F,0x3F,0x3F,0x1F,
0x1F,0x1F,0x0F,0x4F,0x67,0x27,0x33,0x31,
0x38,0x38,0x78,0x7C,0x7E,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x7F,0x7F,
0x7F,0x7F,0x7D,0x79,0x79,0x70,0x70,0x70,
0x70,0x70,0x70,0x78,0x78,0x3C,0x5E,0x6F,
0x3F,0x77,0x0F,0x0C,0x7C,0x78,0x78,0x40,
0x00,0x01,0x01,0x03,0x07,0x0F,0x1F,0x1F,
0x1F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,
0x00,0x00,0x00,0x40,0x60,0x70,0x70,0x78,
0x78,0x7C,0x7E,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7C,
0x7C,0x7C,0x78,0x78,0x70,0x58,0x00,0x00,
0x40,0x70,0x78,0x7C,0x7F,0x7F,0x7F,0x7F,
0x7F,0x7F,0x07,0x07,0x0F,0x1F,0x3F,0x7F
};

//ASCII字符
unsigned char code ASC_5x7[]={
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x4F, 0x00, 0x00, //
0x00, 0x07, 0x00, 0x07, 0x00, //
0x14, 0x7F, 0x14, 0x7F, 0x14, //
0x24, 0x2A, 0x7F, 0x2A, 0x12, //
0x23, 0x13, 0x08, 0x64, 0x62, //
0x36, 0x49, 0x55, 0x22, 0x50, //
0x00, 0x05, 0x03, 0x00, 0x00, //
0x00, 0x1C, 0x22, 0x41, 0x00, //
0x00, 0x41, 0x22, 0x1C, 0x00, //
0x14, 0x08, 0x3E, 0x08, 0x14, //
0x08, 0x08, 0x3E, 0x08, 0x08, //
0x00, 0x50, 0x30, 0x00, 0x00, //
0x08, 0x08, 0x08, 0x08, 0x00, //
0x00, 0x60, 0x60, 0x00, 0x00, //
0x20, 0x10, 0x08, 0x04, 0x02, //
0x3E, 0x51, 0x49, 0x45, 0x3E, //
0x00, 0x42, 0x7F, 0x40, 0x00, //
0x42, 0x61, 0x51, 0x49, 0x46, //
0x21, 0x41, 0x45, 0x4B, 0x31, //
0x18, 0x14, 0x12, 0x7F, 0x10, //
0x27, 0x45, 0x45, 0x45, 0x39, //
0x3C, 0x4A, 0x49, 0x49, 0x30, //
0x01, 0x01, 0x79, 0x05, 0x03, //
0x36, 0x49, 0x49, 0x49, 0x36, //
0x06, 0x49, 0x49, 0x29, 0x1E, //
0x00, 0x36, 0x36, 0x00, 0x00, //
0x00, 0x56, 0x36, 0x00, 0x00, //
0x08, 0x14, 0x22, 0x41, 0x00, //
0x14, 0x14, 0x14, 0x14, 0x14, //
0x00, 0x41, 0x22, 0x14, 0x08, //
0x02, 0x01, 0x51, 0x09, 0x06, //
0x32, 0x49, 0x79, 0x41, 0x3E, //
0x7E, 0x11, 0x11, 0x11, 0x7E, //
0x41, 0x7F, 0x49, 0x49, 0x36, //
0x3E, 0x41, 0x41, 0x41, 0x22, //
0x41, 0x7F, 0x41, 0x41, 0x3E, //
0x7F, 0x49, 0x49, 0x49, 0x49, //
0x7F, 0x09, 0x09, 0x09, 0x01, //
0x3E, 0x41, 0x41, 0x49, 0x7A, //
0x7F, 0x08, 0x08, 0x08, 0x7F, //
0x00, 0x41, 0x7F, 0x41, 0x00, //
0x20, 0x40, 0x41, 0x3F, 0x01, //
0x7F, 0x08, 0x14, 0x22, 0x41, //
0x7F, 0x40, 0x40, 0x40, 0x40, //
0x7F, 0x02, 0x0C, 0x02, 0x7F, //
0x7F, 0x06, 0x08, 0x30, 0x7F, //
0x3E, 0x41, 0x41, 0x41, 0x3E, //
0x7F, 0x09, 0x09, 0x09, 0x06, //
0x3E, 0x41, 0x51, 0x21, 0x5E, //
0x7F, 0x09, 0x19, 0x29, 0x46, //
0x26, 0x49, 0x49, 0x49, 0x32, //
0x01, 0x01, 0x7F, 0x01, 0x01, //
0x3F, 0x40, 0x40, 0x40, 0x3F, //
0x1F, 0x20, 0x40, 0x20, 0x1F, //
0x7F, 0x20, 0x18, 0x20, 0x7F, //
0x63, 0x14, 0x08, 0x14, 0x63, //
0x07, 0x08, 0x70, 0x08, 0x07, //
0x61, 0x51, 0x49, 0x45, 0x43, //
0x00, 0x7F, 0x41, 0x41, 0x00, //
0x02, 0x04, 0x08, 0x10, 0x20, //
0x00, 0x41, 0x41, 0x7F, 0x00, //
0x04, 0x02, 0x01, 0x02, 0x04, //
0x40, 0x40, 0x00, 0x40, 0x40, //
0x01, 0x02, 0x04, 0x00, 0x00, //
0x20, 0x54, 0x54, 0x54, 0x78, //
0x7F, 0x48, 0x44, 0x44, 0x38, //
0x38, 0x44, 0x44, 0x44, 0x28, //
0x38, 0x44, 0x44, 0x48, 0x7F, //
0x38, 0x54, 0x54, 0x54, 0x18, //
0x00, 0x08, 0x7E, 0x09, 0x02, //
0x0C, 0x52, 0x52, 0x4C, 0x3E, //
0x7F, 0x08, 0x04, 0x04, 0x78, //
0x00, 0x44, 0x7D, 0x40, 0x00, //
0x20, 0x40, 0x44, 0x3D, 0x00, //
0x00, 0x7F, 0x10, 0x28, 0x44, //
0x00, 0x41, 0x7F, 0x40, 0x00, //
0x7C, 0x04, 0x78, 0x04, 0x78, //
0x7C, 0x08, 0x04, 0x04, 0x78, //
0x38, 0x44, 0x44, 0x44, 0x38, //
0x7E, 0x0C, 0x12, 0x12, 0x0C, //
0x0C, 0x12, 0x12, 0x0C, 0x7E, //
0x7C, 0x08, 0x04, 0x04, 0x08, //
0x58, 0x54, 0x54, 0x54, 0x64, //
0x04, 0x3F, 0x44, 0x40, 0x20, //
0x3C, 0x40, 0x40, 0x3C, 0x40, //
0x1C, 0x20, 0x40, 0x20, 0x1C, //
0x3C, 0x40, 0x30, 0x40, 0x3C, //
0x44, 0x28, 0x10, 0x28, 0x44, //
0x1C, 0xA0, 0xA0, 0x90, 0x7C, //
0x44, 0x64, 0x54, 0x4C, 0x44, //
0x00, 0x08, 0x36, 0x41, 0x00, //
0x00, 0x00, 0x77, 0x00, 0x00, //
0x00, 0x41, 0x36, 0x08, 0x00, //
0x02, 0x01, 0x02, 0x04, 0x02, //
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, //
};

unsigned char code HZK_12[]={ //字节倒置

//- 宋体11; 此字体下对应的点阵为:宽x高=11×12
0x42,0x00,0x22,0x00,0x12,0x00,0xFA,0x07,0x4E,0x01,0x4B,0x01,0x4A,0x01,0x4A,0x05,
0xFA,0x07,0x02,0x00,0x02,0x00,0x00,0x00,/*”有”,{0}*/

0x42,0x04,0xAE,0x04,0x93,0x04,0x9A,0x02,0xA6,0x01,0xC0,0x00,0xA6,0x04,0x9A,0x04,
0x8A,0x04,0x96,0x03,0x20,0x00,0x00,0x00,/*”努”,{1}*/

0x00,0x04,0x08,0x04,0x08,0x02,0x08,0x01,0xC8,0x00,0x3F,0x00,0x08,0x04,0x08,0x04,
0x08,0x04,0xFC,0x03,0x08,0x00,0x00,0x00,/*”力”,{2}*/

0x02,0x02,0xFA,0x01,0x4B,0x04,0xCA,0x07,0x7A,0x01,0x02,0x04,0x08,0x03,0xFF,0x00,
0xC8,0x07,0x0E,0x04,0x08,0x07,0x00,0x00,/*”就”,{3}*/

0x42,0x00,0x22,0x00,0x12,0x00,0xFA,0x07,0x4E,0x01,0x4B,0x01,0x4A,0x01,0x4A,0x05,
0xFA,0x07,0x02,0x00,0x02,0x00,0x00,0x00,/*”有”,{4}*/

0x00,0x04,0xFC,0x03,0x24,0x01,0x24,0x02,0xE4,0x01,0x04,0x04,0x7F,0x02,0x84,0x01,
0x45,0x02,0x36,0x04,0x04,0x07,0x00,0x00,/*”成”,{5}*/

0x02,0x01,0x02,0x01,0xFE,0x00,0x82,0x04,0x82,0x04,0x08,0x02,0x88,0x01,0x7F,0x04,
0x08,0x04,0x08,0x04,0xF8,0x03,0x00,0x00,/*”功”,{6}*/

0x00,0x00,0x1C,0x00,0x7E,0x03,0x7E,0x03,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00/*”!”,{7}*/
};

本程序的实践效果图如下。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/272050.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部