找回密码
 立即注册

QQ登录

只需一步,快速开始

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

液晶12864不知道为什么不能正常显示

[复制链接]
跳转到指定楼层
楼主
小白学液晶,在课本上照写的代码,不知道为什么不能正常显示,有没有大神可以帮忙看一下,这代码有没有问题
十分感谢
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #include<stdlib.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define LCD_data P0
  7. sbit LCD_RS=P3^5;
  8. sbit LCD_RW=P3^6;
  9. sbit LCD_EN=P3^4;
  10. sbit LCD_PSB=P3^7;
  11. sbit wela=P2^6;
  12. sbit dula=P2^7;
  13. uchar dis1[10];
  14. uchar code dis2[]={"www.txmcu.com"};
  15. uchar code dis3[]={"天祥电子"};
  16. uchar code dis4[]={"--------"};
  17. void delay(uint x)
  18. {
  19.         uint i,j;
  20.         for(j=0;j<x;j++)
  21.                 for(i=0;i<110;i++);
  22. }

  23. void write_cmd(uchar cmd)
  24. {
  25.         LCD_RS=0;
  26.         LCD_RW=0;
  27.         LCD_EN=0;
  28.         P0=cmd;
  29.         delay(5);
  30.         LCD_EN=1;
  31.         delay(5);
  32.         LCD_EN=0;
  33. }

  34. void write_dat(uchar dat)
  35. {
  36.         LCD_RS=1;
  37.         LCD_RW=0;
  38.         LCD_EN=0;
  39.         P0=dat;
  40.         delay(5);
  41.         LCD_EN=1;
  42.         delay(5);
  43.         LCD_EN=0;
  44. }

  45. void lcd_pos(uchar x,uchar y)
  46. {
  47.         uchar pos;
  48.         if(x==0)
  49.         {x=0x80;}
  50.         else if(x==1)
  51.         {x=0x90;}
  52.         else if(x==2)
  53.         {x=0x88;}
  54.         else if(x==3)
  55.         {x=0x98;}
  56.         pos=x+y;
  57.         write_cmd(pos);
  58. }

  59. void makerand()
  60. {
  61.         uint ran;
  62.         ran=rand();
  63.         dis1[0]=ran/10000+0x30;
  64.         dis1[1]=ran%10000/1000+0x30;
  65.         dis1[2]=ran%1000/100+0x30;
  66.         dis1[3]=ran%100/10+0x30;
  67.         dis1[4]=ran%10+0x30;
  68.         ran=rand();
  69.         dis1[5]=ran/10000+0x30;
  70.         dis1[6]=ran%10000/1000+0x30;
  71.         dis1[7]=ran%1000/100+0x30;
  72.         dis1[8]=ran%100/10+0x30;
  73.         dis1[9]=ran%10+0x30;
  74. }

  75. void lcd_init()
  76. {
  77.         LCD_PSB=1;
  78.         write_cmd(0x30);
  79.         delay(5);
  80.         write_cmd(0x0C);
  81.         delay(5);
  82.         write_cmd(0x01);
  83.         delay(5);
  84. }

  85. main()
  86. {
  87.         uchar i;
  88.         wela=0;
  89.         dula=0;
  90.         delay(10);
  91.         lcd_init();
  92.         lcd_pos(1,0);
  93.         i=0;
  94.         while(dis2[i]!='\0')
  95.         {
  96.                 write_dat(dis2[i]);
  97.                 i++;
  98.         }
  99.         lcd_pos(2,0);
  100.         i=0;
  101.         while(dis3[i]!='\0')
  102.         {
  103.                 write_dat(dis3[i]);
  104.                 i++;
  105.         }
  106.         lcd_pos(3,0);
  107.         i=0;
  108.         while(dis4[i]!='\0')
  109.         {
  110.                 write_dat(dis4[i]);
  111.                 i++;
  112.         }
  113.         while(1)
  114.         {
  115.                 lcd_pos(0,0);
  116.                 makerand();
  117.                 for(i=0;i<10;i++)
  118.                 {
  119.                         write_dat(dis1[i]);
  120.                 }
  121.         }
  122. }
复制代码


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

使用道具 举报

沙发
ID:111634 发表于 2018-8-23 16:43 | 只看该作者
本帖最后由 zl2168 于 2018-8-23 22:00 编辑

LCD12864显示屏显示汉字
Proteus仿真一下,确认有效。
实验25 LCD12864显示屏显示.rar (60.48 KB, 下载次数: 19)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行,可演示,可观测,程序语句条条有注解。
回复

使用道具 举报

板凳
ID:389489 发表于 2018-8-24 08:37 | 只看该作者
p0口驱动能力有限,这个问题困扰我太久,之前所有屏到我手里都不显示,就是这原因

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:389564 发表于 2018-8-24 10:33 | 只看该作者
不是很懂 来学习的
回复

使用道具 举报

5#
ID:382243 发表于 2018-8-24 11:37 | 只看该作者
接口对不对
回复

使用道具 举报

6#
ID:389621 发表于 2018-8-24 13:40 | 只看该作者

不是很懂 来学习的
回复

使用道具 举报

7#
ID:98526 发表于 2018-8-24 17:18 | 只看该作者
看看液晶屏后面的串并口跳线端是不是直接被短接成串行通信了。应该是有个S P字样的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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