?? s6b0144.c
字號:
#include <reg51.H>
#include <intrins.h>
#define _BUS P1
sbit _WR=P3^3;
sbit _RS=P3^4;
sbit _CS=P3^5;
sbit _RD=P3^1;
sbit _RST=P3^0;
unsigned char code pic[]=
{
};
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=0x00;
_WR=0;
_nop_();
_WR=1;
_BUS=id;
_WR=0;
_nop_();
_WR=1;
_CS=1;
return;
}
void Write_Data(unsigned char dat_h,unsigned char dat_l)
{
_RD=1;
_RS=1;
_CS=0;
_BUS=dat_h;
_WR=0;
_nop_();
_WR=1;
_BUS=dat_l;
_WR=0;
_nop_();
_WR=1;
_CS=1;
return;
}
void Write_Register(unsigned char id,unsigned char dat_h,unsigned char dat_l)
{
Write_Index(id);
Write_Data(dat_h,dat_l);
return;
}
void Initial_LCD()
{
_RST=0;
Delay(50);
_RST=1;
Delay(200);
Write_Register(0x00,0x00,0x01);
Delay(50);
Write_Register(0xb4,0x00,0x10);
Write_Register(0x12,0x00,0xb3);
Write_Register(0x13,0x08,0x0d);
Write_Register(0x14,0x78,0xd7);
Write_Register(0x10,0x19,0x0c);
Delay(100);
Write_Register(0x13,0x08,0x1d);
Delay(50);
Write_Register(0x01,0x01,0x14);
Write_Register(0x02,0x01,0x00);
Write_Register(0x03,0x00,0x30);
Write_Register(0x08,0x02,0x02);
Write_Register(0x0b,0x00,0x00);
Write_Register(0x0c,0x00,0x00);
/*Gamma setting*/
Write_Register(0x30,0x00,0x00);
Write_Register(0x31,0x00,0x00);
Write_Register(0x32,0x00,0x00);
Write_Register(0x33,0x00,0x00);
Write_Register(0x34,0x00,0x00);
Write_Register(0x35,0x00,0x00);
Write_Register(0x36,0x00,0x00);
Write_Register(0x37,0x00,0x00);
Write_Register(0x38,0x00,0x00);
Write_Register(0x11,0x00,0x00);
/*Gamma setting*/
Write_Register(0x40,0x00,0x00);
Write_Register(0x44,0x7f,0x00);
Write_Register(0x45,0x9f,0x00);
Write_Register(0x61,0x00,0x18);
Write_Register(0x69,0x00,0x00);
Write_Register(0x70,0x00,0x00);
Write_Register(0x71,0x00,0x00);
Write_Register(0x73,0x00,0x00);
Write_Register(0xb3,0x00,0x00);
Write_Register(0xbd,0x00,0x00);
Write_Register(0xbe,0x00,0x00);
Write_Register(0x07,0x00,0x01);
Delay(5);
Write_Register(0x07,0x00,0x21);
Write_Register(0x07,0x00,0x23);
Delay(60);
Write_Register(0x07,0x00,0x37);
return;
}
void Display_Color(unsigned char dat_h,unsigned char dat_l)
{
unsigned char i,j;
Write_Register(0x21,0x00,0x00);
Write_Index(0x22);
for(i=0;i<0xa0;i++)
{
for(j=0;j<0x80;j++)
Write_Data(dat_h,dat_l);
}
}
void Display_Picture(unsigned char pic[])
{
register unsigned char j;
register unsigned int i,tmp1=0;
Write_Register(0x21,0x00,0x00);
Write_Index(0x22);
for(j=0;j<0xa0;j++)
{
for(i=0;i<256;i+=2)
{
tmp1+=2;
Write_Data(pic[tmp1],pic[tmp1+1]);
}
}
return;
}
/*
void Display_Grid(void)
{
unsigned char i,j;
Write_Register(0x21,0x00,0x00);
Write_Index(0x22);
for(j=0;j<0xa0;j++)
{
for(i=0;i<64;i++)
{
Write_Data(0x00,0x00);
Write_Data(0xff,0xff);
}
}
Delay(500);
for(j=0;j<0xa0;j++)
{
for(i=0;i<64;i++)
{
Write_Data(0xff,0xff);
Write_Data(0x00,0x00);
}
}
Delay(500);
for(j=0;j<0x50;j++)
{
for(i=0;i<128;i++)
Write_Data(0xff,0xff);
for(i=0;i<128;i++)
Write_Data(0x00,0x00);
}
Delay(500);
for(j=0;j<0x50;j++)
{
for(i=0;i<128;i++)
Write_Data(0x00,0x00);
for(i=0;i<128;i++)
Write_Data(0xff,0xff);
}
Delay(500);
return;
}
*/
void Display_Grid(void)
{
unsigned char i,j,k;
Write_Register(0x21,0x00,0x00);
Write_Index(0x22);
for(j=0;j<0x02;j++)
{
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0x00,0x00);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0xff,0xff);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0xf8,0x00);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0xff,0xe0);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0x07,0xe0);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0x07,0xff);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0x00,0x1f);
}
for(i=0;i<10;i++)
{
for(k=0;k<128;k++)
Write_Data(0xf8,0x1f);
}
}
return;
}
void main(void)
{
Initial_LCD();
while(1)
{
Display_Grid();
Delay(500);
Display_Picture(pic);
Delay(500);
Display_Color(0xf8,0x00);
Delay(500);
Display_Color(0x07,0xe0);
Delay(500);
Display_Color(0x00,0x1f);
Delay(500);
}
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -