51单片机+LCD12864串行显示程序

[复制链接]
查看2 | 回复0 | 2021-6-13 00:34:44 | 显示全部楼层 |阅读模式
部分程序源码:完整请下载本文尾部的附件
  1. /********************************************************************
  2. * 名称 : delay()
  3. * 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。
  4. * 输入 : t
  5. * 输出 : 无
  6. ***********************************************************************/
  7. void delay(unsigned int t)
  8. {
  9.     unsigned int i,j;
  10.     for(i=0; i<t;  i++)
  11.     for(j=0; j<10; j++);
  12. }

  13. /********************************************************************
  14. * 名称 : sendbyte()
  15. * 功能 : 按照液晶的串口通信协议,发送数据
  16. * 输入 : zdata
  17. * 输出 : 无
  18. ***********************************************************************/
  19. void sendbyte(unsigned char zdata)
  20. {
  21.     unsigned int i;
  22.     for(i=0; i<8; i++)
  23.     {
  24.         if((zdata << i) & 0x80)
  25.         {
  26.             SID = 1;
  27.         }
  28.         else
  29.         {
  30.             SID = 0;
  31.         }
  32.         SCLK = 0;
  33.         SCLK = 1;
  34.     }
  35. }

  36. /********************************************************************
  37. * 名称 : write_com()
  38. * 功能 : 写串口指令
  39. * 输入 : cmdcode
  40. * 输出 : 无
  41. ***********************************************************************/
  42. void write_com(unsigned char cmdcode)
  43. {
  44.     CS = 1;
  45.     sendbyte(0xf8);
  46.     sendbyte(cmdcode & 0xf0);
  47.     sendbyte((cmdcode << 4) & 0xf0);
  48.     delay(2);
  49. }

  50. /********************************************************************
  51. * 名称 : write_data()
  52. * 功能 : 写串口指令
  53. * 输入 : cmdcode
  54. * 输出 : 无
  55. ***********************************************************************/
  56. void write_data(unsigned char Dispdata)
  57. {
  58.     CS = 1;
  59.     sendbyte(0xfa);
  60.     sendbyte(Dispdata & 0xf0);
  61.     sendbyte((Dispdata << 4) & 0xf0);
  62.     delay(2);
  63. }

  64. /********************************************************************
  65. * 名称 : lcdinit()
  66. * 功能 : 初始化函数
  67. * 输入 : cmdcode
  68. * 输出 : 无
  69. ***********************************************************************/
  70. void lcdinit()
  71. {  
  72. //    RST = 0;
  73. //    delay(100);
  74. //    RST = 1;
  75. //    delay(20000);
  76.     write_com(0x30);
  77.     delay(50);
  78.     write_com(0x0c);
  79.     delay(50);
  80. }
复制代码
完整代码: 串行12864.zip (26 KB, 售价: 2 工控币)
回复

使用道具 举报

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

本版积分规则