Advertisement
Guest User

Untitled

a guest
Feb 12th, 2012
1,638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.95 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement