找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 7469|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机st7920并行方式驱动12864液晶程序

[复制链接]
跳转到指定楼层
楼主
ID:51773 发表于 2013-7-19 02:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. /******************************************************************************
  2. 模块名称:st7920 并行方式驱动12864液晶驱动
  3. 功能概要:st7920显示驱动
  4. CPU: stc89c58   主频:11.0592M
  5. 液晶型号:       生产厂家:        驱动芯片:st7920
  6. ******************************************************************************/
  7. #include <reg52.h>

  8. #define uint  unsigned int
  9. #define uchar unsigned char
  10. #define x1    0x80
  11. #define x2    0x88
  12. #define y     0x80
  13. #define comm  0
  14. #define dat   1

  15. sbit RS = P2^1;   //H=data; L=command;
  16. sbit RW = P2^2;   //H=read; L=write;
  17. sbit  E = P2^4;   //input enable;
  18. sbit PSB= P2^5;   //H=并口; L=串口;
  19. sbit RST= P2^3;   //Reset Signal 低电平有效

  20. sbit busy=P0^7;   //lcd busy bit

  21. void wr_lcd (uchar dat_comm,uchar content);
  22. void chk_busy (void);
  23. void delay (uint us);

  24. uchar code tab1[]={
  25. "本系列中文模块内"
  26. "任意位置反白显示"
  27. "置二级字库,可在"
  28. "使用更方便更灵活"
  29. };

  30. uchar code tab31[]={
  31. "金鹏科技有限公司"
  32. "Golden Palm TECH"
  33. };
  34. uchar code tab32[]={
  35. /*--  调入了一幅图像:F:\梁\画图\HOCO12832.bmp  --*/
  36. /*--  宽度x高度=128x32  --*/
  37. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  38. 0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  39. 0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
  40. 0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00,
  41. 0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0,
  42. 0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0,
  43. 0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60,
  44. 0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30,
  45. 0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90,
  46. 0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90,
  47. 0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0,
  48. 0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50,
  49. 0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90,
  50. 0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80,
  51. 0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
  52. 0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,
  53. 0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00,
  54. 0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00,
  55. 0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00,
  56. 0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00,
  57. 0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00,
  58. 0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00,
  59. 0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00,
  60. 0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00,
  61. 0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00,
  62. 0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,
  63. 0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00,
  64. 0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00,
  65. 0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00,
  66. 0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00,
  67. 0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00,
  68. 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  69. };

  70. uchar code tab5[]={
  71. /*--  调入了一幅图像:F:\梁\画图\COCK.bmp  --*/
  72. /*--  宽度x高度=128x64  --*/
  73. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  74. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  75. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  76. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  77. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  78. 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,
  79. 0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,
  80. 0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,
  81. 0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,
  82. 0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,
  83. 0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,
  84. 0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,
  85. 0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,
  86. 0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,
  87. 0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,
  88. 0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,
  89. 0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,
  90. 0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,
  91. 0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,
  92. 0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,
  93. 0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,0x00,
  94. 0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
  95. 0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
  96. 0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,
  97. 0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,
  98. 0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,
  99. 0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,
  100. 0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
  101. 0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,
  102. 0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
  103. 0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
  104. 0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
  105. 0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
  106. 0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,
  107. 0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,
  108. 0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,
  109. 0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
  110. 0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
  111. 0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,
  112. 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,
  113. 0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,
  114. 0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
  115. 0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
  116. 0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
  117. 0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  118. 0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  119. 0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  120. 0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  121. 0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  122. 0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  123. 0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  124. 0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  125. 0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  126. 0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  127. 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  128. 0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  129. 0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  130. 0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  131. 0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  132. 0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  133. 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  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. };


  138. /******************************************************************************************
  139. * 函数名称    :
  140. * 功能描述    :
  141. * 参数        :  参数名称:    输入/输出?  类型      描述
  142. *
  143. * 返回值      :
  144. * 作者        :
  145. * 创建日期    :2006-12-19
  146. * 全局变量    :
  147. * 全局静态变量:
  148. * 局部静态变量:
  149. *----------------------------------------修改历史------------------------------------------
  150. * 当前版本    :              修改人:                  修改日期:
  151. * 修改说明    :
  152. ******************************************************************************************/
  153. void init_lcd (void)
  154. {
  155.     RST = 1;
  156.     PSB = 1;
  157.     wr_lcd(comm,0x30);  /*30---基本指令动作*/  
  158.     wr_lcd(comm,0x01);  /*清屏,地址指针指向00H*/
  159.     wr_lcd(comm,0x06);  /*光标的移动方向*/
  160.     wr_lcd(comm,0x0c);  /*开显示,关游标*/
  161. }

  162. /******************************************************************************************
  163. * 函数名称    :chn_disp
  164. * 功能描述    : 显示汉字或字符
  165. * 参数        :  参数名称:    输入/输出?  类型      描述
  166. *
  167. * 返回值      :
  168. * 作者        :
  169. * 创建日期    :2006-12-19
  170. * 全局变量    :
  171. * 全局静态变量:
  172. * 局部静态变量:
  173. *----------------------------------------修改历史------------------------------------------
  174. * 当前版本    :              修改人:                  修改日期:
  175. * 修改说明    :
  176. ******************************************************************************************/
  177. void chn_disp(uchar code *chn)
  178. {
  179.     uchar i,j;
  180.     wr_lcd(comm,0x30);
  181.     wr_lcd(comm,0x80);
  182.     for(j=0;j<4;j++)
  183.     {
  184.         for(i=0;i<16;i++)
  185.         wr_lcd(dat,chn[j*16+i]);
  186.     }
  187. }

  188. /******************************************************************************************
  189. * 函数名称    :chn_disp1
  190. * 功能描述    : 上半屏显示汉字或字符
  191. * 参数        :  参数名称:    输入/输出?  类型      描述
  192. *
  193. * 返回值      :
  194. * 作者        :
  195. * 创建日期    :2006-12-19
  196. * 全局变量    :
  197. * 全局静态变量:
  198. * 局部静态变量:
  199. *----------------------------------------修改历史------------------------------------------
  200. * 当前版本    :              修改人:                  修改日期:
  201. * 修改说明    :
  202. ******************************************************************************************/
  203. void chn_disp1(uchar code *chn)
  204. {
  205.     uchar i,j;
  206.     wr_lcd(comm,0x30);
  207.     wr_lcd(comm,0x80);
  208.     j=0;
  209.     for(i=0;i<16;i++)
  210.     wr_lcd(dat,chn[j*16+i]);
  211.     wr_lcd(comm,0x90);
  212.     j=1;
  213.     for(i=0;i<16;i++)
  214.     wr_lcd(dat,chn[j*16+i]);
  215. }

  216. /******************************************************************************************
  217. * 函数名称    :img_disp
  218. * 功能描述    : 显示图形
  219. * 参数        :  参数名称:    输入/输出?  类型      描述
  220. *
  221. * 返回值      :
  222. * 作者        :
  223. * 创建日期    :2006-12-19
  224. * 全局变量    :
  225. * 全局静态变量:
  226. * 局部静态变量:
  227. *----------------------------------------修改历史------------------------------------------
  228. * 当前版本    :              修改人:                  修改日期:
  229. * 修改说明    :
  230. ******************************************************************************************/
  231. void img_disp(uchar code *img)
  232. {
  233.     uchar i,j;
  234.     for(j=0;j<32;j++)
  235.     {
  236.         for(i=0;i<8;i++)
  237.         {
  238.         wr_lcd(comm,0x34);
  239.         wr_lcd(comm,y+j);
  240.         wr_lcd(comm,x1+i);
  241.         wr_lcd(comm,0x30);
  242.         wr_lcd(dat,img[j*16+i*2]);
  243.         wr_lcd(dat,img[j*16+i*2+1]);
  244.         }
  245.     }
  246.     for(j=32;j<64;j++)
  247.     {
  248.         for(i=0;i<8;i++)
  249.         {
  250.         wr_lcd(comm,0x34);
  251.         wr_lcd(comm,y+j-32);
  252.         wr_lcd(comm,x2+i);
  253.         wr_lcd(comm,0x30);
  254.         wr_lcd(dat,img[j*16+i*2]);
  255.         wr_lcd(dat,img[j*16+i*2+1]);
  256.         }
  257.     }
  258.     wr_lcd (comm,0x36);
  259. }

  260. /******************************************************************************************
  261. * 函数名称    :img_disp1
  262. * 功能描述    : 下半屏显示图形
  263. * 参数        :  参数名称:    输入/输出?  类型      描述
  264. *
  265. * 返回值      :
  266. * 作者        :
  267. * 创建日期    :2006-12-19
  268. * 全局变量    :
  269. * 全局静态变量:
  270. * 局部静态变量:
  271. *----------------------------------------修改历史------------------------------------------
  272. * 当前版本    :              修改人:                  修改日期:
  273. * 修改说明    :
  274. ******************************************************************************************/
  275. void img_disp1(uchar code *img)
  276. {
  277.     uchar i,j;
  278.     for(j=0;j<32;j++)
  279.     {
  280.         for(i=0;i<8;i++)
  281.         {
  282.         wr_lcd(comm,0x34);
  283.         wr_lcd(comm,y+j);
  284.         wr_lcd(comm,x2+i);
  285.         wr_lcd(comm,0x30);
  286.         wr_lcd(dat,img[j*16+i*2]);
  287.         wr_lcd(dat,img[j*16+i*2+1]);
  288.         }
  289.     }
  290.     wr_lcd(comm,0x36);
  291. }

  292. /******************************************************************************************
  293. * 函数名称    :lat_disp
  294. * 功能描述    : 显示点阵
  295. * 参数        :  参数名称:    输入/输出?  类型      描述
  296. *
  297. * 返回值      :
  298. * 作者        :
  299. * 创建日期    :2006-12-19
  300. * 全局变量    :
  301. * 全局静态变量:
  302. * 局部静态变量:
  303. *----------------------------------------修改历史------------------------------------------
  304. * 当前版本    :              修改人:                  修改日期:
  305. * 修改说明    :
  306. ******************************************************************************************/
  307. void lat_disp(uchar data1,uchar data2)
  308. {
  309.     uchar i,j,k,x;
  310.     x=x1;
  311.     for(k=0;k<2;k++)
  312.     {
  313.         for(j=0;j<16;j++)
  314.         {
  315.         for(i=0;i<8;i++)
  316.         {
  317.             wr_lcd(comm,0x34);
  318.             wr_lcd(comm,y+j*2);
  319.             wr_lcd(comm,x+i);
  320.             wr_lcd(comm,0x30);
  321.             wr_lcd(dat,data1);
  322.             wr_lcd(dat,data1);
  323.         }
  324.         for(i=0;i<8;i++)
  325.         {
  326.             wr_lcd(comm,0x34);
  327.             wr_lcd(comm,y+j*2+1);
  328.             wr_lcd(comm,x+i);
  329.             wr_lcd(comm,0x30);
  330.             wr_lcd(dat,data2);
  331.             wr_lcd(dat,data2);
  332.         }
  333.         }
  334.         x=x2;
  335.     }
  336.     wr_lcd(comm,0x36);
  337. }

  338. /******************************************************************************************
  339. * 函数名称    :con_disp
  340. * 功能描述    : 当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl
  341. * 参数        :  参数名称:    输入/输出?  类型      描述
  342. *
  343. * 返回值      :
  344. * 作者        :
  345. * 创建日期    :2006-12-19
  346. * 全局变量    :
  347. * 全局静态变量:
  348. * 局部静态变量:
  349. *----------------------------------------修改历史------------------------------------------
  350. * 当前版本    :              修改人:                  修改日期:
  351. * 修改说明    :
  352. ******************************************************************************************/
  353. void con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
  354. {
  355.     uchar i,j;
  356.     for(j=0;j<yl;j++)
  357.     {
  358.         for(i=0;i<xl;i++)
  359.         {
  360.         wr_lcd(comm,0x34);
  361.         wr_lcd(comm,y0+j);
  362.         wr_lcd(comm,x0+i);
  363.         wr_lcd(comm,0x30);
  364.         wr_lcd(dat,data1);
  365.         wr_lcd(dat,data2);
  366.         }
  367.     }
  368.     wr_lcd(comm,0x36);
  369. }

  370. /******************************************************************************************
  371. * 函数名称    :clrram
  372. * 功能描述    : 清DDRAM
  373. * 参数        :  参数名称:    输入/输出?  类型      描述
  374. *
  375. * 返回值      :
  376. * 作者        :
  377. * 创建日期    :2006-12-19
  378. * 全局变量    :
  379. * 全局静态变量:
  380. * 局部静态变量:
  381. *----------------------------------------修改历史------------------------------------------
  382. * 当前版本    :              修改人:                  修改日期:
  383. * 修改说明    :
  384. ******************************************************************************************/
  385. void clrram(void)
  386. {
  387.     wr_lcd(comm,0x30);
  388.     wr_lcd(comm,0x01);
  389. }

  390. /******************************************************************************************
  391. * 函数名称    :wr_lcd
  392. * 功能描述    :
  393. * 参数        :  参数名称:    输入/输出?  类型      描述
  394. *
  395. * 返回值      :
  396. * 作者        :
  397. * 创建日期    :2006-12-19
  398. * 全局变量    :
  399. * 全局静态变量:
  400. * 局部静态变量:
  401. *----------------------------------------修改历史------------------------------------------
  402. * 当前版本    :              修改人:                  修改日期:
  403. * 修改说明    :
  404. ******************************************************************************************/
  405. void wr_lcd(uchar dat_comm,uchar content)
  406. {
  407.     chk_busy ();
  408.     if(dat_comm)
  409.     {
  410.         RS = 1;   //data
  411.         RW = 0;   //write
  412.     }
  413.     else
  414.     {
  415.         RS = 0;   //command
  416.         RW = 0;   //write
  417.     }
  418.     P0=content;   //output data or comm
  419.     E = 1;
  420.     ;
  421.     E = 0;
  422. }
  423. /******************************************************************************************
  424. * 函数名称    :chk_busy
  425. * 功能描述    :
  426. * 参数        :  参数名称:    输入/输出?  类型      描述
  427. *
  428. * 返回值      :
  429. * 作者        :
  430. * 创建日期    :2006-12-19
  431. * 全局变量    :
  432. * 全局静态变量:
  433. * 局部静态变量:
  434. *----------------------------------------修改历史------------------------------------------
  435. * 当前版本    :              修改人:                  修改日期:
  436. * 修改说明    :
  437. ******************************************************************************************/
  438. void chk_busy(void)
  439. {
  440.     P0 = 0xff;
  441.     RS = 0;
  442.     RW = 1;
  443.     E = 1;
  444.     while(busy==1);
  445.     E = 0;
  446. }
  447. /******************************************************************************************
  448. * 函数名称    :
  449. * 功能描述    :
  450. * 参数        :  参数名称:    输入/输出?  类型      描述
  451. *
  452. * 返回值      :
  453. * 作者        :
  454. * 创建日期    :2006-12-19
  455. * 全局变量    :
  456. * 全局静态变量:
  457. * 局部静态变量:
  458. *----------------------------------------修改历史------------------------------------------
  459. * 当前版本    :              修改人:                  修改日期:
  460. * 修改说明    :
  461. ******************************************************************************************/
  462. void delay(uint us)   //delay time
  463. {
  464.     while(us--);
  465. }
  466. /******************************************************************************************
  467. * 函数名称    :
  468. * 功能描述    :
  469. * 参数        :  参数名称:    输入/输出?  类型      描述
  470. *
  471. * 返回值      :
  472. * 作者        :
  473. * 创建日期    :2006-12-19
  474. * 全局变量    :
  475. * 全局静态变量:
  476. * 局部静态变量:
  477. *----------------------------------------修改历史------------------------------------------
  478. * 当前版本    :              修改人:                  修改日期:
  479. * 修改说明    :
  480. ******************************************************************************************/
  481. void delay1(uint ms)
  482. {
  483.     uint i,j;
  484.     for(i=0;i<ms;i++)
  485.     for(j=0;j<15;j++)
  486.     delay(1);
  487. }

  488. /******************************************************************************************
  489. * 函数名称    :
  490. * 功能描述    :
  491. * 参数        :  参数名称:    输入/输出?  类型      描述
  492. *
  493. * 返回值      :
  494. * 作者        :
  495. * 创建日期    :2006-12-19
  496. * 全局变量    :
  497. * 全局静态变量:
  498. * 局部静态变量:
  499. *----------------------------------------修改历史------------------------------------------
  500. * 当前版本    :              修改人:                  修改日期:
  501. * 修改说明    :
  502. ******************************************************************************************/
  503. void main()
  504. {
  505.     SP=0x5f;
  506.     init_lcd();
  507.     while(1)
  508.     {
  509.         lat_disp(0x00,0x00);
  510.         chn_disp(tab1);
  511.         con_disp(0xff,0xff,0x8c,0x80,2,16);
  512.         delay1(8000);
  513.         clrram();
  514.         lat_disp(0xcc,0xcc);
  515.         delay1(8000);
  516.         lat_disp(0x00,0x00);
  517.         chn_disp1(tab31);
  518.         img_disp1(tab32);
  519.         delay1 (8000);
  520.         clrram();
  521.         lat_disp (0xff,0x00);
  522.         delay1(8000);
  523.         img_disp(tab5);
  524.         delay1(8000);
  525.     }
  526. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
ID:104581 发表于 2022-8-20 09:18 | 只看该作者
看看是不是我用的程序
先行谢过了
回复

举报

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

本版积分规则

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

Powered by 单片机教程网

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