|
//Giantplus Test programme for kgm281b0 . //IC:SSD1289 use 16bus-80i
#include sbit RS="P3"^3; sbit _WR=P3^1; sbit RSET="P3"^0; sbit _LE=P3^6; //sbit Adr16=P3^4; //sbit Adr17=P3^5; sbit Adr18=P3^2; #define uchar unsigned char #define uint unsigned int uchar idata a; uint data k; void Delay(char data1); void W_COM(uchar data0,uchar data1,uchar data2); void W_R22(void); void W_DATA(uchar data1,uchar data2); void ALLCOR(uchar sx,ex,syl,syh,eyl,eyh,rg,gb); void ShowPicture(uchar sx,ex,syl,syh,eyl,eyh,uchar xdata *p); void INITIAL(void); /*--------------Delay-----------------------*/ void Delay(uchar data1) { uchar i,j; for(i=0; i { for(j=0;j<0xff;j++) { ; } } } /*---------------Write command--------------------*/ void W_COM(uchar data0, uchar data1, uchar data2) { RS="0"; _WR=0; _LE=1; P1=0x00; _LE=0; P1=data0; _WR=1; RS=1; _WR=0; _LE=1; P1=data1; _LE=0; P1=data2; _WR=1; } /*----------Command 22h writting--------------------*/ void W_R22(void) { RS=0; _WR=0; _LE=1; P1=0x00; _LE=0; P1=0x22; _WR=1; } /*-----------Display data writting------------------*/ void W_DATA(uchar data1, uchar data2) { RS=1; _WR=0; _LE=1; P1=data1; _LE=0; P1=data2; _WR=1; } /*-----------Display internal----------------------*/ void ALLCOR(uchar sx,ex,syl,syh,eyl,eyh,rg,gb) { uchar j; uint i,ey,sy; W_COM(0x44,ex,sx); W_COM(0x45,syh,syl); W_COM(0x46,eyh,eyl); W_COM(0x4E,0x00,sx); W_COM(0x4F,syh,syl); if (syh) {sy=0x0100; } else sy="0x0000"; sy=sy+syl; if (eyh) {ey=0x0100; } else ey="0x0000"; ey=ey+eyl; W_R22(); for (i=0; i { for (j=0; j { W_DATA(rg, gb); } } } /* void ShowPicture(uchar sx,ex,syl,syh,eyl,eyh,uchar xdata *p) { uchar j; uint i,ey,sy; W_COM(0x44,ex,sx); W_COM(0x45,syh,syl); W_COM(0x46,eyh,eyl); W_COM(0x4E,0x00,sx); W_COM(0x4F,syh,syl); if(syh) {sy=0x0100; } else sy="0x0000"; sy=sy+syl; if(eyh) {ey=0x0100; } else ey="0x0000"; ey=ey+eyl; W_R22(); for (i=0;i { for (j=0;j { W_DATA((*p++),(*p++)); k++; if (k==32768) { k="0"; p="0x00"; a++; Adr16=(uchar)(a%2); Adr17=(uchar)(((uchar)(a/2))%2); Adr18=(uchar)(((uchar)(a/4))%2); } } } }*/ /*------------------------- void SHOWPIC(uchar xdata *P ) { uchar i; uint j; long k; if(a==2) k="32768"; else k="0"; W_COM(66,0x00); //start x-address ofthe ram W_COM(67,0x00); //start y-address ofthe ram W_COM(68,0x00);
W_COM(69,0); W_COM(70,0xef);
W_COM(71,0x00); W_COM(72,0x00); W_COM(73,0x01); W_COM(74,0x3f); for(j=0;j<=0x13f;j++) { for(i=0;i<=0xef;i++) { W_DATA(~(*P++),~(*P++)); k="k"+2; if(k==65536) { k=0; P=0x00; a++; ADR18=((uint)(a/4))%2; ADR17=((uint)(a/2))%2; ADR16=a%2; } } } } ----------------------*/ /*-----------SSD1289 initial-----------------*/ void INITIAL(void) { W_COM(0x00,0x00,0x01); W_COM(0x03,0xA8,0XEE); W_COM(0x0C,0x00,0x02); W_COM(0x0D,0x00,0x0E); W_COM(0x0E,0x2E,0x00); W_COM(0x01,0x61,0x3F); W_COM(0x02,0x06,0x00); W_COM(0x10,0x00,0x00); W_COM(0x11,0x60,0x30); W_COM(0x05,0x00,0x00); W_COM(0x06,0x00,0x00); W_COM(0x16,0xEF,0x1C); W_COM(0x17,0x00,0x03); // W_COM(0x07,0x00,0x01); // W_COM(0x07,0x00,0x21); // W_COM(0x07,0x00,0x23); W_COM(0x07,0x02,0x33); W_COM(0x0B,0x00,0x00); W_COM(0x1E,0x00,0xAB); W_COM(0x0F,0x00,0x00); W_COM(0x41,0x00,0x00); W_COM(0x42,0x00,0x00); W_COM(0x48,0x00,0x00); W_COM(0x49,0x01,0x3F); W_COM(0x4A,0x00,0x00); W_COM(0x4B,0x00,0x00); W_COM(0x44,0xEF,0x00); W_COM(0x4E,0x00,0x00); W_COM(0x4F,0x00,0x00); W_COM(0x45,0x00,0x00); W_COM(0x46,0x01,0x3F); W_COM(0x23,0x00,0x00); W_COM(0x24,0x00,0x00); W_COM(0x21,0x00,0x00); } /*--------------main-------*/ void main(void) { EA="0"; TMOD=0x01; TCON=0x00; TH0=0xD8; TL0=0xF0; RSET=1; RSET=0; Delay(0x02); RSET=1; Delay(0xA0); INITIAL(); Delay(0xA0); while(1) { ALLCOR(0,0xef,0,0,0x3f,0x01,0xff,0xff);//フ Delay(0x64); ALLCOR(1,0xee,1,0,0x3e,0x01,0x00,0x00);//娩//uchar sx,ex,syl,syh,eyl,eyh,rg,gb Delay(0x10); // ALLCOR(0,0xef,0,0,0x3f,0x01,0x00,0x00);//堵 // Delay(0x64); ALLCOR(0,0xef,0,0,0x3f,0x01,0xf8,0x00);// Delay(0x64); ALLCOR(0,0xef,0,0,0x3f,0x01,0x07,0xe0);//厚 Delay(0x64); ALLCOR(0,0xef,0,0,0x3f,0x01,0x00,0x1f);//屡 Delay(0x64); ALLCOR(0x00,0x50,0x00,0x00,0x6D,0x00,0x00,0x00); //9甤瓜 ALLCOR(0x51,0xA0,0x00,0x00,0x6D,0x00,0xf8,0x00); ALLCOR(0xA1,0xEF,0x00,0x00,0x6D,0x00,0xf8,0x1f); ALLCOR(0x00,0x50,0x6E,0x00,0xdF,0x00,0x07,0xff); ALLCOR(0x51,0xA0,0x6E,0x00,0xdF,0x00,0x07,0xe0); ALLCOR(0xA1,0xEF,0x6E,0x00,0xdF,0x00,0xF0,0xE0 ); ALLCOR(0x00,0x50,0xE0,0x00,0x3f,0x01,0xff,0xe0); ALLCOR(0x51,0xA0,0xE0,0x00,0x3f,0x01,0xff,0xff); ALLCOR(0xA1,0xEF,0xE0,0x00,0x3f,0x01,0x00,0x1f); Delay(0x64); /* k="0"; a="0"; Adr16=0; Adr17=0; Adr18=0; ShowPicture(0x00,0xef,0,0,0x3f,0x01,0x0000); Delay(0x64); k="0x4000"; a="2"; Adr16=0; Adr17=1; Adr18=0; ShowPicture(0x00,0xef,0,0,0x3f,0x01,0x8000); Delay(0x64); k="0"; a="5"; Adr16=1; Adr17=0; Adr18=1; ShowPicture(0x00,0xef,0,0,0x3f,0x01,0x0000); Delay(0x64); */ } } |
|