📄 lgdp4523.c
字号:
/************************************************
dots 176*220
controller LGDP4523
interface 8080/16bits P1-L,P0-H
************************************************/
#include <absacc.h>
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
//#define p0XBYTE[0x0000]
sbit cs =P3^5;
sbit res =P3^4;
sbit rs =P2^3;
sbit wr =P2^2;
sbit uc4 =P2^7;
sbit uc6 =P2^5;
sbit step= P2^0;
#define HSIZE 176
#define VSIZE 220
void dis_bar();
void pause();
void display_image(void);
unsigned char code image[]= {
0x12,
};
void delay(uint t)
{
uchar t1;
while(t--)
for(t1=16;t1>0;t1--) //16
{;} //0.1ms
}
void write_data(uchar data_h,data_l)
{
uc4=0;
uc6=0;
cs=0;
rs=1;
P0=data_h;
P1=data_l;
wr=0;
wr=1;
cs=1;
}
/*void write_command1(uchar datac)
{
uc4=0;
uc6=0;
cs=0;
rs=0;
P1=datac;
wr=0;
wr=1;
cs=1;
}*/
void write_command(uchar dd)
{
uc4=0;
uc6=0;
cs=0;
rs=0;
//rd=1;
//P0=0x00;
//P0=dd;
P1=dd;
wr=0;
//delay(0);
wr=1;
cs=1;
}
void initialization()
{
//int p,p1,p2;
res=0;
delay(350);
res=1;
delay(150);
//*********************Initial code******************************
write_command(0x07);write_data(0x00,0x00);
write_command(0x12);write_data(0x00,0x00);
write_command(0x13);write_data(0x00,0x00);
write_command(0x14);write_data(0x01,0x00);
delay(50);
write_command(0x11);write_data(0x00,0x00);
write_command(0x12);write_data(0x00,0x08);
write_command(0x13);write_data(0x0D,0x51);
delay(50);
write_command(0x10);write_data(0x01,0x34);
write_command(0x11);write_data(0x14,0x40);
write_command(0x12);write_data(0x00,0x18);
delay(50);
write_command(0x10);write_data(0x41,0x30);
write_command(0x13);write_data(0x30,0x48);
delay(50);
write_command(0x00);write_data(0x00,0x01);
write_command(0x01);write_data(0x01,0x1B);
write_command(0x02);write_data(0x07,0x00);
write_command(0x03);write_data(0x10,0x30);
write_command(0x04);write_data(0x00,0x00);
write_command(0x08);write_data(0x08,0x08);
write_command(0x09);write_data(0x00,0x00);
write_command(0x0B);write_data(0x5C,0x38);
write_command(0x0C);write_data(0x00,0x01);
write_command(0x14);write_data(0x01,0x20);
write_command(0x21);write_data(0x00,0x00);
write_command(0x30);write_data(0x00,0x00);
write_command(0x31);write_data(0x03,0x07);
write_command(0x32);write_data(0x00,0x00);
write_command(0x33);write_data(0x02,0x07);
write_command(0x34);write_data(0x01,0x06);
write_command(0x35);write_data(0x01,0x02);
write_command(0x36);write_data(0x05,0x00);
write_command(0x37);write_data(0x07,0x02);
write_command(0x38);write_data(0x0A,0x1C);
write_command(0x39);write_data(0x00,0x13);
write_command(0x3A);write_data(0x03,0x04);
write_command(0x3B);write_data(0x03,0x04);
write_command(0x3C);write_data(0x03,0x04);
write_command(0x3D);write_data(0x03,0x04);
write_command(0x3E);write_data(0x00,0x03);
write_command(0x3F);write_data(0x00,0x03);
write_command(0x40);write_data(0x00,0x00);
write_command(0x42);write_data(0xDB,0x00);
write_command(0x43);write_data(0xDB,0x00);
write_command(0x44);write_data(0xAF,0x00);
write_command(0x45);write_data(0xDB,0x00);
write_command(0x60);write_data(0x00,0x00);
write_command(0x61);write_data(0x00,0x02);
write_command(0x71);write_data(0x00,0x40);
delay(50);
write_command(0x10);write_data(0x44,0x30);
write_command(0x07);write_data(0x00,0x05);
delay(50);
write_command(0x07);write_data(0x00,0x25);
write_command(0x07);write_data(0x00,0x27);
delay(50);
write_command(0x0C);write_data(0x00,0x01);
write_command(0x40);write_data(0x00,0x00);
write_command(0x07);write_data(0x00,0x37);
write_command(0x22);
}
void display_rgb(uchar h_data,l_data)
{
uint i,j;
write_command(0x22);
for(i=0;i<HSIZE;i++)
for(j=0;j<VSIZE;j++)
{
write_data(h_data,l_data);
}
//write_command(0x2c,0x2c);
}
void main()
{
res=0;
delay(20);
res=1;
delay(200);
initialization();
while(1)
{
/*display_image();
delay(200000);
pause();*/
dis_bar();
delay(2000);
pause();
display_rgb(0xf8,0x00);
delay(2000);
pause();
display_rgb(0x07,0xe0);
delay(2000);
pause();
display_rgb(0x00,0x1f);
delay(2000);
pause();
display_rgb(0x00,0x00);
delay(2000);
pause();
display_rgb(0xff,0xff);
delay(2000);
pause();
}
}
void dis_bar(void)
{
int i,j,k;
write_command(0x22);
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0xF8,0x00);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0x07,0xe0);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0x00,0x1f);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0xfc,0x08);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0xff,0xe0);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0xff,0xff);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0xf8,0x1f);
}
}
for(i=0;i<22;i++) //display line
{
for(j=0;j<VSIZE;j++)
{
write_data(0x00,0x00);
}
}
}
void pause()
{
while(!step);
}
/*void display_image(void)
{
int i;
int j;
int k=0;
write_command1(0x22);
for(i=0;i<240;i++)
{
for(j=0;j<320;j++)
{
write_data(image[k++],image[k]);
k++;
}
}
// for(i=0;i<128*160;i++)
// {
// write_data(image[i++],image[i]);
// }
// }
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -