📄 lcd.c
字号:
#include<reg51.h>
sbit cs1=P3^0;
sbit cs2=P3^1;
sbit rst=P3^2;
sbit rw=P3^3;
sbit di=P3^4;
sbit e=P3^5;
unsigned char x,y,kkk;
unsigned char *p[];
void lw(unsigned char ,unsigned char ,unsigned char );
unsigned char code xie[32]={
0x40,0x42,0xCC,0x04,0x00,0xFC,0x56,0x55,0xFC,0x50,0x90,0x10,0xFF,0x10,0x10,0x00,
0x00,0x00,0x3F,0x50,0x29,0x11,0x4D,0x83,0x7F,0x00,0x41,0x80,0x7F,0x00,0x00,0x00};
unsigned char code nin[32]={
0x80,0x40,0x30,0xFC,0x03,0x90,0x68,0x06,0x04,0xF4,0x04,0x24,0x44,0x8C,0x04,0x00,
0x00,0x20,0x38,0x03,0x38,0x40,0x40,0x49,0x52,0x41,0x40,0x70,0x00,0x09,0x30,0x00};
unsigned char code hao[32]={
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,0x82,0x82,0xF2,0x8A,0x86,0x82,0x80,0x00,
0x80,0x43,0x22,0x14,0x0C,0x73,0x20,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};
unsigned char code gantanhao[16]={
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00};
unsigned char code pin[32]={
0x20,0x3C,0x20,0x20,0xBF,0x24,0x24,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00,
0x44,0x43,0x20,0x10,0x0B,0x04,0x43,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00};
unsigned char code lv[32]={
0x00,0x0C,0x14,0xA4,0x04,0x64,0x35,0xAE,0x64,0x24,0x14,0xA4,0x14,0x04,0x04,0x00,
0x08,0x0A,0x09,0x08,0x08,0x0A,0x0B,0xFE,0x0A,0x0B,0x0C,0x08,0x09,0x0A,0x08,0x00};
unsigned char code dian[32]={
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00};
unsigned char code ya[32]={
0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00};
unsigned char code liu[32]={
0x10,0x60,0x01,0x86,0x60,0x04,0x44,0x64,0x55,0x4E,0x44,0x64,0xC4,0x04,0x04,0x00,
0x04,0x04,0xFC,0x03,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x3F,0x40,0x40,0x70,0x00};
unsigned char code rong[32]={
0x10,0x0C,0x44,0x24,0x34,0x9C,0x45,0x36,0x44,0x8C,0x14,0x74,0x24,0x0C,0x04,0x00,
0x04,0x04,0x02,0x02,0xFD,0x44,0x44,0x44,0x44,0x44,0xFD,0x01,0x02,0x06,0x02,0x00};
unsigned char code H[16]={
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20};
unsigned char code z[16]={
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00};
unsigned char code V[16]={
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00};
unsigned char code F[16]={
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00};
unsigned char code A[16]={
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};
unsigned char code u[16]={
0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20};
unsigned char code m[16]={
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F};
unsigned char code num0[16]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
unsigned char code num1[16]={
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
unsigned char code num2[16]={
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
unsigned char code num3[16]={
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
unsigned char code num4[16]={
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
unsigned char code num5[16]={
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
unsigned char code num6[16]={
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
unsigned char code num7[16]={
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
unsigned char code num8[16]={
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
unsigned char code num9[16]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
unsigned char code dot[16]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
unsigned char code colon[16]={
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};
void delay(int num)
{
while(num--) ;
}
void write_chinese(x,y,width,array)
unsigned char x; /* horizontal x==[0,127] */
unsigned char y; /* vertical y==[0,7] */
unsigned char width;
unsigned char array[];
{
unsigned char j,dd;
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);
}
}
unsigned char read_status(void)
{
unsigned char status;
di=0;rw=0;e=0;rw=1;e=1;delay(2);e=0;e=1;
status = P1;
return(status);
}
void clear_screen(void)
{
unsigned char x,y;
for (y=0;y<8;y++)
{
for (x=0;x<128;x++)
lw(x,y,0x00);
}
}
void fillbyte(unsigned char byte)
{
unsigned char x,y;
for (y=0;y<8;y++)
{
for (x=0;x<128;x++)
lw(x,y,byte);
}
}
void fill(void)
{
unsigned char x,y;
for (y=0;y<8;y++)
{
for (x=0;x<128;x=x+2)
{lw(x,y,0xaa);lw(x+1,y,0x55);}
}
}
void lcd_init(void)
{
rst=0; delay(3); rst=1;/* Reset */
di=0;
/* Initial CS1 module */
cs1=1;cs2=0;
e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
/* Initial CS2 module */
cs2=1;cs1=0;
e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
/* Clear screen */
clear_screen();
fillbyte(0xff);
}
void lw(unsigned char x,unsigned char y,unsigned char dd)
{
if (x<64)
{
cs1=1;cs2=0;
di=rw=0;cs1=1;cs2=0;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
di=rw=0;cs1=1;cs2=0;P1=0x40|x;e=1;delay(0);e=0;delay(0);
di=1;rw=0;cs1=1;cs2=0;P1=dd;e=1;delay(0);e=0;delay(0);
cs1=cs2=1;
}
else
{
cs1=0;cs2=1;x=x-64;
di=rw=0;cs1=0;cs2=1;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
di=rw=0;cs1=0;cs2=1;P1=0x40|x;e=1;delay(0);e=0;delay(0);
di=1;rw=0;cs1=0;cs2=1;P1=dd;e=1;delay(0);e=0;delay(0);
cs1=cs2=1;
}
P1=0xff;
}
void main()
{
unsigned char i,dd;
loop: lcd_init();
delay(30000);
clear_screen();
fill();
delay(30000);
write_chinese(0x20,3,0x10,nin);
write_chinese(0x30,3,0x10,hao);
write_chinese(0x40,3,0x08,gantanhao);
write_chinese(0x48,3,0x08,gantanhao);
delay(50000);
clear_screen();
write_chinese(0x20,3,0x10,nin);
write_chinese(0x30,3,0x10,hao);
write_chinese(0x40,3,0x08,gantanhao);
write_chinese(0x48,3,0x08,gantanhao);
delay(50000);
clear_screen();
write_chinese(0x10,0,0x10,pin);
write_chinese(0x20,0,0x10,lv);
write_chinese(0x30,0,0x08,colon);
write_chinese(0x38,0,0x08,num1);
write_chinese(0x40,0,0x08,num8);
write_chinese(0x48,0,0x08,num0);
write_chinese(0x50,0,0x08,H);
write_chinese(0x58,0,0x08,z);
write_chinese(0x10,2,0x10,dian);
write_chinese(0x20,2,0x10,ya);
write_chinese(0x30,2,0x08,colon);
write_chinese(0x38,2,0x08,num2);
write_chinese(0x40,2,0x08,num0);
write_chinese(0x48,2,0x08,dot);
write_chinese(0x50,2,0x08,num8);
write_chinese(0x58,2,0x08,V);
write_chinese(0x10,4,0x10,dian);
write_chinese(0x20,4,0x10,liu);
write_chinese(0x30,4,0x08,colon);
write_chinese(0x38,4,0x08,num6);
write_chinese(0x40,4,0x08,num5);
write_chinese(0x48,4,0x08,dot);
write_chinese(0x50,4,0x08,num7);
write_chinese(0x58,4,0x08,m);
write_chinese(0x60,4,0x08,A);
write_chinese(0x10,6,0x10,dian);
write_chinese(0x20,6,0x10,rong);
write_chinese(0x30,6,0x08,colon);
write_chinese(0x38,6,0x08,num4);
write_chinese(0x40,6,0x08,num9);
write_chinese(0x48,6,0x08,dot);
write_chinese(0x50,6,0x08,num3);
write_chinese(0x58,6,0x08,u);
write_chinese(0x60,6,0x08,F);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
clear_screen();
write_chinese(0x20,3,0x10,xie);
write_chinese(0x30,3,0x10,xie);
write_chinese(0x40,3,0x08,gantanhao);
write_chinese(0x48,3,0x08,gantanhao);
delay(50000);
delay(50000);
delay(50000);
delay(50000);
fill();
goto loop;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -