📄 lcd.h
字号:
/////////////////////////////////////////////////////////////////
//函数
//write_english(x,y,array) x指点数据显示所在列(0~115),
// y指定数据显示所在行(1,2,3,4),array为8字节数组指针
//write_chinese(x,y,array) x指定数据显示所在列(0~107),
// y指定数据显示所在行(1,2),array为32字节数组指针
//lcd_init() 初始化
#define TIME 1 //设置延时时间
sbit di=P1^4; //数据指令
sbit e1=P1^7;
sbit e2=P1^6;
sbit rw=P1^5; //读写
/////////////////////////////////////////////////////////////////
void delay(int num)
{
while(num--) ;
}
void send_command(unsigned char cmd)
{
e1=0;
e2=0;
di=rw=0;
P4=cmd;
e1=1;
e2=1;
delay(TIME);
e1=0;
e2=0;
delay(TIME);
P4=0xff;
e1=1;
e2=1;
}
void lw(unsigned char x,unsigned char y,unsigned char dd)
{
if (x<61)
{ e1=1;
di=rw=0;P4=0x00|x;e1=1;delay(TIME);e1=0;delay(TIME);
e1=1;
di=rw=0;P4=0xb8|y;e1=1;delay(TIME);e1=0;delay(TIME);
e1=1;
di=1;rw=0;P4=dd;e1=1;delay(TIME);e1=0;delay(TIME);
e1=1;
}
else
{
x=x-61;
e2=1;
di=rw=0;P4=0x00|x;e2=1;delay(TIME);e2=0;delay(TIME);
e2=1;
di=rw=0;P4=0xb8|y;e2=1;delay(TIME);e2=0;delay(TIME);
e2=1;
di=1;rw=0;P4=dd;e2=1;delay(TIME);e2=0;delay(TIME);
e2=1;
}
P4=0xff;
}
void lcd_init(void)
{
unsigned char x,y;
e1=0;
e2=0;
di=0;
rw=0;
send_command(0xae);
send_command(0xc0);
send_command(0xa4);
send_command(0x00);
send_command(0xbb);
send_command(0xa9);
send_command(0xa0);
send_command(0xee);
for (y=0;y<4;y++)
{
for (x=0;x<122;x++) lw(x,y,0);
}
send_command(0xaf);
}
void write_chinese(x,y,array)
unsigned char x,y;
unsigned char array[];
{
unsigned char j,dd;
if(y==2) y=0;
if(y==1) y=2;
for(j=0;j<32;j++)
{
dd=array[j];
if(j<16) lw(x+j,y,dd);
else lw(x+j-16,y+1,dd);
}
}
void write_english(x,y,array)
unsigned char x,y;
unsigned char array[];
{
unsigned char j,dd;
switch(y)
{
case 1:
y=2;break;
case 2:
y=3;break;
case 3:
y=0;break;
case 4:
y=1;break;
default:
break;
}
for(j=0;j<8;j++)
{
dd=array[j];
lw(x+j,y,dd);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -