📄 lcm240128.c
字号:
0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3C,0x66,0x66,0x66,0x66, /*-- Q --*/
0x66,0x66,0x66,0x3C,0x0C,0x06,0x00,0x00,
0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x7C, /*-- R --*/
0x6C,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3C,0x66,0x60,0x30,0x18, /*-- S --*/
0x0C,0x06,0x66,0x3C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7E,0x18,0x18,0x18,0x18, /*-- T --*/
0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66, /*-- U --*/
0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66, /*-- V --*/
0x66,0x66,0x3C,0x18,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x63,0x63,0x63,0x6B,0x6B, /*-- W --*/
0x6B,0x36,0x36,0x36,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x66,0x66,0x34,0x18,0x18, /*-- X --*/
0x2C,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x3C, /*-- Y --*/
0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7E,0x06,0x06,0x0C,0x18, /*-- Z --*/
0x30,0x60,0x60,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3C,0x30,0x30,0x30,0x30, /*-- [ --*/
0x30,0x30,0x30,0x30,0x30,0x30,0x3C,0x3C,
0x00,0x00,0x00,0x60,0x60,0x30,0x30,0x18, /*-- \ --*/
0x18,0x0C,0x0C,0x06,0x06,0x00,0x00,0x00,
0x00,0x00,0x00,0x3C,0x0C,0x0C,0x0C,0x0C, /*-- ] --*/
0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x3C,
0x00,0x18,0x3C,0x66,0x00,0x00,0x00,0x00, /*-- ^ --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- _ --*/
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x38,0x18,0x0C,0x00,0x00,0x00,0x00, /*-- ` --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x06, /*-- a --*/
0x3E,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0x60,0x7C,0x66,0x66, /*-- b --*/
0x66,0x66,0x66,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x60, /*-- c --*/
0x60,0x60,0x66,0x3C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x06,0x06,0x3E,0x66,0x66, /*-- d --*/
0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x66, /*-- e --*/
0x7E,0x60,0x60,0x3C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1E,0x30,0x30,0x30,0x7E, /*-- f --*/
0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66, /*-- g --*/
0x66,0x66,0x66,0x3E,0x06,0x06,0x7C,0x7C,
0x00,0x00,0x00,0x60,0x60,0x7C,0x66,0x66, /*-- h --*/
0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x18,0x00,0x78,0x18,0x18, /*-- i --*/
0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x0C,0x0C,0x00,0x3C,0x0C,0x0C, /*-- j --*/
0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x78,0x78,
0x00,0x00,0x00,0x60,0x60,0x66,0x66,0x6C, /*-- k --*/
0x78,0x6C,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x78,0x18,0x18,0x18,0x18, /*-- l --*/
0x18,0x18,0x18,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7E,0x6B,0x6B, /*-- m --*/
0x6B,0x6B,0x6B,0x63,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7C,0x66,0x66, /*-- n --*/
0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x66, /*-- o --*/
0x66,0x66,0x66,0x3C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7C,0x66,0x66, /*-- p --*/
0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0x60,
0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66, /*-- q --*/
0x66,0x66,0x66,0x3E,0x06,0x06,0x06,0x06,
0x00,0x00,0x00,0x00,0x00,0x66,0x6E,0x70, /*-- r --*/
0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3E,0x60,0x60, /*-- s --*/
0x3C,0x06,0x06,0x7C,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0x30,0x7E,0x30,0x30, /*-- t --*/
0x30,0x30,0x30,0x1E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66, /*-- u --*/
0x66,0x66,0x66,0x3E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66, /*-- v --*/
0x66,0x66,0x3C,0x18,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x63,0x6B,0x6B, /*-- w --*/
0x6B,0x6B,0x36,0x36,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x3C, /*-- x --*/
0x18,0x3C,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66, /*-- y --*/
0x66,0x66,0x66,0x3C,0x0C,0x18,0xF0,0xF0,
0x00,0x00,0x00,0x00,0x00,0x7E,0x06,0x0C, /*-- z --*/
0x18,0x30,0x60,0x7E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0C,0x18,0x18,0x18,0x30, /*-- { --*/
0x60,0x30,0x18,0x18,0x18,0x0C,0x00,0x00,
0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18, /*-- | --*/
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x00,0x00,0x00,0x30,0x18,0x18,0x18,0x0C, /*-- } --*/
0x06,0x0C,0x18,0x18,0x18,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x71,0xDB, /*-- ~ --*/
0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- . --*/
0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,
};
typedef struct // 汉字字模数据结构
{
char Index[2];
char Msk[32];
}typFNT_GB16;
typFNT_GB16 code GB_16[] =
{ // 显示为16*16
/*-- 文字: 上 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"上",
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF8,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x00,0x00,
/*-- 文字: 海 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"海",
0x21,0x00,0x11,0x00,0x11,0xFE,0x02,0x00,0x97,0xF8,0x52,0x88,0x52,0x48,0x12,0x08,
0x2F,0xFE,0x22,0x88,0xE2,0x48,0x22,0x08,0x23,0xFE,0x20,0x08,0x20,0x28,0x20,0x10,
/*-- 文字: 创 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"创",
0x08,0x02,0x08,0x02,0x14,0x12,0x13,0x12,0x21,0xD2,0x40,0x92,0xBF,0x12,0x21,0x12,
0x21,0x12,0x25,0x12,0x22,0x12,0x20,0x82,0x20,0x82,0x20,0x8A,0x1F,0x84,0x00,0x00,
/*-- 文字: 远 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"远",
0x00,0x00,0x47,0xF8,0x30,0x00,0x20,0x00,0x00,0x00,0x0F,0xFE,0xF1,0x20,0x11,0x20,
0x11,0x20,0x11,0x22,0x12,0x22,0x14,0x1E,0x10,0x00,0x28,0x00,0x47,0xFE,0x00,0x00,
"电",
/*-- 文字: 电 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,
0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00,
/*-- 文字: 子 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"子",
0x00,0x00,0x3F,0xF0,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x04,
0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
/*-- 文字: 有 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"有",
0x01,0x00,0x01,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x0F,0xF0,0x18,0x10,0x28,0x10,
0x4F,0xF0,0x88,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x90,0x08,0x70,0x08,0x20,
/*-- 文字: 限 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"限",
0x00,0x00,0xFB,0xF8,0x92,0x08,0x93,0xF8,0xA2,0x08,0xA2,0x08,0x93,0xF8,0x8A,0x80,
0x8A,0x48,0xAA,0x50,0x92,0x20,0x82,0x20,0x82,0x10,0x82,0x8E,0x83,0x04,0x82,0x00,
/*-- 文字: 公 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"公",
0x00,0x00,0x04,0x40,0x06,0x40,0x04,0x40,0x08,0x20,0x08,0x10,0x10,0x18,0x22,0x0E,
0x43,0x04,0x02,0x00,0x04,0x20,0x08,0x10,0x11,0xF8,0x3F,0x18,0x10,0x10,0x00,0x00,
/*-- 文字: 司 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
"司",
0x00,0x00,0x3F,0xFC,0x00,0x04,0x00,0x04,0x7F,0xE4,0x00,0x04,0x00,0x04,0x3F,0xC4,
0x20,0x44,0x20,0x44,0x3F,0xC4,0x20,0x44,0x20,0x04,0x00,0x14,0x00,0x08,0x00,0x00,
};
uchar code turnf[8] = {7,6,5,4,3,2,1,0};
uchar gCurRow,gCurCol; // 当前行、列存储,行高16点,列宽8点
/* 取当前行数据 */
uchar fnGetRow(void)
{
return gCurRow;
}
/* 取当前列数据 */
uchar fnGetCol(void)
{
return gCurCol;
}
/************************************************/
/* 状态位STA1,STA0判断(读写指令和读写数据) */
/* 在读写数据或者写入命令前必须保证均为1 */
/************************************************/
uchar fnSTA01(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((LCMCW & 0x03) == 0x03) // 读取状态
break;
}
return i; // 若返回零,说明错误
}
/********************************************************/
/*检查STA2,如果 STA2=1 为自动读状态 */
/********************************************************/
uchar fnSTA2(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((LCMCW & 0x04) == 0x04)
break;
}
return i; // 若返回零,说明错误
}
/********************************************************/
/* 状态位STA3判断(STA3 = 1 数据自动写状态) */
/********************************************************/
uchar fnSTA3(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((LCMCW & 0x08) == 0x08)
break;
}
return i; // 若返回零,说明错误
}
/********************************************************/
/* 状态位STA6判断(STA6 =1 屏读/屏拷贝状态) */
/********************************************************/
uchar fnSTA6(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((LCMCW & 0x40) == 0x40)
break;
}
return i; // 若返回零,说明错误
}
/********************************************************/
/* 写双参数的指令 */
/********************************************************/
uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2)
{
if(fnSTA01() == 0)
return 1;
LCMDW = uPar1;
if(fnSTA01() == 0)
return 2;
LCMDW = uPar2;
if(fnSTA01() == 0)
return 3;
LCMCW = uCmd;
return 0; // 返回0成功
}
/********************************************************/
/* 写单参数的指令 */
/********************************************************/
uchar fnPR11(uchar uCmd,uchar uPar1)
{
if(fnSTA01() == 0)
return 1;
LCMDW = uPar1;
if(fnSTA01() == 0)
return 2;
LCMCW = uCmd;
return 0; // 返回0成功
}
/********************************************************/
/* 写无参数的指令 */
/********************************************************/
uchar fnPR12(uchar uCmd)
{
if(fnSTA01() == 0)
return 1;
LCMCW = uCmd;
return 0; // 返回0成功
}
/********************************************************/
/* 写数据 */
/********************************************************/
uchar fnPR13(uchar uData)
{
if(fnSTA3() == 0)
return 1;
LCMDW = uData;
return 0; // 返回0成功
}
/********************************************************/
/* 读数据 */
/********************************************************/
uchar fnPR2(void)
{
if(fnSTA01() == 0)return 1; // 获取状态,如果状态错
return LCMDW; // 返回数据
}
/********************************************************/
/* 设置当前地址 */
/********************************************************/
void fnSetPos(uchar urow, uchar ucol)
{
uint iPos;
iPos = urow * 30 + ucol+(Addr_High);
fnPR1(LC_ADD_POS,iPos & 0xFF,iPos / 256);
gCurRow = urow;
gCurCol = ucol;
}
/********************************************************/
/* 设置当前显示行、列 */
/********************************************************/
void cursor(uchar uRow, uchar uCol)
{
fnSetPos(uRow * 16, uCol);
}
/********************************************************/
/* 清屏 */
/********************************************************/
void cls(void)
{
uint i;
fnPR1(LC_ADD_POS,0x00,0x00); // 置地址指针为从零开始
fnPR12(LC_AUT_WR); // 自动写
for(i=0;i<240*128/8+(Addr_High);i++) // 清一屏
{
fnSTA3();
fnPR13(0x00); // 写数据,实际使用时请将0x55改成0x0
}
fnPR12(LC_AUT_OVR); // 自动写结束
fnPR1(LC_ADD_POS,0x00,0x00); // 重置地址指针
gCurRow = 0; // 置地址指针存储变量
gCurCol = 0;
}
/********************************************************/
/* dispaly logo */
/********************************************************/
void dispalylogo(void)
{
uchar i,m;
uchar j,uRow,uCol;
uchar arow,acol;
arow=120;
acol=160/8;
fnPR1(LC_ADD_POS,0x00,Addr_High>>8); // 置地址指针为从零开始
uRow=2;
uCol=2;
j=0;
fnSetPos(uRow,uCol);
for(j=0;j<arow;j++)
{
fnPR12(LC_AUT_WR); // 自动写.
for(i=0;i<acol;i++)
{
fnSTA3();
m=LOGO[j*acol+i];
fnPR13(m);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -