找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3397|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机驱动2.7寸tft液晶源程序 自己编写可以用的

[复制链接]
跳转到指定楼层
楼主
分享一个51单片机驱动2.7寸tft液晶 自己编写可以用的

完整代码下载:
程序.rar (41.28 KB, 下载次数: 20)



主程序:
  1. #include <reg52.h>                                             
  2. #define DBL P0
  3. #define SWITCH_TIME 4000 //默认2s

  4. unsigned char a;
  5. unsigned int pic;
  6. bit delayflag=0;
  7. //*********************************************
  8. void Initial(void);
  9. void Write_Command(unsigned char RegisterName);
  10. void Write_Data(unsigned char RegisterValue);
  11. void fill(unsigned char dat1,unsigned char dat2);
  12. void Delay(unsigned int count);
  13. void pane();
  14. void showpic();
  15. void pictrue();
  16. //************************************************
  17. sbit CS =P1^0;
  18. sbit DC =P1^2;
  19. sbit W_R =P3^6;
  20. sbit R_D =P3^7;
  21. sbit RES =P1^1;

  22. sbit SCLK         = P0^0;                        // Serial Clock Input
  23. sbit SDIN         = P0^1;                                // Serial Data Input

  24. sbit key_stop = P1^3;//按键,按下为0暂停循环,松开为1循环跑动
  25. sbit key_mod = P1^4;//并串模式切换按键,为0串行模式,为1为并行模式,仅在程序开机时判断

  26. bit mod_flag = 1;

  27. //********************************************

  28. void Delay(unsigned int count)
  29. {
  30.         unsigned int i,j;
  31.                 for(i=0;i<count;i++)
  32.         for(j=0;j<114;j++);
  33. }
  34. unsigned char code show1[]=
  35. {
  36. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  37. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  38. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  39. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  41. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  42. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  43. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  44. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  45. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  46. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  47. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  48. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  49. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  50. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  51. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  52. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  53. 0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
  54. 0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xF0,
  55. 0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x80,0xC0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
  56. 0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
  57. 0xF0,0xF0,0xF0,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
  58. 0xF0,0xF0,0x00,0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,
  59. 0xF0,0xF0,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,
  60. 0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
  61. 0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
  62. 0x7F,0x7F,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0x7F,0x3F,0x1F,0xFF,
  63. 0xFF,0xFF,0xFF,0xFF,0x01,0xFE,0xFF,0xFF,0xFF,0xFF,0x07,0x43,0xE3,0xF3,0xFB,0xFF,
  64. 0xFF,0xFF,0xBF,0x1F,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x43,0xE3,0xF3,0xFB,0xFF,0xFF,
  65. 0xFF,0xBF,0x1F,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0xC3,0x83,0xC3,0xFF,0xFF,0xFF,
  66. 0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xFE,0xFF,0x7F,0x3F,0xFF,0xFF,0xFF,
  67. 0xFF,0xFF,0xFC,0xFE,0x7F,0x7F,0x3F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,
  68. 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  69. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70. 0x00,0x00,0x00,0x00,0xEF,0xEF,0xEF,0xEF,0xEF,0xE7,0xE1,0xE0,0xE0,0xE0,0xE0,0xEF,
  71. 0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0x0F,0x8F,0xEF,0xEF,0xE0,0xE0,0xE0,0x01,0x83,0xC7,
  72. 0xEF,0xEF,0xEF,0xEF,0x0F,0x0F,0x8F,0xCF,0xEF,0xEF,0xE0,0xE0,0xE1,0x03,0x07,0x0F,
  73. 0x0F,0x0F,0x0F,0x00,0xEF,0xEF,0xEF,0xEF,0xEF,0x0F,0x0F,0x0F,0x0F,0xEF,0xE7,0xE3,
  74. 0xE1,0xE0,0x00,0x0F,0x0F,0x0F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x0F,0x0F,0x0F,
  75. 0x0F,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  76. 0x00,0x00,0x00,0x00,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  77. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  78. 0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,
  79. 0x03,0x03,0x03,0x03,0x01,0xFE,0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xBF,0xFF,
  80. 0xEF,0xE7,0xF3,0xE1,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0x87,0x83,0x81,0xC0,0xE0,0xF0,
  81. 0xF8,0xFC,0xFC,0x7C,0xFF,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0xFF,0xFF,0xFF,
  82. 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  83. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  84. 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x1F,0x1F,0x1F,
  85. 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  86. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,
  87. 0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
  88. 0x0F,0x07,0x03,0x01,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x0F,0x07,
  89. 0x03,0x01,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,
  90. 0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  91. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  92. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  93. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  94. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  95. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  96. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  97. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  98. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  99. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  100. };
  101. unsigned char code show[]=
  102. {
  103. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x08,
  104. 0xA8,0xA8,0xA8,0xE8,0xA8,0xA8,0xA8,0xA8,0x28,0x00,0x00,0x00,0xC0,0x08,0x30,0x00,
  105. 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x20,0x20,0x20,0x20,0x78,0x20,
  106. 0xA0,0x20,0x78,0x20,0x20,0x20,0x20,0x00,0x00,0x60,0xA0,0xA0,0xA0,0xA0,0xA0,0xB8,
  107. 0xA8,0xA8,0xA8,0xA8,0xA0,0x60,0x00,0x00,0x00,0x10,0x60,0x00,0x40,0x40,0x40,0x40,
  108. 0xF8,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x40,0xF8,0x40,0x40,
  109. 0x40,0x40,0xC0,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x88,0x48,0x28,
  110. 0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  111. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0x00,
  112. 0x4F,0x2A,0x7A,0xAA,0xAA,0xAA,0x6A,0x2F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
  113. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x10,0x10,0x9F,0x91,0x51,0x31,
  114. 0x1F,0x31,0x51,0x91,0x9F,0x10,0x10,0x00,0x00,0x08,0x0A,0xFD,0x54,0x56,0x55,0x54,
  115. 0x55,0x56,0x54,0xFD,0x0A,0x08,0x00,0x00,0x02,0x82,0x7E,0x80,0x20,0x10,0x08,0x06,
  116. 0x01,0x02,0x04,0x08,0x30,0x00,0x00,0x00,0x3F,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,
  117. 0x12,0x12,0x1F,0xC0,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,
  118. 0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  119. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,
  120. 0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
  121. 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,
  122. 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,
  123. 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,
  124. 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
  125. 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,
  126. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  127. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x81,0xFF,0x81,0x03,
  128. 0x00,0x81,0xFF,0x89,0x9D,0xC3,0x00,0x81,0xFF,0x81,0x80,0x80,0xC0,0x00,0x80,0x00,
  129. 0x00,0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x7E,0x81,0x81,0x81,0x7E,0x00,0x4F,
  130. 0x89,0x89,0x89,0x71,0x00,0x0E,0xD1,0x91,0x91,0x7E,0x00,0xC6,0xA1,0x91,0x89,0x86,
  131. 0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x4F,0x89,0x89,0x89,0x71,0x00,0x03,0x01,0xF9,
  132. 0x07,0x01,0x00,0x00,0x82,0xFF,0x80,0x00,0x00,0x4F,0x89,0x89,0x89,0x71,0x00,0x00,
  133. 0x82,0xFF,0x80,0x00,0x00,0x4F,0x89,0x89,0x89,0x71,0x00,0x7E,0x89,0x89,0x8B,0x70,
  134. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  135. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  136. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  137. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  138. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  139. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  140. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  141. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  142. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  143. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0xFF,0x89,0x1D,0x03,
  144. 0x00,0x80,0xF8,0x27,0x3C,0xE0,0x80,0x81,0xE7,0x18,0xE7,0x81,0x00,0x00,0x80,0x00,
  145. 0x00,0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x7E,0x81,0x81,0x81,0x7E,0x00,0x4F,
  146. 0x89,0x89,0x89,0x71,0x00,0x0E,0xD1,0x91,0x91,0x7E,0x00,0xC6,0xA1,0x91,0x89,0x86,
  147. 0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x42,0x81,0x89,0x89,0x76,0x00,0x76,0x89,0x89,
  148. 0x89,0x76,0x00,0x0E,0xD1,0x91,0x91,0x7E,0x00,0x4F,0x89,0x89,0x89,0x71,0x00,0x0E,
  149. 0xD1,0x91,0x91,0x7E,0x00,0x0E,0xD1,0x91,0x91,0x7E,0x00,0x4F,0x89,0x89,0x89,0x71,
  150. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  151. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  152. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  153. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  154. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  155. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  156. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  157. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  158. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  159. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  160. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  161. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  162. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  163. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  164. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  165. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  166. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  167. };


  168.                                 // 8-bit 80XX Parallel
  169. void Write_Command_Para(unsigned char RegisterName)
  170. {
  171.         CS=0;
  172.         DC=0;
  173.         DBL=RegisterName;
  174.         W_R=0;
  175.         W_R=1;
  176.         CS=1;
  177. }
  178. //**************************************
  179. void Write_Data_Para(unsigned char RegisterValue)
  180. {
  181.         CS=0;
  182.         DC=1;
  183.         DBL= (unsigned char)RegisterValue;
  184.         W_R=0;
  185.         W_R=1;
  186.         CS=1;
  187. }

  188.                                 // 4-wire SPI
  189. void Write_Command_SPI(unsigned char Data)
  190. {
  191. unsigned char i;

  192.         CS=0;
  193.         DC=0;
  194.         for (i=0; i<8; i++)
  195.         {
  196.                 SCLK=0;
  197.                 SDIN=(Data&0x80)>>7;
  198.                 Data = Data << 1;
  199.         //        uDelay(1);
  200.                 SCLK=1;
  201.         //        uDelay(1);
  202.         }
  203. //        SCLK=0;
  204.         DC=1;
  205.         CS=1;
  206. }


  207. void Write_Data_SPI(unsigned char Data)
  208. {
  209. unsigned char i;

  210.         CS=0;
  211.         DC=1;
  212.         for (i=0; i<8; i++)
  213.         {
  214.                 SCLK=0;
  215.                 SDIN=(Data&0x80)>>7;
  216.                 Data = Data << 1;
  217.         //        uDelay(1);
  218.                 SCLK=1;
  219.         //        uDelay(1);
  220.         }
  221. //        SCLK=0;
  222.         DC=1;
  223.         CS=1;
  224. }

  225. void Write_Command(unsigned char RegisterName)
  226. {
  227.         if(mod_flag == 1)
  228.         {
  229.                 Write_Command_Para(RegisterName);
  230.         }
  231.         else
  232.         {
  233.                 Write_Command_SPI(RegisterName);
  234.         }
  235.         
  236.         //Delay(5);
  237.         
  238. }
  239. //**************************************
  240. void Write_Data(unsigned char RegisterValue)
  241. {
  242.         if(mod_flag == 1)
  243.         {
  244.                 Write_Data_Para(RegisterValue);
  245.         }
  246.         else
  247.         {
  248.                 Write_Data_SPI(RegisterValue);
  249.         }
  250.         
  251.         //Delay(5);
  252. }

  253. void Initial(void)
  254. {
  255. Write_Command(0xAE); /* display off */
  256. Write_Command(0xB3); /* set osc division */
  257. Write_Command(0x91); /*100 */
  258. Write_Command(0xA8); /* multiplex ratio */
  259. Write_Command(0x3f); /* duty = 1/64 */
  260. Write_Command(0xA2); /* set display offset --- */
  261. Write_Command(0x44); /* 72 */
  262. Write_Command(0xa1); /*set start line */
  263. Write_Command(0x00); /* ------ */
  264. Write_Command(0xA0); /* set segment remap------ */
  265. Write_Command(0x63); /* disable Nibble Remap */
  266. /* Horizontal Address Incremen */
  267. /* Scan from COM[N-1] to COM0 */
  268. /* Enable COM Split Odd Even */
  269. Write_Command(0xAD); /*Set Master Config DC/DC Converter*/
  270. Write_Command(0x02);
  271. Write_Command(0x81); /* set contract current */
  272. Write_Command(0x40);
  273. Write_Command(0x86); /* Set Full Current Range */
  274. Write_Command(0xBE); /* Set High Voltage Level of COM Pin */
  275. Write_Command(0x02); /* 0.53Vref */
  276. Write_Command(0xBF); /*set Low Voltage Level of SEG Pin */
  277. Write_Command(0x0e);
  278. Write_Command(0xA4); /* set display mode */
  279. /* Clear Screen */
  280. Write_Command(0x23); /*set graphic acceleration commmand */
  281. Write_Command(0x01);
  282. Write_Command(0x24); /* draw rectangle */
  283. Write_Command(0x00); /* Gray Scale Level 1 */
  284. Write_Command(0x00); /* Gray Scale Level 3 & 2 */
  285. Write_Command(0x3f); /* Gray Scale Level 3 & 2 */
  286. Write_Command(0x3f); /* Gray Scale Level 3 & 2 */
  287. Write_Command(0x3f); /* Gray Scale Level 3 & 2 0x00*/
  288. Write_Command(0xAF); /* display ON */
  289. }

  290. //void fill(unsigned char dat1,unsigned char dat2)
  291. //{
  292. //unsigned char x,y;
  293. //Write_Command(0x15); /* set column address */
  294. //Write_Command(0x00); /* set column start address */
  295. //Write_Command(0x3f); /* set column end address */
  296. //Write_Command(0x75); /* set row address */
  297. //Write_Command(0x00); /* set row start address */
  298. //Write_Command(0x3f); /* set row end address */
  299. //for(y=0;y<64;y++)
  300. //{
  301. //for(x=0;x<32;x++)
  302. //{
  303. //Write_Data(dat1);
  304. //Write_Data(dat2);
  305. //}
  306. //}
  307. //Delay(2);
  308. //}

  309. void Clear()
  310. {
  311. unsigned char x,y;
  312. Write_Command(0x15); /* set column address */
  313. Write_Command(0x00); /* set column start address */
  314. Write_Command(0x3f); /* set column end address */
  315. Write_Command(0x75); /* set row address */
  316. Write_Command(0x00); /* set row start address */
  317. Write_Command(0x4f); /* set row end address */
  318. for(y=0;y<64;y++)
  319. {
  320. for(x=0;x<80;x++)
  321. {
  322. Write_Data(0x00);
  323. }
  324. }
  325. }


  326. //方框
  327. void pane()
  328. {
  329.         unsigned char x,y;
  330.         // row0
  331.         Write_Command(0x15); /* set column address */
  332.         Write_Command(0x00); /* set column start address */
  333.         Write_Command(0x3f); /* set column end address */
  334.         Write_Command(0x75); /* set row address */
  335.         Write_Command(0); /* set row start address */
  336.         Write_Command(0); /* set row end address */
  337.         for(x=0;x<64;x++)
  338.         {
  339.         Write_Data(0xff);
  340.         }
  341.         Delay(2);
  342.         //row 1 - 62
  343.         for(y=1;y<63;y++)
  344.         {
  345.                 Write_Command(0x15); /* set column address */
  346.                 Write_Command(0x00); /* set column start address */
  347.                 Write_Command(0x3f); /* set column end address */
  348.                 Write_Command(0x75); /* set row address */
  349.                 Write_Command(y); /* set row start address */
  350.                 Write_Command(y); /* set row end address */
  351.                 Write_Data(0x0f);//低位在前
  352.                 for(x=1;x<63;x++)
  353.                 {
  354.                 Write_Data(0x00);
  355.                 }
  356.                 Write_Data(0xf0);//低位在前
  357.                 Delay(2);
  358.         }
  359.         
  360.         //row 63
  361.         Write_Command(0x15); /* set column address */
  362.         Write_Command(0x00); /* set column start address */
  363.         Write_Command(0x3f); /* set column end address */
  364.         Write_Command(0x75); /* set row address */
  365.         Write_Command(63); /* set row start address */
  366.         Write_Command(63); /* set row end address */
  367.         for(x=0;x<64;x++)
  368.         {
  369.         Write_Data(0xff);
  370.         }
  371.         Delay(2);
  372. }

  373. void pictrue()
  374. {
  375.         unsigned char x,y,z;
  376.         unsigned char value,temp_h,temp_l;
  377.         Write_Command(0x15); /* set column address */
  378. Write_Command(0x00); /* set column start address */
  379. Write_Command(0x3f); /* set column end address */
  380. Write_Command(0x75); /* set row address */
  381. Write_Command(0x00); /* set row start address */
  382. Write_Command(0x3f); /* set row end address */
  383.         
  384.         //x,y确定数组的位置,z确定数组的bit位数
  385.         for(y=0;y<8;y++)
  386.         {
  387.                 for(z=0;z<8;z++)
  388.                 {
  389.                         for(x=0;x<64;x++)
  390.                         {
  391.                                 //value = ((show[y*128 + x*2] & (0x01<<z))>>z)*0x0f + ((show[y*128 + x*2+1] & (0x01<<z))>>z)*0xf0;
  392.                                 temp_l = show1[y*128 + x*2] & (0x01<<z);
  393.                                 temp_h = show1[y*128 + x*2+1] & (0x01<<z);
  394.                                 if(temp_l > 0) value = 0x0f;
  395.                                 else value = 0x00;
  396.                                 if(temp_h > 0) value |= 0xf0;        
  397.                                 
  398.                                 Write_Data(value);
  399.                         }
  400.                 }
  401.         }
  402. }
  403. void pictrue1()
  404. {
  405.         unsigned char x,y,z;
  406.         unsigned char value,temp_h,temp_l;
  407.         Write_Command(0x15); /* set column address */
  408. Write_Command(0x00); /* set column start address */
  409. Write_Command(0x3f); /* set column end address */
  410. Write_Command(0x75); /* set row address */
  411. Write_Command(0x00); /* set row start address */
  412. Write_Command(0x3f); /* set row end address */
  413.         
  414.         //x,y确定数组的位置,z确定数组的bit位数
  415.         for(y=0;y<8;y++)
  416.         {
  417.                 for(z=0;z<8;z++)
  418.                 {
  419.                         for(x=0;x<64;x++)
  420.                         {
  421.                                 //value = ((show[y*128 + x*2] & (0x01<<z))>>z)*0x0f + ((show[y*128 + x*2+1] & (0x01<<z))>>z)*0xf0;
  422.                                 temp_l = show[y*128 + x*2] & (0x01<<z);
  423.                                 temp_h = show[y*128 + x*2+1] & (0x01<<z);
  424.                                 if(temp_l > 0) value = 0x0f;
  425.                                 else value = 0x00;
  426.                                 if(temp_h > 0) value |= 0xf0;        
  427.                                 
  428.                                 Write_Data(value);
  429.                         }
  430.                 }
  431.         }
  432. }
  433. //竖条纹
  434. void pane2()
  435. {
  436. unsigned char x,y;
  437. Write_Command(0x15); /* set column address */
  438. Write_Command(0x00); /* set column start address */
  439. Write_Command(0x3f); /* set column end address */
  440. Write_Command(0x75); /* set row address */
  441. Write_Command(0x00); /* set row start address */
  442. Write_Command(0x3f); /* set row end address */
  443. for(y=0;y<64;y++)
  444. {
  445. for(x=0;x<64;x++)
  446. {
  447. Write_Data(0x0f);
  448. }
  449. }
  450. Delay(2);
  451. }

  452. //横条纹
  453. void pane1()
  454. {
  455. unsigned char x,y;
  456. Write_Command(0x15); /* set column address */
  457. Write_Command(0x00); /* set column start address */
  458. Write_Command(0x3f); /* set column end address */
  459. Write_Command(0x75); /* set row address */
  460. Write_Command(0x00); /* set row start address */
  461. Write_Command(0x3f); /* set row end address */

  462. for(y=0;y<64;y++)
  463. {
  464. for(x=0;x<64;x++)
  465. {
  466. Write_Data(0xff);
  467. }

  468. for(x=0;x<64;x++)
  469. {
  470. Write_Data(0x00);
  471. }
  472. }
  473. Delay(1);
  474. }

  475. void snow()
  476. {
  477. unsigned char x,y;
  478. Write_Command(0x15); /* set column address */
  479. Write_Command(0x00); /* set column start address */
  480. Write_Command(0x3f); /* set column end address */
  481. Write_Command(0x75); /* set row address */
  482. Write_Command(0x00); /* set row start address */
  483. Write_Command(0x3f); /* set row end address */
  484. for(y=0;y<32;y++)
  485. {
  486.         for(x=0;x<64;x++)
  487.         {
  488.         Write_Data(0x0f);
  489.         }
  490.         for(x=0;x<64;x++)
  491.         {
  492.         Write_Data(0xf0);
  493.         }
  494. }
  495. Delay(1);
  496. }

  497. void Fill_Block(unsigned char Data, unsigned char a, unsigned char b, unsigned char c,unsigned char d)
  498. {
  499.         unsigned char i,j;
  500.         Write_Command(0x15); /* set column address */
  501.         Write_Command(a); /* set column start address */
  502.         Write_Command(b); /* set column end address */
  503.         Write_Command(0x75); /* set row address */
  504.         Write_Command(c); /* set row start address */
  505.         Write_Command(d); /* set row end address */
  506.                 for(i=0;i<(d-c+1);i++)
  507.         {
  508.                 for(j=0;j<(b-a+1);j++)
  509.                 {
  510.                         Write_Data(Data);
  511.                         Write_Data(Data);
  512.                 }
  513.         }         
  514.         Delay(2);
  515. }

  516. void Grayscale()
  517. {
  518.              Fill_Block(0x11,0x00,0x3f,0x00,0x3f);
  519.                         /* Level 16 => Column 1~8 */
  520.   //      Fill_Block(0xCF,0x00,0x03,0x00,0x3f);
  521.         /* Level 15 => Column 9~16*/
  522. //        Fill_Block(0xEE,0x04,0x07,0x00,0x3f);
  523.         /* Level 14 => Column 17~24*/
  524. //        Fill_Block(0xDD,0x08,0x0B,0x00,0x3f);
  525.         /* Level 13 => Column 25~32*/
  526. //       Fill_Block(0xCC,0x0C,0x0F,0x00,0x3f);
  527.         /* Level 12 => Column 33~40*/
  528.   //      Fill_Block(0xBB,0x10,0x13,0x00,0x3f);
  529.         /* Level 11 => Column 41~48*/
  530. //        Fill_Block(0xAA,0x14,0x17,0x00,0x3f);
  531.         /* Level 10 => Column 48~56*/
  532. //        Fill_Block(0x99,0x18,0x1B,0x00,0x3f);
  533.         /* Level 9 => Column 57~64*/
  534. //       Fill_Block(0x88,0x1C,0x1F,0x00,0x3f);
  535.         /* Level 8 => Column 65~72*/
  536. //       Fill_Block(0x77,0x20,0x23,0x00,0x3f);
  537.         /* Level 7 => Column 73~80*/
  538. //       Fill_Block(0x66,0x24,0x27,0x00,0x3f);
  539.         /* Level 6 => Column 81~86*/
  540. //        Fill_Block(0x55,0x28,0x2B,0x00,0x3f);
  541.         /* Level 5 => Column 87~94*/
  542. //        Fill_Block(0x44,0x2C,0x2F,0x00,0x3f);
  543.         /* Level 4 => Column 95~104*/
  544. //        Fill_Block(0x33,0x30,0x33,0x00,0x3f);
  545.         /* Level 3 => Column 105~112*/
  546.   //      Fill_Block(0x22,0x34,0x37,0x00,0x3f);
  547.         /* Level 2 => Column 113~120*/
  548. //       Fill_Block(0x11,0x38,0x3B,0x00,0x3f);
  549.         /* Level 1 => Column 121~128*/
  550. //       Fill_Block(0x00,0x3C,0x3f,0x00,0x3f);
  551.         
  552. }
  553. void Grayscale2()
  554. {
  555.              Fill_Block(0x88,0x00,0x3f,0x00,0x3f);
  556. }
  557.   void Grayscale3()
  558. {
  559.              Fill_Block(0xff,0x00,0x3f,0x00,0x3f);
  560. }
  561. //***************************************
  562. void main(void)
  563. {
  564.         key_stop = 1;
  565.         key_mod = 1;
  566.         Delay(5);
  567.         RES=0;
  568.         Delay(10);
  569.         RES=1;


  570. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:64765 发表于 2017-5-22 16:35 | 只看该作者
快乐下载,谢谢楼主分享。
回复

使用道具 举报

板凳
ID:329571 发表于 2018-6-1 19:42 | 只看该作者

快乐下载,谢谢楼主分享
回复

使用道具 举报

地板
ID:95436 发表于 2018-12-20 15:26 | 只看该作者
谢谢楼主分享,正需要呢.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表