找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD1602洞洞板测试显示正常,PCB上显示乱码

[复制链接]
跳转到指定楼层
楼主
本帖最后由 yinnan128 于 2021-7-1 14:23 编辑

用洞洞焊的测试电路,LCD显示正常,然后焊在板子上,不是显示乱码了,要不就不显示。是不是LCD程序写的时序不对呢
PCB是烧录器5V升压12V,然后12V经7805降压给单片机供电,是不是有电磁干扰?洞洞板是直接烧录器供电。看PCB单片机引脚没有虚焊,排除焊接问题
  1. void write_nibble_lcd(unsigned char Val) //使用的是4位数据传输
  2. {
  3.         LCDEN = 1;   //写入时序
  4.         D0 = D1 = D2 = D3 = 0;
  5.         if(Val & 0x01)
  6.         D0 = 1;
  7.         if(Val & 0x02)
  8.         D1 = 1;
  9.         if(Val & 0x04)
  10.         D2 = 1;
  11.         if(Val & 0x08)
  12.         D3 = 1;
  13.         LCDEN = 0;   //使能清零
  14. }

  15. void write_lcd(unsigned char Val) //发送一个字符
  16. {
  17.         write_nibble_lcd(Val >> 4);
  18.         write_nibble_lcd(Val);
  19.         delay_ms(1);        
  20. }

  21. /******************************初始化LCD************************************/
  22. void lcd_init(void)
  23. {
  24.                 LCDRS = 0;  //写入命令   0 选择发送命令    1 选择发送数据
  25.                 write_nibble_lcd(0x03);        
  26.                 delay_ms(1);
  27.                 write_nibble_lcd(0x02);        
  28.                 delay_ms(1);
  29.                 write_lcd(0x28);    //在四位线下的初始化
  30.                 write_lcd(0x06);    //光标右移,显示不移
  31.                 write_lcd(0x0E);    //显示开,光标开,光标不闪烁
  32.                 write_lcd(0x01);    //清屏
  33. }
  34. /*******************************写命令************************************/
  35. void write_com(u8 com)
  36. {
  37.                 LCDRS = 0;
  38.                 write_lcd(com);
  39.           delay_ms(2);
  40.    
  41. }
  42. /*******************************写数据***********************************/
  43. void write_data(u8 date)
  44. {
  45.                 LCDRS = 1;  //写入数据   0 选择发送命令    1 选择发送数据
  46.                 write_lcd(date);
  47.           delay_ms(2);
复制代码




51hei图片_20210630164822.jpg (131.07 KB, 下载次数: 34)

51hei图片_20210630164822.jpg

51hei图片_20210630164751.jpg (113.26 KB, 下载次数: 49)

51hei图片_20210630164751.jpg

51hei图片_20210630164744.jpg (107.2 KB, 下载次数: 57)

51hei图片_20210630164744.jpg

1625120192(1).png (9.05 KB, 下载次数: 51)

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

使用道具 举报

沙发
ID:161164 发表于 2021-7-1 03:07 | 只看该作者
如果想排除是否干扰
把显示正常的5V+接到7805的输出+看看
回复

使用道具 举报

板凳
ID:608872 发表于 2021-7-1 10:44 | 只看该作者
lkc8210 发表于 2021-7-1 03:07
如果想排除是否干扰
把显示正常的5V+接到7805的输出+看看

昨晚为了检查是不是PCB、5V升压12V影响。直接烧录器5V跳过升压电路,供电单片机和LCD,结果显示正常了,就是ADC读取不了电压。
回复

使用道具 举报

地板
ID:18297 发表于 2021-7-1 13:27 | 只看该作者
有时候硬件电路也很重要,硬件的问题很多是通过软件无法解决的,必须解决硬件问题。
硬件和软件需要匹配才行。
回复

使用道具 举报

5#
ID:879348 发表于 2021-7-1 13:32 | 只看该作者
这很明显数据线高4位有一条没接,因为初始化只要低4位,所以你初始化成功,显示字符需要8位
回复

使用道具 举报

6#
ID:608872 发表于 2021-7-1 14:26 | 只看该作者
wufa1986 发表于 2021-7-1 13:32
这很明显数据线高4位有一条没接,因为初始化只要低4位,所以你初始化成功,显示字符需要8位

LCD接线图已经补上,数据确实只接了4条,没看到过需要5线的相关资料,能提供地址吗?为什么洞洞4线也能显示正常呢?并且ADC测量电压按键控制改变数值什么的都没问题
回复

使用道具 举报

7#
ID:608872 发表于 2021-7-1 14:28 | 只看该作者
zjjhtony 发表于 2021-7-1 13:27
有时候硬件电路也很重要,硬件的问题很多是通过软件无法解决的,必须解决硬件问题。
硬件和软件需要匹配才 ...

目前怀疑是12V转5V的7805输出滤波没做好,今晚把滤波加强看看结果
回复

使用道具 举报

8#
ID:390416 发表于 2021-7-6 20:32 | 只看该作者
LCD1602显示℃ 这种自定义符号 http://www.51hei.com/bbs/dpj-200685-1.html
LCD1602液晶最新资料 说明了具体的时间要求 http://www.51hei.com/bbs/dpj-205768-1.html
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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