📄 lgdp4524-2^2.c
字号:
/************************************************
LCD: 2.2寸,LG,TFT 176*220 date: 2007.7.23
IC LGDP4524(R61503U) 8080/16bits
VDD 2.8V
************************************************/
#include <reg52.h>
#include "LGDP4524-16-V2.h"
#include "table_V2.h"
//#define NBI 0x88 //33B6 用
//char contrast=72;
char page_no=0;
void main()
{
P1=0xf0;
page(0);
P14=1;
P15=0;
//LED2,LED1,BL_EN,/RES, /CS2,/CS1,/WR,RS
control_port=0x0F; // /res=0;
Delayms(50);
control_port=0x1F; // /res=1;
Delayms(20);
init_LGDP4524();
set_LGDP4524_add();
while(1)
{
set_LGDP4524_add();
frame(220,176);
key_step();
set_LGDP4524_add();
Write_color_main(0xff,0xff,220,176);
key_step();
set_LGDP4524_add();
Write_color_main(0x00,0x00,220,176);
key_step();
set_LGDP4524_add();
Write_color_main(0xf8,0x00,220,176);
key_step();
set_LGDP4524_add();
Write_color_main(0x07,0xe0,220,176);
key_step();
set_LGDP4524_add();
Write_color_main(0x00,0x1f,220,176);
key_step();
set_LGDP4524_add();
Graygray();
key_step();
set_LGDP4524_add();
Grayred();
key_step();
set_LGDP4524_add();
Graygreen();
key_step();
set_LGDP4524_add();
Grayblue();
key_step();
set_LGDP4524_add();
snow1(220,176);
key_step();
set_LGDP4524_add();
snow2(220,176);
key_step();
set_LGDP4524_add();
main_pic(220,176,0xE000,6);
key_step();
set_LGDP4524_add();
main_pic(220,176,0x8E80,9);
key_step();
set_LGDP4524_add();
main_pic(220,176,0xBD00,11);
key_step();
/*
Motor=1;
Spk=0;
Rec=0;
key_step();
Motor=0;
Spk=1;
Rec=0;
key_step();
Motor=0;
Spk=0;
Rec=1;
key_step();
Motor=0;
Spk=0;
Rec=0;
*/
}
}
void page(char value)
{
ACC=P1;
P1=(ACC&0xf0)+value;
}
void Delayus(int value)
{
while(value) value--;
}
void Delayms(int value)
{
int i,j,k;
for(i=0;i<value;i++)
for(j=0;j<5;j++)
for(k=0;k<131;k++);
}
void key_step()
{
Continue=1;
while(Continue);
Delayms(80);
while(!Continue);
}
void WCom(uchar comh,coml)
{
port_h=comh;
port_l=coml;
//LED2,LED1,BL_EN,/RES, /CS2,/CS1,/WR,RS
control_port=0x1A;
control_port=0x18;
control_port=0x1A;
control_port=0x1E;
}
void WData(uchar dath,datl)
{
port_h=dath;
port_l=datl;
//LED2,LED1,BL_EN,/RES, /CS2,/CS1,/WR,RS
control_port=0x1B;
control_port=0x19;
control_port=0x1B;
control_port=0x1F;
}
void Write_color_main(uchar color_h,color_l,int com,seg)
{ int i,j;
for(i=0;i<com;i++)
{for(j=0;j<seg;j++)
{
WData(color_h,color_l);
}
}
}
void init_LGDP4524()
{
WCom(0x00,0x07);
WData(0x00,0x00);
WCom(0x00,0x12);
WData(0x00,0x00);
WCom(0x00,0x13);
WData(0x00,0x00);
WCom(0x00,0x14);
WData(0x03,0x31);
Delayms(20);
WCom(0x00,0x12);
WData(0x00,0x09);
WCom(0x00,0x11);
WData(0x00,0x00);// WData(0x00,0x00);
WCom(0x00,0x10);
WData(0x01,0x04);
WCom(0x00,0x13);
WData(0x0C,0x4A);
WCom(0x00,0x10);
WData(0x01,0x44);
WCom(0x00,0x11);
WData(0x00,0x01);//WData(0x02,0x00);WData(0x00,0x01);
WCom(0x00,0x12);
WData(0x00,0x19);
Delayms(20);
WCom(0x00,0x13);
WData(0x2C,0x4A);
WCom(0x00,0x10);
WData(0x01,0x40);
Delayms(20);
WCom(0x00,0x60);
WData(0x20,0x00);
WCom(0x00,0x60);
WData(0x00,0x00);
WCom(0x00,0x61);
WData(0x00,0x02);
WCom(0x00,0x01);
WData(0x01,0x1B);
Delayms(1);
WCom(0x00,0x02);
WData(0x07,0x00);
WCom(0x00,0x03);
WData(0x10,0x30);
WCom(0x00,0x09);
WData(0x00,0x00);
//WCom(0x00,0x0B);
//WData(0x5D,0x2C);//WData(0x5D,0x2C);
WCom(0x00,0x21);
WData(0x00,0x00);
WCom(0x00,0x30);
WData(0x01,0x01);
WCom(0x00,0x31);
WData(0x06,0x04);
WCom(0x00,0x32);
WData(0x00,0x07);
WCom(0x00,0x33);
WData(0x04,0x03);
WCom(0x00,0x34);
WData(0x00,0x07);
WCom(0x00,0x35);
WData(0x04,0x02);
WCom(0x00,0x36);
WData(0x06,0x06);
WCom(0x00,0x37);
WData(0x03,0x04);
WCom(0x00,0x38);
WData(0x07,0x0E);
WCom(0x00,0x39);
WData(0x07,0x0E);
WCom(0x00,0x3A);
WData(0x01,0x01);
WCom(0x00,0x3B);
WData(0x01,0x01);
WCom(0x00,0x3C);
WData(0x01,0x01);
WCom(0x00,0x3D);
WData(0x01,0x01);
WCom(0x00,0x3E);
WData(0x00,0x01);
WCom(0x00,0x3F);
WData(0x00,0x01);
WCom(0x00,0x42);
WData(0xDB,0x00);
WCom(0x00,0x44);
WData(0xAF,0x00);
Delayms(10);
WCom(0x00,0x45);
WData(0xDB,0x00);
WCom(0x00,0x71);
WData(0x00,0x40);
Delayms(40);
WCom(0x00,0x72);
WData(0x00,0x02);
Delayms(20);
WCom(0x00,0x10);
WData(0x32,0x50);//WData(0x32,0x50);WData(0x11,0xB0);
//////////////////////////////
// WCom(0x00,0x12);
// WData(0x00,0x1C);
// Delayms(10);
// WCom(0x00,0x13);
// WData(0x2E,0x56);//WData(0x2E,0x58);
/////////////////////////////
Delayms(20);
WCom(0x00,0x07);
WData(0x00,0x01);
Delayms(30);
WCom(0x00,0x07);
WData(0x00,0x21);
WCom(0x00,0x07);
WData(0x00,0x23);
Delayms(30);
WCom(0x00,0x07);
WData(0x00,0x37);
WCom(0x00,0x22);
}
void set_LGDP4524_add()
{
/*
WCom(0x00,0x50);
WData(0x00,0x00);
WCom(0x00,0x51);
WData(0x00,0xaf);
WCom(0x00,0x52);
WData(0x00,0x00);
WCom(0x00,0x53);
WData(0x00,0xdb);
WCom(0x00,0x20);
WData(0x00,0x00);
WCom(0x00,0x21);
WData(0x00,0x00);
WCom(0x00,0x22);
*/
}
void frame(int com,seg)
{
int Row,Column;
//set_LGDP4524_add();
for(Column=0;Column<seg;Column++)
{WData(0xf8,0x00);}
for(Row=0;Row<(com-2);Row++)
{ WData(0xf8,0x00);
for(Column=0;Column<(seg-2);Column++)
{WData(0x00,0x00);}
WData(0xf8,0x00);
}
for(Column=0;Column<seg;Column++)
{ WData(0xf8,0x00);
}
}
//=============================================
void snow1(int com,seg)
{
int i,j;
//set_LGDP4524_add();
for(i=0;i<(com/2);i++)
{
for(j=0;j<(seg/2);j++)
{
WData(0xff,0xff);
WData(0x00,0x00);
}
for(j=0;j<(seg/2);j++)
{
WData(0x00,0x00);
WData(0xff,0xff);
}
}
}
void snow2(int com,seg)
{
int i,j;
//set_LGDP4524_add();
for(i=0;i<(com/2);i++)
{
for(j=0;j<(seg/2);j++)
{
WData(0x00,0x00);
WData(0xff,0xff);
}
for(j=0;j<(seg/2);j++)
{
WData(0xff,0xff);
WData(0x00,0x00);
}
}
}
void Gray(uchar d1_h,d1_l,d2_h,d2_l,d3_h,d3_l,d4_h,d4_l,d5_h,d5_l,d6_h,d6_l,d7_h,d7_l,d8_h,d8_l,int com,seg)
{
int Row,Column;
//set_LGDP4524_add();
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d1_h,d1_l);}
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d2_h,d2_l);}
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d3_h,d3_l);}
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d4_h,d4_l);}
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d5_h,d5_l);}
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d6_h,d6_l);}
for(Row=0;Row<(com/8);Row++)
for(Column=0;Column<seg;Column++)
{WData(d7_h,d7_l);}
for(Row=0;Row<(com-(com/8)*7);Row++)
for(Column=0;Column<seg;Column++)
{WData(d8_h,d8_l);}
}
void Graygray()
{
Gray(0x00,0x00,0x21,0x04,0x42,0x08,0x63,0x0c,0x84,0x10,0xa5,0x14,0xc6,0x18,0xe7,0x1c,220,176);
}
void Grayred()
{
Gray(0xf8,0x00,0xf9,0xaa,0xfa,0xaa,0xfb,0x6d,0xfc,0x92,0xfd,0xb6,0xfe,0xdb,0xff,0xff,220,176);
}
void Graygreen()
{
Gray(0x07,0xe0,0x27,0xe4,0x4f,0xe9,0x6f,0xed,0x97,0xf2,0xb7,0xf6,0xdf,0xfb,0xff,0xff,220,176);
}
void Grayblue()
{
Gray(0x00,0x1f,0x21,0x3f,0x4a,0x5f,0x6b,0x7f,0x94,0x9f,0xb5,0xbf,0xe7,0x1f,0xff,0xff,220,176);
}
void main_pic(int com,seg,d,uchar p)
{ uchar dat_h,dat_l;
int i,j;
page_no=p;
page(page_no);
main_img_add=d;
main_img_add--;
for(i=0;i<com;i++)
{
for(j=0;j<seg;j++)
{ main_img_add++;
dat_h=*main_img_add;
main_img_add++;
dat_l=*main_img_add;
WData(dat_h,dat_l);
if (main_img_add>=0xffff)
{
main_img_add=0x7fff;
page_no++;
if (page_no==16){page_no=0;}
page(page_no);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -