SHARE
TWEET

Untitled

a guest Feb 12th, 2012 1,322 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*-----------------------  
  2. Drive IC:ST7637  
  3. Test mode:8 bit paraller interface 8080 MCU  
  4. DOT SIZE£º128*128  
  5. Program by:CHENXIANG  
  6. Date:2007-11-28  
  7. -------------------------*/  
  8. #include <reg51.h>  
  9. #include <intrins.h>  
  10. #include <ctype.h>  
  11. #define X_add 128  
  12. #define Y_add 128  
  13. #define Data_port P1  
  14. #define nop _nop_()  
  15. sbit CS=P3^5;  
  16. sbit RST=P3^4;  
  17. sbit RS=P2^3;  
  18. sbit WR_=P3^3;  
  19. sbit RD_=P2^2;  
  20. sbit step= P2^0;  
  21. sbit  u4=P2^7;  
  22. sbit  u6=P2^5;  
  23. typedef unsigned char byte;  
  24. typedef unsigned int word;  
  25. void write_data(in_data);  
  26. void write_com(in_com);  
  27. void delay(word time);  
  28. void initial();  
  29. void disptest_bar_h();  
  30. void address_set(byte addX1,addX2,addY1,addY2);  
  31. void pause();  
  32. void disp_cube();  
  33. void disp_bar();  
  34. void test_patten(byte cl,byte ch);  
  35.    
  36. void main(void)  
  37.      {  
  38.       u4=1;  
  39.       u6=1;  
  40.      initial();  
  41.      while(1)  
  42.      {  
  43.    
  44.       disp_cube();  
  45.       delay(12000);  
  46.       pause();  
  47.       disp_bar();  
  48.       delay(12000);  
  49.       pause();  
  50.          
  51.       disptest_bar_h();  
  52.       delay(10000);  
  53.       pause();  
  54.       test_patten(0xf8,0x00);  
  55.       delay(5000);  
  56.       pause();  
  57.       test_patten(0x07,0xe0);  
  58.       delay(5000);  
  59.       pause();  
  60.       test_patten(0x00,0x1f);  
  61.       delay(5000);  
  62.       pause();  
  63.       test_patten(0xff,0xff);  
  64.       delay(5000);  
  65.       pause();  
  66.       test_patten(0x00,0x00);  
  67.       delay(5000);  
  68.       pause();  
  69.          
  70.      }  
  71.     }  
  72. void delay(word time)  
  73.      {  
  74.     word i;  
  75.     while(time--)  
  76.          for(i=0;i<10;i++);  
  77.     }  
  78.    
  79. void address_set(byte addX1,addX2,addY1,addY2)  
  80.      {  
  81.     write_com(0x2b);  
  82.     write_data(addX1);  
  83.     write_data(addX2);  
  84.     write_com(0x2a);  
  85.     write_data(addY1);  
  86.     write_data(addY2);  
  87.     }  
  88. void write_data(in_data)  
  89.      {  
  90.      u4=0;  
  91.       u6=0;  
  92.      RS=1;  
  93.      CS=0;  
  94.      RD_=1;  
  95.      Data_port=in_data;  
  96.      WR_=0;  
  97.      //nop;  
  98.      WR_=1;  
  99.      CS=1;  
  100.     }  
  101. void write_com(in_com)  
  102.     {  
  103.     u4=0;  
  104.       u6=0;  
  105.         RS=0;  
  106.         CS=0;  
  107.         RD_=1;  
  108.         Data_port=in_com;  
  109.         WR_=0;  
  110.         //nop;  
  111.         WR_=1;  
  112.         CS=1;  
  113.     }  
  114. void initial()  
  115.    {  
  116.    
  117.         RST=0;                    //Hardware Reset  
  118.         delay(50);                      //Delay 50mS  
  119.         RST=1;                    //Hardware Reset  
  120.         delay(50);                      //Delay 50mS  
  121.    
  122.    
  123.    
  124. //------------------Software Reset----------------------------------//  
  125.         write_com(0x01);                  //Software Reset  
  126.         delay(150);                     //Delay 150mS  
  127. //------------------------------------------------------------------//  
  128. //-------------------Disable Autoread-------------------------------//  
  129. //------------------------------------------------------------------//  
  130.    
  131.         write_com(0xD7);                  //Autoread control  
  132.         write_data(0x9F);                //Disable Autoread  
  133.         write_com(0xE0);                  //Control OTP/MTP  
  134.         write_data(0x00);                //Read Mode  
  135.         delay(10);                      //Delay 10mS  
  136.         write_com(0xE3);                  //Control OTP/MTP  
  137.         delay(20);                      //Delay 20mS  
  138.         write_com(0xE1);                  //Close Read Mode  
  139. //------------------------------------------------------------------//  
  140. //-------------------Sleep Out--------------------------------------//  
  141. //------------------------------------------------------------------//  
  142.                 write_com(0x28);                  //display OFF  
  143.                 write_com(0x11);                  //Sleep Out  
  144.                 delay(50);                       //delay 50ms  
  145. //------------------------------------------------------------------//  
  146. //--------------------VOP SET --------------------------------------//  
  147. //------------------------------------------------------------------//  
  148.                 write_com(0xC0);                  //V0 Voltage Set  
  149.         write_data(0x37);                //total VOP= 15.08(1f)    3D  
  150.         write_data(0x01);                //  
  151.    
  152.                  write_com(0x25);                //contrast  
  153.                  write_data(0x3f);  
  154.    
  155. //-----------------------------------------------------------------------------------//  
  156. //-----------------------------------------------------------------------------------//  
  157. //------------------------------------OTPB Set---------------------------------------//  
  158.         write_com(0xC3);                  //Bias Set  
  159.         write_data(0x00);                //  
  160.         write_com(0xC4);                  //Booster Set  
  161.         write_data(0x05);                //  
  162.         write_com(0xC5);                  //Booster Efficiency Set  
  163.         write_data(0x21);                //  
  164.         write_com(0xCB);                  //VG Booster Set  
  165.         write_data(0x01);                //  
  166.         write_com(0xB7);                  //Glass Direction  
  167.         write_data(0xCB);                //X8=RGB    X0=BGR CB  
  168.         write_com(0xD0);                  //Follower Type set  
  169.         write_data(0x1D);                //  
  170. //------------------------------------------------------------------//  
  171. //-------------------MTP Set----------------------------------------//  
  172. //------------------------------------------------------------------//  
  173.         write_com(0xD7);                  //Autoread control  
  174.         write_data(0xBF);                //  
  175.    
  176.         write_com(0xB5);                  //N-line Set  
  177.         write_data(0x00);                //1c   80+  
  178.    
  179.         write_com(0xB4);                  //PTL Saving Mode Set  
  180.         write_data(0x18);                //Power Normal Mode  
  181. //-----------------------------------------------------------------------------------//  
  182. //----------------------------Command Table 1----------------------------------------//  
  183. //-----------------------------------------------------------------------------------//  
  184.    
  185.         write_com(0x20);                  //Normal Display  
  186.    
  187.         write_com(0x2A);                  //Column Range  
  188.         write_data(0x04);                //End Address-131  
  189.         write_data(0x83);                //End Address-131  
  190.    
  191.         write_com(0x2B);                  //Page Range  
  192.         write_data(0x04);                //Start Address-0  02  
  193.         write_data(0x83);                //End Address-161  
  194.    
  195.         write_com(0x3A);                  //Pixel Format Set  
  196.         write_data(0x05);                //  
  197.    
  198.         write_com(0x36);                  //Memory Access Control  
  199.         write_data(0x00);                //  
  200.    
  201.         write_com(0xB0);                  //Duty Set  
  202.         write_data(0x7F);                //  
  203.    
  204.    
  205.    
  206.    
  207. //------------------------------Frame Frequency v.s Temp. Set------------------------//  
  208.         write_com(0xF0);                  //Normal Mode Frame Frequency/Temp. Set  
  209.         write_data(0x06);                //FA  
  210.         write_data(0x0B);                //FB  
  211.         write_data(0x0D);                //FC  
  212.         write_data(0x12);                //FD  
  213.    
  214. //------------------------------ ------------------------------ ------------------------------  
  215.                 write_com(0x29);                  //Display On  
  216.    
  217. //------------------------------Gamma Table Set--------------------------------------//  
  218.                 write_com(0xF9);                  //Gamma  
  219.         write_data(0x00);                //  
  220.         write_data(0x01);                //  
  221.         write_data(0x03);                //  
  222.         write_data(0x05);                //  
  223.         write_data(0x07);                //  
  224.         write_data(0x09);                //  
  225.         write_data(0x0B);                //  
  226.         write_data(0x0D);                //  
  227.         write_data(0x0F);                //  
  228.         write_data(0x11);                //  
  229.         write_data(0x13);                //  
  230.         write_data(0x15);                //  
  231.         write_data(0x17);                //  
  232.         write_data(0x19);                //  
  233.         write_data(0x1B);                //  
  234.         write_data(0x1D);                //  
  235.    
  236. }  
  237.    
  238.    
  239. void test_patten(byte cl,byte ch)  
  240.     {  
  241.     word i,j;  
  242.     address_set(0,128,0,128);  
  243.     write_com(0x2c);  
  244.     for(i=X_add;i>0;i--)  
  245.        for(j=Y_add;j>0;j--)  
  246.          {  
  247.           write_data(cl);  
  248.           write_data(ch);  
  249.          }  
  250.          }  
  251.    
  252. void disptest_bar_h()  
  253. {  
  254.        word i,j;  
  255.        address_set(0,128,0,128);  
  256.        write_com(0x2c);  
  257.     for (i=32;i>0;i--)  
  258.     {  
  259.             for(j=128;j>0;j--)  
  260.             {  
  261.                     write_data(0xF8);  
  262.                         write_data(0x00);  
  263.             }  
  264.         }  
  265.         for (i=32;i>0;i--)  
  266.         {  
  267.             for(j=128;j>0;j--)  
  268.             {  
  269.                 write_data(0x07);  
  270.                 write_data(0xe0);  
  271.             }  
  272.      }  
  273.         for (i=0;i<32;i++)  
  274.         {  
  275.             for(j=128;j>0;j--)  
  276.             {  
  277.                        write_data(0x00);  
  278.                        write_data(0x1F);  
  279.             }  
  280.         }  
  281.    
  282.         for (i=32;i>0;i--)  
  283.         {  
  284.             for(j=0;j<128;j++)  
  285.             {  
  286.                        write_data(0xff);  
  287.                        write_data(0xff);  
  288.             }  
  289.         }  
  290.    
  291.    
  292. }  
  293.    
  294. void pause()  
  295. {  
  296.     while(!step);  
  297. }  
  298.    
  299.    
  300.    
  301. void disp_cube()  
  302. {   word i,j,k,l,m;  
  303.     address_set(0,128,0,128);  
  304.     write_com(0x2c);  
  305.    
  306.       for(l=0;l<32;l++)  
  307.          for(m=0;m<128;m++)  
  308.              {write_data(0XFF);write_data(0XFF);}  
  309.    
  310.       for(m=0;m<64;m++)  
  311.         {for(l=0;l<32;l++)  
  312.                {write_data(0XFF);write_data(0XFF);}  
  313.          for(l=0;l<64;l++)  
  314.                {write_data(0X00);write_data(0X00);}  
  315.          for(l=0;l<32;l++)  
  316.                {write_data(0XFF);write_data(0XFF);}  
  317.         }  
  318.       for(m=0;m<32;m++)  
  319.          for(l=0;l<128;l++)  
  320.              {write_data(0XFF);write_data(0XFF);}  
  321.    
  322. }  
  323.    
  324. void disp_bar()  
  325. {   word i,j,k,l,m;  
  326.     address_set(0,128,0,128);  
  327.     write_com(0x2c);  
  328.    
  329.       for(l=0;l<42;l++)  
  330.          for(m=0;m<128;m++)  
  331.              {write_data(0XF8);write_data(0X00);}  
  332.    
  333.       for(m=0;m<43;m++)  
  334.          for(l=0;l<128;l++)  
  335.              {write_data(0X07);write_data(0Xe0);}  
  336.    
  337.       for(m=0;m<43;m++)  
  338.          for(l=0;l<128;l++)  
  339.              {write_data(0X00);write_data(0X1F);}  
  340.          
  341. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top