LCD lgm12864程序代码Word文档格式.docx
《LCD lgm12864程序代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《LCD lgm12864程序代码Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
0x00,0x30,0x38,0x88,0x88,0xC8,0x78,0x30,0x00,0x18,0x38,0x20,0x20,0x31,0x1F,0x0E,
/*4CHAR_34*/
0x00,0x00,0xC0,0xE0,0x30,0xF8,0xF8,0x00,0x00,0x07,0x07,0x24,0x24,0x3F,0x3F,0x24,
/*5CHAR_35*/
0x00,0xF8,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x19,0x39,0x21,0x20,0x31,0x1F,0x0E,
/*6CHAR_36*/
0x00,0xE0,0xF0,0x98,0x88,0x98,0x18,0x00,0x00,0x0F,0x1F,0x31,0x20,0x31,0x1F,0x0E,
/*7CHAR_37*/
0x00,0x38,0x38,0x08,0xC8,0xF8,0x38,0x08,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,
/*8CHAR_38*/
0x00,0x70,0xF8,0x88,0x08,0x88,0xF8,0x70,0x00,0x1C,0x3E,0x23,0x21,0x23,0x3E,0x1C,
/*9CHAR_39*/
0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x00,0x31,0x33,0x22,0x33,0x1F,0x0F
};
unsignedcharcodehzdot[416]={
/*盐CD1CE*/
0x80,0x88,0x88,0x88,0xFF,0x48,0x48,0x48,0x00,0xFF,0x00,0x08,0x30,0x60,0x00,0x00,
0x40,0x41,0x40,0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x42,0x42,0x7E,0x40,0x40,0x00,
/*城CB3C7*/
0x10,0x10,0xFF,0x10,0x10,0xF8,0x48,0x48,0xC8,0x08,0xFF,0x08,0x0A,0xEC,0x48,0x00,
0x04,0x0C,0x07,0x42,0x32,0x0F,0x08,0x58,0x4F,0x20,0x13,0x0C,0x33,0x40,0x38,0x00,
/*工CB9A4*/
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
/*学CD1A7*/
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
/*院CD4BA*/
0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,
0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00,
unsignedcharcodehzdottime[]={
/*年CC4EA*/
0x00,0x20,0x10,0xCC,0x47,0x44,0x44,0xFC,0x44,0x44,0x44,0x64,0x46,0x04,0x00,0x00,
0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,
/*月CD4C2*/
0x00,0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0xFF,0x02,0x00,0x00,0x00,
0x00,0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00,0x00,
/*日CC8D5*/
0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFF,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,0x00,0x00,
/*时CCAB1*/
0x00,0xFC,0x84,0x84,0x84,0xFE,0x14,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00,
/*分CB7D6*/
0x00,0x80,0x40,0x20,0x98,0x86,0x80,0x80,0x83,0x8C,0x90,0x20,0xC0,0x80,0x80,0x00,
0x01,0x00,0x80,0x40,0x20,0x1F,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x01,0x00,0x00,
/*秒CC3EB*/
0x20,0x24,0x24,0xA4,0xFE,0xA3,0x22,0x80,0x70,0x00,0xFF,0x00,0x10,0x20,0x60,0x00,
0x10,0x08,0x06,0x01,0xFF,0x00,0x81,0x80,0x40,0x20,0x17,0x08,0x04,0x03,0x00,0x00,
/*周CD6DC*/
0x00,0x00,0xFE,0x82,0x92,0x92,0x92,0xFE,0x92,0x9A,0xD2,0x82,0xFF,0x02,0x00,0x00,
0x40,0x20,0x1F,0x00,0x00,0x7E,0x22,0x22,0x22,0x3F,0x42,0x80,0x7F,0x00,0x00,0x00,
/*一CD2BB*/
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*二CB6FE*/
0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0C,0x08,0x00,0x00,0x00,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00,
/*三CC8FD*/
0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0xC4,0x86,0x04,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
/*四CCBC4*/
0x00,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00,
0x00,0x7F,0x20,0x28,0x24,0x23,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,
/*五CCEE5*/
0x00,0x04,0x84,0x84,0x84,0x84,0xFC,0x84,0x84,0x84,0x84,0xC4,0x86,0x84,0x00,0x00,
0x40,0x40,0x40,0x40,0x78,0x47,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x60,0x40,0x00,
/*六CC1F9*/
0x20,0x20,0x20,0x20,0x20,0x22,0x2C,0x38,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
0x00,0x40,0x20,0x18,0x06,0x03,0x00,0x00,0x00,0x01,0x02,0x0C,0x38,0x70,0x00,0x00,
/*星CD0C7*/
0x00,0x00,0xBE,0x2A,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x2A,0xBF,0x02,0x00,0x00,
0x48,0x44,0x4B,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4D,0x49,0x61,0x40,0x00,
/*期CC6DA*/
0x00,0x08,0xFF,0xA8,0xA8,0xA8,0xFF,0x08,0x00,0xFE,0x22,0x22,0x22,0xFF,0x02,0x00,
0x84,0x44,0x37,0x04,0x04,0x14,0xA7,0x44,0x24,0x1F,0x02,0x42,0x82,0x7F,0x00,0x00
voidDelay(void)
{_nop_();
_nop_();
}
/*写一个字节数据或命令*/
voidout_byte(ucharbyte,bitRW0,bitRS0)
{Delay();
Delay();
//Delay();
RW=RW0;
RS=RS0;
Delay();
DataPort=byte;
E=1;
//LCD使能
E=0;
//设定行地址(页)--X0-7
voidSetLine(ucharline)
{line=line&
0x07;
//0<
=line<
=7
line=line|0xb8;
//10111xxx
out_byte(line,0,0);
//写行地址命令
//设定列地址--Y0-63
voidSetColumn(ucharcolumn)
{
column=column&
0x3f;
//0=<
column<
=63
column=column|0x40;
//01xxxxxx
out_byte(column,0,0);
//写列地址命令
//设定显示开始行--XX
voidSetStartLine(ucharstartline)//0--63
startline=startline&
0x3f;
startline=startline|0xc0;
//11000000
out_byte(startline,0,0);
//选择屏幕
//screen:
0-全屏,1-左屏,2-右屏
voidSelectScreen(ucharscreen)
{
switch(screen)
{case0:
CS1=1;
//全屏
CS2=1;
break;
case1:
//左屏
CS2=0;
case2:
CS1=0;
//右屏
}
//清屏
voidClearScreen(ucharscreen)
{uchari,j;
SelectScreen(screen);
for(i=0;
i<
8;
i++)
{SetLine(i);
for(j=0;
j<
64;
j++)
{
out_byte(0x00,0,1);
//写数据0x00清屏
voidClearScreen123(void)
{uchari;
ClearScreen
(1);
for(i=0;
20;
i++);
//清屏
ClearScreen
(2);
//显示8*8点阵
//旋转90度:
字模被竖着切分
//lin:
行(0-7),column:
列(0-7)
//address:
字模区首地址
voidShow88(ucharlin,ucharcolumn,uchar*str)
uchari;
SetLine(lin);
SetColumn(column<
<
3);
//每隔八点为一列,共0-7列
i++)out_byte(*(str+i),0,1);
//显示8*16字符
屏幕选择
行(0-3),column:
voidShowChar(ucharscreen,ucharlin,ucharcolumn,uchar*ch)
{lin=lin<
1;
Show88(lin,column,ch);
Show88(lin+1,column,ch+8);
//显示一个汉字
//hzcode:
汉字代码(自定义的)
voidShowHZ(ucharscreen,ucharlin,ucharcolumn,ucharhzcode[])
//lin*2
Show88(lin,column,hzcode);
Show88(lin,column+1,hzcode+8);
Show88(lin+1,column,hzcode+16);
Show88(lin+1,column+1,hzcode+24);
//连续显示汉字-lin:
//N:
一行连续显示汉字个数
voidShowHZL(ucharscreen,ucharlin,ucharcolumn,ucharN,ucharhz[])
ucharidatan0,n1,n2,col;
col=column<
3;
n0=(64-col)/16;
//一屏可显示汉字个数(<
=4)
if(N<
=n0)
{for(i=0;
N;
{ShowHZ(screen,lin,column,hz+i*32);
//hz+i*32表示连续的汉字
column=column+2;
elseif(N>
n0)//超出一屏可显示汉字个数(<
n0;
i++)//当前屏显示n0个字
n1=N-n0;
//剩余字数
if(++screen>
2)return;
//在下一屏显示剩余字数,如屏幕超出则返回
col=0;
//在下一屏0列开始显示剩余字数
if(n1<
n1;
i++)
{ShowHZ(screen,lin,col,(hz+n0*32)+i*32);
col=col+2;
}
elseif(n1>
4)//超出一屏可显示汉字个数(<
4;
n2=n1-4;
if(++screen>
for(i=0;
n2;
{ShowHZ(screen,lin,col,(hz+n0*32+128)+i*32);
}
//连续显示数字或字母
一行连续显示字符个数
voidShowCharL(ucharscreen,ucharlin,ucharcolumn,ucharN,ucharch[])
n0=(64-col)/8;
//一屏可显示字符个数(<
=8)
{ShowChar(screen,lin,column,ch+i*16);
column=column+1;
n0)
{ShowChar(screen,lin,col,(ch+n0*16)+i*16);
col=col+1;
8)
n2=n1-8;
{ShowChar(screen,lin,col,(ch+n0*16+128)+i*16);
//读显示数据
ucharReadByte()
uchardat;
//CheckState();
RS=1;
RW=1;
DataPort=0xff;
dat=DataPort;
//for(i=0;
10;
return(dat);
//反显一个8*8字块
voidReverseShow88(ucharlin,ucharcolumn)
uchartab[8];
//读上部8列,每个方块8*8大小
tab[0]=ReadByte();
//空读!
!
//?
i++)tab[i]=~ReadByte();
//写回
i++)out_byte(tab[i],0,1);
//反显一个字符8*16
voidReverseShowChar(ucharscreen,ucharlin,ucharcolumn)
ReverseShow88(lin,column);
ReverseShow88(lin+1,column);
//反显一个汉字16×
16
voidReverseShowHZ(ucharscreen,ucharlin,ucharcolumn)
lin=lin<
ReverseShow88(lin,column);
ReverseShow88(lin,column+1);
ReverseShow88(lin+1,column);
ReverseShow88(lin+1,column+1);
//连续反白显示汉字
voidReverseShowHZL(ucharscreen