标题:
单片机+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