标题: 单片机LCD1602显示乱码的问题 [打印本页]

作者: HONG09    时间: 2018-10-13 21:35
标题: 单片机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, 下载次数: 49)

QQ图片20181013212643.jpg

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

用英文输入法重新输入一遍还是不行,反而是把头文件judge.c 和xpt2046.c从项目里面移开了之后可以了。。。
作者: HONG09    时间: 2018-10-15 10:38
已经找到问题所在。在项目的其他文件里定义了一个26×17的unsigned char形二维数组。可能是数组过大造成的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1