标题: 单片机+LCD12864突然出现乱码,字库会不会坏? [打印本页]

作者: 无限飞翔    时间: 2022-4-16 19:38
标题: 单片机+LCD12864突然出现乱码,字库会不会坏?
手里的LCD12864(带字库)用的好好的,突然出现乱码!  于是写了个测试程序,发现显示的汉字不对啊!程序写的是“无”,显示出来的是个 “线”  字这是个什么情况?

单片机源程序如下:
#include<STC89c58RC.h>
#define uchar unsigned char
#define uint  unsigned int

sbit rs=P1^2; //片选信号
sbit rw=P1^1; //液晶读写
sbit en=P1^0; //液晶使能

        uchar code table_10[]= "无"; //
//        uchar code table_10[]= {  0xCE, 0xDE     };
void delay(uint z)
        {
                uint x,y;
                for(x=z;x>0;x--)
                        for(y=110;y>0;y--);
        }         
void delay_us(uint z)
        {
                uint x,y;
                for(x=z;x>0;x--)
                        for(y=20;y>0;y--);
        }  
void write_comm(uchar comm)//LED写指令
        {
                   delay_us(10);
                rs=0;
                rw=0;
                en=1;
                delay_us(10);
                P0=comm;
                delay_us(10);
                en=0;
        }
void write_dat(uchar dat)//LED写数据
        {
                   delay_us(10);
                rs=1;
                rw=0;
                en=1;
                delay_us(10);
                P0=dat;
                delay_us(10);
                en=0;
        }

void init_LED()//LED初始化
        {
                rs=0;
                rw=0;
                en=1;
                write_comm(0x30);
                delay_us(10);
                write_comm(0x0c);
                delay_us(10);
                write_comm(0x01);
        }
void main() //显示菜单
        {
                uchar i;

                                init_LED();//LED初始化



                        //        write_comm(0x80);
                                for(i=0;i<2;i++)
                                        {
                                           write_dat(table_10[ i]);        [ i]
                                        }
        delay(100);        
        }                        


作者: w1179benp    时间: 2022-4-17 06:51
感觉是字库地址编码器某位或几位坏了,导致显示所需汉字地址偏移,不能正确选定汉字。
作者: zhxiufan    时间: 2022-4-17 08:55
如果12864没问题,可能是数据线D0~D7可能有虚焊情况;所以可以从这两个方面去查一下,换一个液晶,或者焊接上再处理一下。
作者: 啤酒瓶子老大    时间: 2022-4-17 16:39
字库一般不好坏吧。查一下线路吧。只有几十个汉字会乱码,需要在程序里处理一下。其他的都还好。
作者: 超级小黑    时间: 2022-4-17 19:23
可能是显示的位置有重合的地方
作者: 小蒋要努力    时间: 2022-4-17 20:57
应该不会坏,重新检查下程序看看有没有问题
作者: 阿吧阿吧    时间: 2022-4-18 00:42
个人感觉这种情况应该先看一看是不是电路或者焊接的问题
作者: laowang123222    时间: 2022-4-18 09:20
看一下线有没有接对,还有工作电压有没有选对
作者: yzwzfyz    时间: 2022-4-18 17:23
赞同沙发的意见。
作者: 无限飞翔    时间: 2022-4-22 10:29
哎!!!!!!!!!!!
试了几次发现问题了,是干扰屏幕离芯片高频近了,加了个屏蔽好了,折腾死人!!!
作者: 米霁113    时间: 2022-4-25 02:21
无限飞翔 发表于 2022-4-22 10:29
哎!!!!!!!!!!!
试了几次发现问题了,是干扰屏幕离芯片高频近了,加了个屏蔽好了,折腾死人!! ...

我也遇到了这种情况,请问怎么加屏蔽啊?

作者: Heddea—    时间: 2022-5-3 16:00
无限飞翔 发表于 2022-4-22 10:29
哎!!!!!!!!!!!
试了几次发现问题了,是干扰屏幕离芯片高频近了,加了个屏蔽好了,折腾死人!! ...

我也遇到了同样的问题,请问能将解决问题的方法讲的具体一点吗?




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