📄 lcd_12864.h
字号:
//********************************** 延时子程序***************************
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
//*******************************写命令到LCD***************************
void write_cmd(uchar cmd)
{
DI=0; RW=0;
LCD_BUS=cmd;
E=1;
E=0;
}
//************************写数据到LCD******************************
void point(uchar x,uchar y)
{
uchar y1,y2,pp;
uchar datain;
pp=1;
y1=y>>3;
y2=y%8;
pp=pp<<y2;
if (x<64)
{
CS2=1;
CS1=0;
write_cmd(PAGE+y1);
write_cmd(COL+x);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x);
delay(10);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x);
datain=datain|pp;
write_data(datain);
}
else
{
CS2=0;
CS1=1;
write_cmd(PAGE+y1);
write_cmd(COL+x-64);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x-64);
delay(10);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x-64);
datain=datain|pp;
write_data(datain);
}
}
void pointb(uchar x,uchar y)
{
uchar y1,y2,pp;
uchar datain;
pp=1;
y1=y>>3;
y2=y%8;
pp=~(pp<<y2);
if (x<64)
{
CS2=1;
CS1=0;
write_cmd(PAGE+y1);
write_cmd(COL+x);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x);
delay(10);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x);
datain=datain&pp;
write_data(datain);
}
else
{
CS2=0;
CS1=1;
write_cmd(PAGE+y1);
write_cmd(COL+x-64);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x-64);
delay(10);
datain=read_data();
write_cmd(PAGE+y1);
write_cmd(COL+x-64);
datain=datain&pp;
write_data(datain);
}
}
void write_data(uchar dout)
{
DI=1; RW=0;
LCD_BUS=dout;
E=1;
E=0;
}
//***************************读LCD数据**********************************
uchar read_data()
{
uchar din;
LCD_BUS=0xff;
DI=1; RW=1;
E=0;
E=0;
E=1;
E=1;
E=1;
din=LCD_BUS;
return din;
}
//****************************清除内存******************************************
void cls()
{
uchar j,k;
CS2=1;CS1=0;
for(k=0;k<8;k++)
{
write_cmd(PAGE+k);
write_cmd(COL); //列地址0
for(j=0;j<64;j++) //列地址自动加一
write_data(0x00);
}
CS2=0;CS1=1;
for(k=0;k<8;k++)
{
write_cmd(PAGE+k);
write_cmd(COL); //列地址0
for(j=0;j<64;j++) //列地址自动加一
write_data(0x00);
}
}
void display(uchar page,uchar col,uchar code *str,uchar n)
{
uchar j=0,i=0;
if(col<64)
{
CS2=1;CS1=0;
}
else
{
CS2=0;CS1=1;
col=col-64;
}
for(j=0;j<2;j++)
{
write_cmd(PAGE+page+j); write_cmd(COL+col);
for (i=0;i<16;i++)
write_data(str[n*32+16*j+i]);
}
}
/*
//*******************************指定位置显示汉字16*16****************************
void disp_str(uchar page,uchar col,uchar code *str,uchar n)
{
uchar j=0,i=0;
for(j=0;j<2;j++)
{
write_cmd(PAGE+page+j); write_cmd(COL+col);
for (i=0;i<16;i++)
write_data(str[n*32+16*j+i]);
}
}
//**********************************反显程序**************************************
void cpl_disp_str(uchar page,uchar col,uchar code *str,uchar n)
{
uchar j=0,i=0;
for(j=0;j<2;j++)
{
write_cmd(PAGE+page+j); write_cmd(COL+col);
for (i=0;i<16;i++)
write_data(~str[n*32+16*j+i]);
}
}
//*******************************显示ASCII码程序**********************************
void disp_ascII(uchar page,uchar col,uchar code *english,uchar n)
{
uchar j,i;
for(j=0;j<2;j++)
{
write_cmd(PAGE+page+j);write_cmd(COL+col);
for(i=0;i<8;i++)
write_data(english[n*16+8*j+i]);
}
}
*/
//**************************************************************************
void displaye(uchar page,uchar col,uchar code *english,uchar n)
{
uchar j,i;
if(col<64)
{
CS2=1;CS1=0;
}
else
{
CS2=0;CS1=1;
col=col-64;
}
for(j=0;j<2;j++)
{
write_cmd(PAGE+page+j);write_cmd(COL+col);
for(i=0;i<8;i++)
write_data(english[n*16+8*j+i]);
}
}
/*
void cpl_disp_ascII(uchar page,uchar col,uchar code *english,uchar n)
{
uchar j,i;
for(j=0;j<2;j++)
{
write_cmd(PAGE+page+j);write_cmd(COL+col);
for(i=0;i<8;i++)
write_data(~english[n*16+8*j+i]);
}
}
*/
//***************************初始化LCD屏*************************************
void init()
{
delay(100);
CS2=1; CS1=0;
delay(100);
write_cmd(DISP_OFF);
write_cmd(PAGE);
write_cmd(START_LINE);
write_cmd(COL);
write_cmd(DISP_ON);
CS2=0; CS1=1;
delay(100);
write_cmd(DISP_OFF);
write_cmd(PAGE);
write_cmd(START_LINE);
write_cmd(COL);
write_cmd(DISP_ON);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -