Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*-----------------------
- Drive IC:ST7637
- Test mode:8 bit paraller interface 8080 MCU
- DOT SIZE£º128*128
- Program by:CHENXIANG
- Date:2007-11-28
- -------------------------*/
- #include <reg51.h>
- #include <intrins.h>
- #include <ctype.h>
- #define X_add 128
- #define Y_add 128
- #define Data_port P1
- #define nop _nop_()
- sbit CS=P3^5;
- sbit RST=P3^4;
- sbit RS=P2^3;
- sbit WR_=P3^3;
- sbit RD_=P2^2;
- sbit step= P2^0;
- sbit u4=P2^7;
- sbit u6=P2^5;
- typedef unsigned char byte;
- typedef unsigned int word;
- void write_data(in_data);
- void write_com(in_com);
- void delay(word time);
- void initial();
- void disptest_bar_h();
- void address_set(byte addX1,addX2,addY1,addY2);
- void pause();
- void disp_cube();
- void disp_bar();
- void test_patten(byte cl,byte ch);
- void main(void)
- {
- u4=1;
- u6=1;
- initial();
- while(1)
- {
- disp_cube();
- delay(12000);
- pause();
- disp_bar();
- delay(12000);
- pause();
- disptest_bar_h();
- delay(10000);
- pause();
- test_patten(0xf8,0x00);
- delay(5000);
- pause();
- test_patten(0x07,0xe0);
- delay(5000);
- pause();
- test_patten(0x00,0x1f);
- delay(5000);
- pause();
- test_patten(0xff,0xff);
- delay(5000);
- pause();
- test_patten(0x00,0x00);
- delay(5000);
- pause();
- }
- }
- void delay(word time)
- {
- word i;
- while(time--)
- for(i=0;i<10;i++);
- }
- void address_set(byte addX1,addX2,addY1,addY2)
- {
- write_com(0x2b);
- write_data(addX1);
- write_data(addX2);
- write_com(0x2a);
- write_data(addY1);
- write_data(addY2);
- }
- void write_data(in_data)
- {
- u4=0;
- u6=0;
- RS=1;
- CS=0;
- RD_=1;
- Data_port=in_data;
- WR_=0;
- //nop;
- WR_=1;
- CS=1;
- }
- void write_com(in_com)
- {
- u4=0;
- u6=0;
- RS=0;
- CS=0;
- RD_=1;
- Data_port=in_com;
- WR_=0;
- //nop;
- WR_=1;
- CS=1;
- }
- void initial()
- {
- RST=0; //Hardware Reset
- delay(50); //Delay 50mS
- RST=1; //Hardware Reset
- delay(50); //Delay 50mS
- //------------------Software Reset----------------------------------//
- write_com(0x01); //Software Reset
- delay(150); //Delay 150mS
- //------------------------------------------------------------------//
- //-------------------Disable Autoread-------------------------------//
- //------------------------------------------------------------------//
- write_com(0xD7); //Autoread control
- write_data(0x9F); //Disable Autoread
- write_com(0xE0); //Control OTP/MTP
- write_data(0x00); //Read Mode
- delay(10); //Delay 10mS
- write_com(0xE3); //Control OTP/MTP
- delay(20); //Delay 20mS
- write_com(0xE1); //Close Read Mode
- //------------------------------------------------------------------//
- //-------------------Sleep Out--------------------------------------//
- //------------------------------------------------------------------//
- write_com(0x28); //display OFF
- write_com(0x11); //Sleep Out
- delay(50); //delay 50ms
- //------------------------------------------------------------------//
- //--------------------VOP SET --------------------------------------//
- //------------------------------------------------------------------//
- write_com(0xC0); //V0 Voltage Set
- write_data(0x37); //total VOP= 15.08(1f) 3D
- write_data(0x01); //
- write_com(0x25); //contrast
- write_data(0x3f);
- //-----------------------------------------------------------------------------------//
- //-----------------------------------------------------------------------------------//
- //------------------------------------OTPB Set---------------------------------------//
- write_com(0xC3); //Bias Set
- write_data(0x00); //
- write_com(0xC4); //Booster Set
- write_data(0x05); //
- write_com(0xC5); //Booster Efficiency Set
- write_data(0x21); //
- write_com(0xCB); //VG Booster Set
- write_data(0x01); //
- write_com(0xB7); //Glass Direction
- write_data(0xCB); //X8=RGB X0=BGR CB
- write_com(0xD0); //Follower Type set
- write_data(0x1D); //
- //------------------------------------------------------------------//
- //-------------------MTP Set----------------------------------------//
- //------------------------------------------------------------------//
- write_com(0xD7); //Autoread control
- write_data(0xBF); //
- write_com(0xB5); //N-line Set
- write_data(0x00); //1c 80+
- write_com(0xB4); //PTL Saving Mode Set
- write_data(0x18); //Power Normal Mode
- //-----------------------------------------------------------------------------------//
- //----------------------------Command Table 1----------------------------------------//
- //-----------------------------------------------------------------------------------//
- write_com(0x20); //Normal Display
- write_com(0x2A); //Column Range
- write_data(0x04); //End Address-131
- write_data(0x83); //End Address-131
- write_com(0x2B); //Page Range
- write_data(0x04); //Start Address-0 02
- write_data(0x83); //End Address-161
- write_com(0x3A); //Pixel Format Set
- write_data(0x05); //
- write_com(0x36); //Memory Access Control
- write_data(0x00); //
- write_com(0xB0); //Duty Set
- write_data(0x7F); //
- //------------------------------Frame Frequency v.s Temp. Set------------------------//
- write_com(0xF0); //Normal Mode Frame Frequency/Temp. Set
- write_data(0x06); //FA
- write_data(0x0B); //FB
- write_data(0x0D); //FC
- write_data(0x12); //FD
- //------------------------------ ------------------------------ ------------------------------
- write_com(0x29); //Display On
- //------------------------------Gamma Table Set--------------------------------------//
- write_com(0xF9); //Gamma
- write_data(0x00); //
- write_data(0x01); //
- write_data(0x03); //
- write_data(0x05); //
- write_data(0x07); //
- write_data(0x09); //
- write_data(0x0B); //
- write_data(0x0D); //
- write_data(0x0F); //
- write_data(0x11); //
- write_data(0x13); //
- write_data(0x15); //
- write_data(0x17); //
- write_data(0x19); //
- write_data(0x1B); //
- write_data(0x1D); //
- }
- void test_patten(byte cl,byte ch)
- {
- word i,j;
- address_set(0,128,0,128);
- write_com(0x2c);
- for(i=X_add;i>0;i--)
- for(j=Y_add;j>0;j--)
- {
- write_data(cl);
- write_data(ch);
- }
- }
- void disptest_bar_h()
- {
- word i,j;
- address_set(0,128,0,128);
- write_com(0x2c);
- for (i=32;i>0;i--)
- {
- for(j=128;j>0;j--)
- {
- write_data(0xF8);
- write_data(0x00);
- }
- }
- for (i=32;i>0;i--)
- {
- for(j=128;j>0;j--)
- {
- write_data(0x07);
- write_data(0xe0);
- }
- }
- for (i=0;i<32;i++)
- {
- for(j=128;j>0;j--)
- {
- write_data(0x00);
- write_data(0x1F);
- }
- }
- for (i=32;i>0;i--)
- {
- for(j=0;j<128;j++)
- {
- write_data(0xff);
- write_data(0xff);
- }
- }
- }
- void pause()
- {
- while(!step);
- }
- void disp_cube()
- { word i,j,k,l,m;
- address_set(0,128,0,128);
- write_com(0x2c);
- for(l=0;l<32;l++)
- for(m=0;m<128;m++)
- {write_data(0XFF);write_data(0XFF);}
- for(m=0;m<64;m++)
- {for(l=0;l<32;l++)
- {write_data(0XFF);write_data(0XFF);}
- for(l=0;l<64;l++)
- {write_data(0X00);write_data(0X00);}
- for(l=0;l<32;l++)
- {write_data(0XFF);write_data(0XFF);}
- }
- for(m=0;m<32;m++)
- for(l=0;l<128;l++)
- {write_data(0XFF);write_data(0XFF);}
- }
- void disp_bar()
- { word i,j,k,l,m;
- address_set(0,128,0,128);
- write_com(0x2c);
- for(l=0;l<42;l++)
- for(m=0;m<128;m++)
- {write_data(0XF8);write_data(0X00);}
- for(m=0;m<43;m++)
- for(l=0;l<128;l++)
- {write_data(0X07);write_data(0Xe0);}
- for(m=0;m<43;m++)
- for(l=0;l<128;l++)
- {write_data(0X00);write_data(0X1F);}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement