📄 s6d0118 d.c
字号:
#include <reg51.H>
#include <intrins.h>
#define DisplayCol 220 //com 320
#define DisplaySeg 176 //240*RGB
#define _BUS P1
sbit _WR=P3^3;
sbit _RS=P3^4;
sbit _CS=P3^5;
sbit _RD=P3^1;
sbit _RST=P3^0;
void Delay(unsigned int t)
{
unsigned int n,m;
for(n=0;n<t;n++)
for(m=0;m<300;m++);
}
void Write_Index(unsigned char id)
{
_RD=1;
_RS=0;
_CS=0;
_BUS=id;
_WR=0;
_nop_();
_WR=1;
_CS=1;
return;
}
char Read_Data(void)
{
char dat;
_WR=1;
_RS=1;
_CS=0;
_BUS=0xff;
_nop_();
_RD=0;
_nop_();
_nop_();
_RD=1;
_nop_();
dat=_BUS;
_CS=1;
return dat;
}
void Write_Data(unsigned char dat)
{
_RD=1;
_RS=1;
_CS=0;
_BUS=dat;
_WR=0;
_nop_();
_WR=1;
_CS=1;
return;
}
void Write_Register(unsigned char id,unsigned char dat)
{
Write_Index(id);
Write_Data(dat);
return;
}
void Display_Color(unsigned char red,unsigned char green,unsigned char blue)
{
unsigned char i,j,k;
/*
Write_Index(0x2a);
Write_Data(0x00);
Write_Data(0x00);
Write_Data(0x00);
Write_Data(0xef);
Write_Index(0x2b);
Write_Data(0x00);
Write_Data(0x00);
Write_Data(0x01);
Write_Data(0x3f);
*/
Write_Index(0x22); //Memory Write
for(i=0;i<2;i++)
{
for(j=0;j<160;j++)
{
for(k=0;k<240;k++)
{
Write_Data(red);
Write_Data(green);
Write_Data(blue);
}
}
}
return;
}
void LCD_Reset(void)
{
_CS=0;
_RST=1;
Delay(10);
_RST=0;
Delay(60);
_RST=1;
Delay(10);
}
void INIT(void)
{
Write_Register(0x11,0x2f03);
Write_Register(0x14,0x4026);
Write_Register(0x10,0x2180);
Write_Register(0x13,0x0040);
Write_Register(0x13,0x0060);
Write_Register(0x13,0x0070);
Write_Register(0x01,0x051d);
Write_Register(0x02,0x0700);
Write_Register(0x03,0x1030);
Write_Register(0x07,0x0016);
Write_Register(0x08,0x0808);
Write_Register(0x09,0x0000);
Write_Register(0x0b,0x0000);
Write_Register(0x0c,0x0000);
Write_Register(0x30,0x0000);
Write_Register(0x31,0x0000);
Write_Register(0x32,0x0303);
Write_Register(0x33,0x0000);
Write_Register(0x34,0x0404);
Write_Register(0x35,0x0707);
Write_Register(0x36,0x0707);
Write_Register(0x37,0x0000);
Write_Register(0x38,0x0404);
Write_Register(0x39,0x0006);
Write_Register(0x42,0xe50a);
Write_Register(0x43,0x0000);
Write_Register(0x44,0xaf00);
Write_Register(0x45,0xe50a);
return;
}
void Display_ON(void)
{
Write_Register(0x07,0x0014);
Write_Register(0x07,0x0016);
Write_Register(0x07,0x0017);
Write_Register(0x21,0x0000);
Delay(100);
Write_Index(0x22);
Delay(100);
return;
}
void Display(void) //-------DISPLAY PROGRAM------
{
Write_Register(0x07,0x0016);
Delay(100);
Write_Register(0x07,0x0017);
//Write_Register(0x21,0x0a00);
Write_Index(0x22);
Delay(100);
/*
Write_Index(0x01); //Software Reset
Delay(200);
Write_Index(0x11); //Sleep Out 11H
Write_Register(0x3a,0x07); //interface pixel format
Write_Index(0x13); // normal display on
Write_Index(0x38); //idle off
Write_Index(0x29); //display on */
while(1)
{
Display_Color(0xff,0xff,0xff);
Delay(500);
Display_Color(0xff,0x00,0x00);
Delay(500);
Display_Color(0x00,0xff,0x00);
Delay(500);
Display_Color(0x00,0x00,0xff);
Delay(500);
Display_Color(0x00,0x00,0x00);
Delay(500);
}
return;
}
void main(void)
{
//LCD_Reset();
//INIT();
//Display_ON();
Display();
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -