找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机LCD1602显示乱码的问题

[复制链接]
跳转到指定楼层
楼主
本人新手,最近第一次使用51单片机做一个类似小玩意的东西,需要用到lcd1602来显示。
但是基本同样的程序,一个显示的出来,一个显示不出来是乱码。我直接导入的开发板。

第一个是直接套现成的程序,可以显示出来。




main函数如下
  1. #include "reg52.h"               
  2. #include "lcd.h"


  3. typedef unsigned int u16;        
  4. typedef unsigned char u8;


  5. u8 Disp[]="hello ";




  6. void main(void)
  7. {
  8.         u8 i;
  9.         
  10.         LcdInit();
  11.         for(i=0;i<6;i++)
  12.         {
  13.                 LcdWriteData(Disp[ i]);        
  14.         }
  15.         while(1);                                
  16. }
复制代码



然后自己编写的程序基本没有变化,除了多了头文件。(中间的其它调用函数都为了测试删掉了)

main函数如下

  1. #include "reg52.h"               
  2. #include "lcd.h"
  3. #include"XPT2046.h"
  4. #include"judge.h"


  5. typedef unsigned int u16;         
  6. typedef unsigned char u8;




  7. u8 digplay1[]="hello";


  8. void main(void)
  9. {
  10.         u8 i;
  11.         LcdInit();
  12.         for(i=0;i<16;i++)
  13.         {
  14.                 LcdWriteData(digplay1[ i]);        
  15.         }
  16.         while(1);               

复制代码


但是显示的就是一个个黑格。
新手完全不懂为什么,求大佬指点。

QQ图片20181013212643.jpg (22.73 KB, 下载次数: 27)

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

使用道具 举报

沙发
ID:137736 发表于 2018-10-14 07:54 来自手机 | 只看该作者
你的字符串可能含特殊字符,从网页复制或汉字输入法输入的会出问题。英文下重输一遍试试。

评分

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

查看全部评分

回复

使用道具 举报

板凳
ID:409049 发表于 2018-10-14 22:37 | 只看该作者
zmc419 发表于 2018-10-14 07:54
你的字符串可能含特殊字符,从网页复制或汉字输入法输入的会出问题。英文下重输一遍试试。

用英文输入法重新输入一遍还是不行,反而是把头文件judge.c 和xpt2046.c从项目里面移开了之后可以了。。。

评分

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

查看全部评分

回复

使用道具 举报

地板
ID:409049 发表于 2018-10-15 10:38 来自手机 | 只看该作者
已经找到问题所在。在项目的其他文件里定义了一个26×17的unsigned char形二维数组。可能是数组过大造成的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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