📄 lcd12864.c
字号:
#include <at89x52.h>
#include "LCD12864.h"
uchar ReadByte_LCD(bit command)
{
uchar dat;
DataPort=0xff;
RS=command;
RW=1;
EN=1;
dat=DataPort;
EN=0;
return(dat);
}
void CheckBusy()
{
uchar i=100;
LCD_Busy=1;
RS=0;
RW=1;
EN=1;
while((i--)&&(LCD_Busy==1));
EN=0;
}
void WriteByte_LCD(uchar Data,bit command)
{
CheckBusy();
DataPort=Data;
RS=command;
RW=0;
EN=1;
EN=0;
}
void WriteString_LCD(uchar *Data)
{
while(*Data!='\0')
{
WriteByte_LCD(*Data,1);
Data++;
}
}
//行反白显示
void Highlight(uchar line,bit Switch)
{
uchar x,y,i,j,dat;
EA=0;
switch(line)
{
case 0:
x=0x80;y=0x80;break;
case 1:
x=0x80;y=0x90;break;
case 2:
x=0x88;y=0x80;break;
case 3:
x=0x88;y=0x90;break;
default:
break;
}
dat=(Switch==Highlight_On)?0xff:0x00;
for(i=0;i<16;i++)
{
for(j=0;j<8;j++)
{
WriteByte_LCD(0x34,0);
WriteByte_LCD(y+i,0);
WriteByte_LCD(x+j,0);
WriteByte_LCD(0x30,0);
WriteByte_LCD(dat,1);
WriteByte_LCD(dat,1);
}
}
WriteByte_LCD(0x36,0);
WriteByte_LCD(0x32,0);
EA=1;
}
void DisplayImage(uchar code *Pdata)
{
uchar i,j,k,l;
uchar x=0x80;
uchar y=0x80;
EA=0;
for(i=0;i<2;i++)
{
for(j=0;j<32;j++)
{
for(k=0;k<8;k++)
{
WriteByte_LCD(0x34,0);
WriteByte_LCD(y+j,0);
WriteByte_LCD(x+k,0);
WriteByte_LCD(0x30,0);
for(l=0;l<2;l++)
{
WriteByte_LCD((*Pdata),1);
Pdata++;
}
}
}
x=0x88;
}
WriteByte_LCD(0x36,0);
WriteByte_LCD(0x32,0);
EA=1;
}
void ClearImage()
{
uchar i,j,k;
uchar x=0x80;
uchar y=0x80;
EA=0;
for(i=0;i<2;i++)
{
for(j=0;j<32;j++)
{
for(k=0;k<8;k++)
{
WriteByte_LCD(0x34,0);
WriteByte_LCD(y+j,0);
WriteByte_LCD(x+k,0);
WriteByte_LCD(0x30,0);
WriteByte_LCD(0x00,1);
WriteByte_LCD(0x00,1);
}
}
x=0x88;
}
WriteByte_LCD(0x36,0);
WriteByte_LCD(0x32,0);
EA=1;
}
void SetLocation(uchar x,uchar y)
{
switch(x)
{
case 0:
x=0x80;break;
case 1:
x=0x90;break;
case 2:
x=0x88;break;
case 3:
x=0x98;break;
default:
x=0x80;break;
}
y=y&0x07;
WriteByte_LCD((x+y),0);
}
void LCD_Init()
{
Delay(100);
WriteByte_LCD(0x30,0);
Delay(1);
WriteByte_LCD(0x30,0);
Delay(1);
WriteByte_LCD(0x0c,0);
Delay(1);
WriteByte_LCD(0x01,0);
Delay(30);
WriteByte_LCD(0x06,0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -