?? hx8346.c
字號:
#include <reg52.h>
//#include <gray.h>
//#include <main.h>
//#define interface 1
sfr16 DPTR=0x82;
sbit A0 = P3^4; //P3^4
sbit RES = P3^5; //P3^0
sbit WRB = P3^6; //P3^3
sbit RDB = P3^7;
sbit CS_MAIN=P1^6; //P1^7
sbit BL_EN = P1^7;
sbit CSA = P1^0;
sbit ENTI = P3^1;
sbit DOUT = P3^0;
sbit DIN = P3^2;
sbit DCLK = P3^3;
sbit AUTOB =P1^3; //H outo
sbit STEPB =P1^4; //L active
//int B=256;
//#ifdef interface
//#else
//#endif
void delayms(int count);
void main_init(void);
void main_Write_COM(unsigned int wrcomH);
void main_Write_DATA(unsigned int DH);
void main_Write_DATA1(unsigned int jh,jm);
void main_W_com_data(unsigned int com1,dat1);
void main_address_set(void);
void main_Pattern(unsigned int jk,jm);
void main_Pattern1(unsigned int jk,jm);
void main_gray(void);
void red_gray(void);
void green_gray(void);
void blue_gray(void);
void Vcolor_bar(void);
void color_bar(void);
void main_picture(void);
void delaymsms(int count);
void press(void);
void BL(void);
void delayms(int count);
void point(void);
int ADS7843_WriteRead(unsigned char px);
void delaymsmms(int count);
main()
{
// RD=1;
// G=0;
P2=0x00;
delaymsms(10);
RES=0;
delaymsms(20);
RES=1;
// RD=1;
// G=0;
delaymsms(20);
// BL();
main_init();
while(1)
{
/*
main_Pattern(0xf800,0xf800);
delaymsms(100);
press();
main_Pattern(0x07e0,0x07e0);
delaymsms(100);
press();
main_Pattern(0x001f,0x001f);
delaymsms(100);
press();
main_Pattern(0x0000,0x0000);
delaymsms(100);
press();
main_Pattern1(0xffff,0xffff);
delaymsms(100);
press();
*/
main_gray();
delaymsms(100);
press();
/*
red_gray();
delaymsms(100);
press();
green_gray();
delaymsms(100);
press();
blue_gray();
delaymsms(100);
press();
color_bar();
delaymsms(100);
press();*/
/*
main_W_com_data(0x0003, 0x1038);
Vcolor_bar();
delaymsms(100);
press();
// main_init();
main_Pattern(0x0000,0x0000);
delaymsms(100);
press();
// main_init();
/*
while(1)
{
if(ENTI==0)
{
point();
}
}
*/
}
}
/*
void BL(void)
{
unsigned int i;
// RD=1;
// G=0;
delayms(10);
BL_EN=0;
for(i=0;i<30;i++)
{
BL_EN=1;
delayms(10);
BL_EN=0;
}
BL_EN=1;
delayms(10);
// RD=0;
// G=1;
}
*/
void delayms(int count) /* X10ms */
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<1000;j++)
;
}
void main_init(void)
{
//************************************* Gamma*********************************************/
main_W_com_data(0x46,0x0045);
main_W_com_data(0x47,0x0054);
main_W_com_data(0x48,0x0000);
main_W_com_data(0x49,0x0067);
main_W_com_data(0x4a,0x0007);
main_W_com_data(0x4b,0x0007);
main_W_com_data(0x4c,0x0001);
main_W_com_data(0x4d,0x0077);
main_W_com_data(0x4e,0x0000);
main_W_com_data(0x4f,0x0029);
main_W_com_data(0x50,0x0004);
main_W_com_data(0x51,0x0040);
//***********************************240x320 window setting*******************************/
main_W_com_data(0x02,0x0000); // Column address start2
main_W_com_data(0x03,0x0000); // Column address start1
main_W_com_data(0x04,0x0000); // Column address end2
main_W_com_data(0x05,0x00ef); // Column address end1
main_W_com_data(0x06,0x0000); // Row address start2
main_W_com_data(0x07,0x0000); // Row address start1
main_W_com_data(0x08,0x0001); // Row address end2
main_W_com_data(0x09,0x003f); // Row address end1 //240*320;
//**************************************Display Setting*************************************/
main_W_com_data(0x01,0x0006); // IDMON=0, INVON=1, NORON=1, PTLON=0
main_W_com_data(0x16,0x0018); // MY=0, MX=0, MV=0, ML=0, BGR=0, TEON=0
main_W_com_data(0x23,0x0095); // N_DC=1001 0101
main_W_com_data(0x24,0x0095); // P_DC=1001 0101
main_W_com_data(0x25,0x00ff); // I_DC=1111 1111
main_W_com_data(0x28,0x0002); // N_BP=0000 0010
main_W_com_data(0x29,0x0002); // N_FP=0000 0010
main_W_com_data(0x2a,0x0002); // P_BP=0000 0010
main_W_com_data(0x2b,0x0002); // P_FP=0000 0010
main_W_com_data(0x2c,0x0002); // I_BP=0000 0010
main_W_com_data(0x2d,0x0002); // I_FP=0000 0010
main_W_com_data(0x3a,0x0001); // N_RTN=0000, N_NW=001
main_W_com_data(0x3b,0x0001); // P_RTN=0000, P_NW=001
main_W_com_data(0x3c,0x00f0); // I_RTN=1111, I_NW=000
main_W_com_data(0x3d,0x0000); // DIV=00
delayms(2);
//*************************************Power Supply Setting***********************************
main_W_com_data(0x19,0x0041); // OSCADJ=010000, OSD_EN=1
delayms(1);
//********************for the setting before power supply startup************
main_W_com_data(0x20,0x0040); // BT=0100
main_W_com_data(0x21,0x0000);
main_W_com_data(0x1d,0x0000); // VC2=100, VC1=100
main_W_com_data(0x1e,0x0001); // VC3=000
main_W_com_data(0x1f,0x000e); // VRH=0110
main_W_com_data(0x44,0x003c); // 3b VCM=101 1010,VCOMH=VREG1*0.845
main_W_com_data(0x45,0x0010); // 11 VDV=1 0001,VCOM=1.08*VREG1
delayms(1);
//********************for power supply setting********************************
main_W_com_data(0x1c,0x0007); // AP=100
delayms(2);
main_W_com_data(0x1b,0x0018); // GASENB=0, PON=1, DK=1, XDK=0, DDVDH_TRI=0, STB=0
delayms(4);
main_W_com_data(0x1b,0x0010); // GASENB=0, PON=1, DK=0, XDK=0, DDVDH_TRI=0, STB=0
delayms(4);
main_W_com_data(0x43,0x0080); // VCOMG=1
delayms(1);
//****** Display ON Setting******
main_W_com_data(0x30,0x0008); // SAPS1=1000
delayms(4);
main_W_com_data(0x26,0x0004); //GON=0, DTE=0, D=01
delayms(4);
main_W_com_data(0x26,0x0024); //GON=1, DTE=0, D=01
main_W_com_data(0x26,0x002c); //GON=1, DTE=0, D=11
delayms(4);
main_W_com_data(0x26,0x003c); //GON=1, DTE=1, D=11
main_Write_COM(0x22);
}
void main_Write_COM(unsigned int wrcomH)
{
// RDB=1;
// G=0;
CS_MAIN =0;
DPTR=wrcomH;
A0=0;
P2=DPH;
P0=DPL;
/* WRB=0;
WRB=1;
A0=0;
P0=DPL; */
WRB=0;
WRB=1;
CS_MAIN =1;
// G=1;
// RDB=0;
}
void main_Write_DATA(unsigned int DH)
{
// RDB=1;
// G=0;
CS_MAIN =0;
DPTR=DH;
A0=1;
P2=DPH;
P0=DPL;
/*WRB=0;
WRB=1;
A0=1;
P0=DPL; */
WRB=0;
WRB=1;
CS_MAIN =1;
// G=1;
// RDB=0;
}
void main_Write_DATA1(unsigned int jh,jm)
{
// RDB=1;
// G=0;
CS_MAIN =0;
A0=1;
P2=jh;
P0=jm;
/* WRB=0;
WRB=1;
A0=1;
P0=jm;*/
WRB=0;
WRB=1;
CS_MAIN =1;
// G=1;
// RDB=0;
}
void main_W_com_data(unsigned int com1,dat1)
{
main_Write_COM(com1);
main_Write_DATA(dat1);
}
void main_address_set(void)
{
main_W_com_data(0x02,0x0000); // Column address start2
main_W_com_data(0x03,0x0000); // Column address start1
main_W_com_data(0x04,0x0000); // Column address end2
main_W_com_data(0x05,0x00ef); // Column address end1
main_W_com_data(0x06,0x0000); // Row address start2
main_W_com_data(0x07,0x0000); // Row address start1
main_W_com_data(0x08,0x0001); // Row address end2
main_W_com_data(0x09,0x003f); // Row address end1 //240*320;
main_Write_COM(0x22);
}
void main_Pattern(unsigned int jk,jm)
{
int i,j;
main_address_set();
for(i=0;i<240;i++)
{
main_Write_DATA(jk);
}
for(i=0;i<318;i++)
{
main_Write_DATA(jk);
for (j=0;j<238;j++)
{
main_Write_DATA(jm);
}
main_Write_DATA(jk);
}
for(i=0;i<240;i++)
{
main_Write_DATA(jk);
}
}
void main_Pattern1(unsigned int jk,jm)
{
int i,j;
main_address_set();
for(i=0;i<240;i++)
{
for(j=0;j<100;j++)
{
main_Write_DATA(0xffff);
}
}
for(j=0;j<120;j++)
{
for(i=0;i<80;i++)
{
main_Write_DATA(jk);
}
for(i=0;i<80;i++)
{
main_Write_DATA(jm);
}
for(i=0;i<80;i++)
{
main_Write_DATA(jk);
}
}
for(i=0;i<240;i++)
{
for(j=0;j<100;j++)
{
main_Write_DATA(0xffff);
}
}
}
void main_gray(void)
{
unsigned char A,B,C;
unsigned int i,j,k,DH;
//unsigned char DH;
main_address_set();
for(i=0;i<160;i++)
{
for(j=0;j<120;j++)
{
main_Write_DATA(0xffff);
}
for(j=0;j<120;j++)
{
main_Write_DATA(0x0000);
}
}
for(k=0;k<160;k++)
{
A=0;
B=0;
C=0;
for(i=0;i<16;i++)
{
for(j=0;j<15;j++)
{
DH=(A<<11)+(B<<5)+C;
main_Write_DATA(DH);
}
A=A+2;
B=B+4;
C=C+2;
}
}
}
void red_gray(void)
{
unsigned char A,B,C;
unsigned int i,j,k,DH;
A=0;
B=0;
C=0;
for(k=0;k<16;k++)
{
DH=(A<<11)+(B<<5)+C;
for(i=0;i<20;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(DH);
}
}
A=A+2;
// B=B+4;
// C=C+2;
}
}
void green_gray(void)
{
unsigned char A,B,C;
unsigned int i,j,k,DH;
A=0;
B=0;
C=0;
for(k=0;k<16;k++)
{
DH=(A<<11)+(B<<5)+C;
for(i=0;i<20;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(DH);
}
}
B=B+4;
// C=C+2;
}
}
void blue_gray(void)
{
unsigned char A,B,C;
unsigned int i,j,k,DH;
A=0;
B=0;
C=0;
for(k=0;k<16;k++)
{
DH=(A<<11)+(B<<5)+C;
for(i=0;i<20;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(DH);
}
}
//A=A+2;
// B=B+4;
C=C+2;
}
}
void color_bar(void)
{
unsigned int i,j;
main_address_set();
for(i=0;i<64;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(0xf800);
}
}
for(i=0;i<64;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(0x07e0);
}
}
for(i=0;i<64;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(0x001f);
}
}
for(i=0;i<64;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(0XFFE0);
}
}
for(i=0;i<64;i++)
{
for(j=0;j<240;j++)
{
main_Write_DATA(0XFFFF);
}
}
}
/*
void Vcolor_bar(void)
{
unsigned int i,j;
main_address_set();
for(i=0;i<48;i++)
{
for(j=0;j<320;j++)
{
main_Write_DATA(0xf800);
}
}
for(i=0;i<48;i++)
{
for(j=0;j<320;j++)
{
main_Write_DATA(0x07e0);
}
}
for(i=0;i<48;i++)
{
for(j=0;j<320;j++)
{
main_Write_DATA(0x001f);
}
}
for(i=0;i<48;i++)
{
for(j=0;j<320;j++)
{
main_Write_DATA(0XFFE0);
}
}
for(i=0;i<48;i++)
{
for(j=0;j<320;j++)
{
main_Write_DATA(0XFFFF);
}
}
}
*/
void delaymsms(int count) /* X10ms */
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<500;j++);
}
void press(void)
{
while(AUTOB == 1)
{
if(STEPB == 0)
{
goto aas;
}
else
{ if(AUTOB == 0)
goto aas;
}
}
aas: ;
}
void delaymsmms(int count) /* X10ms */
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<2;j++);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -