📄 display.c
字号:
#include <head.h> // SFR declarations
void delay(unsigned int num)
{
while(num--)
{
;
}
}
void lw(unsigned char x,unsigned char y,unsigned char dd)
{
if (x<61)
{ e1=e2=1;
di=rw=0;P1=0xb8|y;e1=1;delay(VA);e1=0;delay(VA);
e1=e2=1;
di=rw=0;P1=0x00|x;e1=1;delay(VA);e1=0;delay(VA);
e1=e2=1;
di=1;rw=0;P1=dd;e1=1;delay(VA);e1=0;delay(VA);
e1=e2=1;
}
else
{
x=x-61;e1=e2=1;
di=rw=0;P1=0xb8|y;e2=1;delay(VA);e2=0;delay(VA);
e1=e2=1;
di=rw=0;P1=0x00|x;e2=1;delay(VA);e2=0;delay(VA);
e1=e2=1;
di=1;rw=0;P1=dd;e2=1;delay(VA);e2=0;delay(VA);
e1=e2=1;
}
P1=0xff;
}
void clear_screen(unsigned char Row)
{
unsigned char x,y;
for (y=0;y<Row;y++)
{
for (x=0;x<122;x++)
lw(x,y,0x00);
}
}
void ClearModTime(void)
{
unsigned char x;
for (x=0x36;x<122;x++)
lw(x,2,0x00);
}
void write_chinese(UCHAR x,UCHAR y,UCHAR width,UCHAR code*array)
{
unsigned char j,dd;
switch(width)
{
case 0x02:
for(j=0;j<width*2;j++)
{
dd=array[j];
lw(x+j,y,dd);
}
break;
case 0x04:
for(j=0;j<width*2;j++)
{
dd=array[j];
if(j<width) lw(x+j,y,dd);
else lw(x+j-width,y+1,dd);
}
break;
case 0x08:
for(j=0;j<width*2;j++)
{
dd=array[j];
if(j<width) lw(x+j,y,dd);
else lw(x+j-width,y+1,dd);
}
break;
case 0x0e:
for(j=0;j<width*2;j++)
{
dd=array[j];
if(j<width) lw(x+j,y,dd);
else lw(x+j-width,y+1,dd);
}
break;
default:
for(j=0;j<0x20;j++)
{
dd=array[j];
if(j<0x10) lw(x+j,y,dd);
else lw(x+j-0x10,y+1,dd);
}
break;
}
}
unsigned char code *number(unsigned char t)
{
unsigned char code*string;
switch(t)
{
case 0: string=num0;break;
case 1: string=num1;break;
case 2: string=num2;break;
case 3: string=num3;break;
case 4: string=num4;break;
case 5: string=num5;break;
case 6: string=num6;break;
case 7: string=num7;break;
case 8: string=num8;break;
case 9: string=num9;break;
default: string=num0;break;
}
return(string);
}
unsigned char code*SNumber(unsigned char t)
{
unsigned char *string;
switch(t)
{
case 0: string=snum0;break;
case 1: string=snum1;break;
case 2: string=snum2;break;
case 3: string=snum3;break;
case 4: string=snum4;break;
case 5: string=snum5;break;
case 6: string=snum6;break;
case 7: string=snum7;break;
case 8: string=snum8;break;
case 9: string=snum9;break;
default: string=snum0;break;
}
return(string);
}
void send_command(unsigned char cmd)
{
e1=e2=1;
delay(VA);
e1=e2=0;
di=rw=0;
P1=cmd;
e1=e2=1;
delay(VA);
e1=e2=0;
delay(VA);
P1=0xff;
e1=e2=1;
}
unsigned char read(void)
{
unsigned char status;
e1=e2=1;
delay(VA);
e1=e2=0;
di=0;rw=1;
delay(VA);
e1=e2=1;
delay(VA);
e1=e2=0;
status=P1;
delay(VA);
e1=e2=1;
return(status);
}
void lcd_init(void)
{
UCHAR x;
rst = 1;
delay(VA);
rst = 0;
delay(VA);
x=read();
rst = 1;
x=read();
// delay(50000);
send_command(0xae);
send_command(0xc0);
send_command(0xa4);
send_command(0x00);
send_command(0xbb);
send_command(0xa9);
send_command(0xa0);
send_command(0xee);
send_command(0xaf);
delay(60000);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -