📄 lgdp4522(4).c
字号:
//====================================================
#include<absacc.h>
#include <reg52.h>
#include <intrins.h>
//8-BIT
//LGDP4522
//8080 interface
//176*220
//MADE BY ChenXiang
//====================================================
#define D_PORT P1
//#define D_PORT1 P2
#define X_add 176
#define Y_add 220
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char byte;
typedef unsigned int word;
byte code BMP[];
sbit CS = P3^5;
sbit REST = P3^4;
sbit DC = P3^2;
sbit Wr = P3^1;
sbit Rd = P3^0;
sbit step= P2^0;
//====================================================
void display_griphic(byte griphic[]);
void pause();
void pause()
{
while(!step);
}
void delay(uint t)
{
uchar t1;
while(t--)
for(t1=16;t1>0;t1--)
{;} //0.1ms
}
//========================================
wr_com_m(unsigned char com)
{
/* CS = 0;
D_PORT=com;
DC = 0;
Wr = 0;
Wr = 1;
Wr = 0;
Wr = 1;
CS = 1;*/
DC =0;
CS =0;
Rd =1;
Rd =1;
Wr =1;
Wr =1;
Wr =0;
Wr =1;
D_PORT=com;
Wr =0;
Wr =0;
Wr =1;
Wr =1;
}
//-------------------------------------------------
wr_dat_m(unsigned char dat)
{
/*CS = 0;
D_PORT = dat;
DC = 1;
Wr = 0;
Wr = 1;
CS = 1; */
/* CS=0;
DC=1;
//CS=0;
Rd=1;
D_PORT=dat;
Wr=0;
Wr=1;
CS=1; */
DC=1;DC=1;
CS=0;CS=0;
Rd=1;Rd=1;
D_PORT=dat;
Wr=0;Wr=0;
Wr=1;Wr=1;
CS=1;CS=1;
}
//********************************************************//
//====================================================
void dis_line(unsigned int dat1,dat)
{
int i,j;
wr_com_m(0x22);
for(i=0;i<176;i++) //display line
for(j=0;j<220;j++)
{
wr_dat_m(dat1);
wr_dat_m(dat);
//wr_dat_m(dat2);
}
}
//===========================================
void dis_bar()
{
int i,j,k;
wr_com_m(0x22);
for(k=0;i<4;i++)
{
for(i=0;i<44;i++) //display line
{
for(j=0;j<220;j++)
{
//wr_dat_m(0x00,0xf8);
wr_dat_m(0xf8);
wr_dat_m(0x00);
}
}
for(i=0;i<44;i++) //display line
{
for(j=0;j<220;j++)
{
//wr_dat_m(0x00,0x07);
wr_dat_m(0x07);
wr_dat_m(0xe0);
}
}
for(i=0;i<44;i++) //display line
{
for(j=0;j<220;j++)
{
//wr_dat_m(0x00,0x00);
wr_dat_m(0x00);
wr_dat_m(0x1f);
}
}
for(i=0;i<44;i++) //display line
{
for(j=0;j<220;j++)
{
//wr_dat_m(0x00,0xff);
wr_dat_m(0xff);
wr_dat_m(0xff);
}
}
}
}
//====================================================================
void lcd_ini_m(void)
{
wr_com_m(0x07); //LG
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_com_m(0x12);
wr_dat_m(0x07);
wr_dat_m(0x00);
wr_com_m(0x13);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_com_m(0x14);
wr_dat_m(0x03);
wr_dat_m(0x31);
delay(100);
wr_com_m(0x60);
wr_dat_m(0x20);
wr_dat_m(0x00);
wr_com_m(0x60);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_com_m(0x11);
wr_dat_m(0x00);
wr_dat_m(0x01);
wr_com_m(0x12);
wr_dat_m(0x00);
wr_dat_m(0x0A);
wr_com_m(0x13);
wr_dat_m(0x0C);
wr_dat_m(0x55);
wr_com_m(0x10);
wr_dat_m(0x04);
wr_dat_m(0x44);
delay(400);
wr_com_m(0x12);
wr_dat_m(0x00);
wr_dat_m(0x1d);
delay(500);
wr_com_m(0x13);
wr_dat_m(0x0D);
wr_dat_m(0x57);
wr_com_m(0x10);
wr_dat_m(0x04);
wr_dat_m(0x40);
delay(500);
wr_com_m(0x01);
wr_dat_m(0x01);
wr_dat_m(0x1B);
wr_com_m(0x02);
wr_dat_m(0x07);
wr_dat_m(0x00);
wr_com_m(0x03);
wr_dat_m(0x10);
wr_dat_m(0x30);
wr_com_m(0x08);
wr_dat_m(0x05);
wr_dat_m(0x04);
wr_com_m(0x09);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_com_m(0x0B); //FRAME CONTROL
wr_dat_m(0x0D);
wr_dat_m(0x2D);
wr_com_m(0x21);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_com_m(0x30);
wr_dat_m(0x00);
wr_dat_m(0x00);
wr_com_m(0x31);
wr_dat_m(0x07);
wr_dat_m(0x07);
wr_com_m(0x32);
wr_dat_m(0x05);
wr_dat_m(0x07);
wr_com_m(0x33);
wr_dat_m(0x00);
wr_dat_m(0x03);
wr_com_m(0x34);
wr_dat_m(0x00);
wr_dat_m(0x02);
wr_com_m(0x35);
wr_dat_m(0x00);
wr_dat_m(0x02);
wr_com_m(0x36);
wr_dat_m(0x07);
wr_dat_m(0x07);
wr_com_m(0x37);
wr_dat_m(0x03);
wr_dat_m(0x00);
wr_com_m(0x38);
wr_dat_m(0x0A);
wr_dat_m(0x01);
wr_com_m(0x39);
wr_dat_m(0x01);
wr_dat_m(0x0A);
wr_com_m(0x42);
wr_dat_m(0xDB);
wr_dat_m(0x00);
wr_com_m(0x44);
wr_dat_m(0xAF);
wr_dat_m(0x00);
wr_com_m(0x45);
wr_dat_m(0xDB);
wr_dat_m(0x00);
delay(200);
wr_com_m(0x10);
wr_dat_m(0x44);
wr_dat_m(0x40);
wr_com_m(0x07);
wr_dat_m(0x00);
wr_dat_m(0x05);
delay(400);
wr_com_m(0x07);
wr_dat_m(0x00);
wr_dat_m(0x25);
wr_com_m(0x07);
wr_dat_m(0x00);
wr_dat_m(0x27);
delay(400);
wr_com_m(0x07);
wr_dat_m(0x00);
wr_dat_m(0x37);
}
//====================================================
//====================================================
void main(void)
{
REST = 0;
delay(50);
REST = 1;
delay(50);
lcd_ini_m();
while(1)
{
display_griphic(BMP);
delay(10);
pause();
dis_line(0xF8,0x00);
delay(10);
pause();
dis_line(0x07,0xe0);
delay(10);
pause();
dis_line(0x00,0x1f);
delay(10);
pause();
dis_line(0xbd,0x1f);
delay(10);
pause();
dis_line(0x00,0x00);
delay(10);
pause();
dis_line(0xFF,0xFF);
delay(10);
pause();
dis_bar();
delay(10);
}
}
void display_griphic(byte griphic[])
{
word i,j,k;
wr_com_m(0x22);
for(i=0;i<X_add;i++)
for(j=0;j<Y_add;j++)
{j++;
for(k=0;k<2;k++)
{
wr_dat_m(*griphic++);
wr_dat_m(*griphic);
griphic++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -