找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求助,关于LCD1602的显示问题和如何判断是否损坏

查看数: 6060 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-5 09:20

正文摘要:

如题,为什么会出现这种情况,百度上都没有相关的案例,是不是我的1602坏了抑或是程序问题

回复

ID:213173 发表于 2020-3-7 10:49
Carbon1 发表于 2020-3-6 12:45
这是程序
#include
#define uchar unsigned char

楼主的程序没有什么明显毛病,出现这种现象应该是LCD初始化失败。要仔细检查硬件! VCC是电压否正常、纹波是否过大、晶振频率是否合适、振荡电容大小是否合适、复位电路是否正常。特别是要检查面包板接触不良。
初始化程序稍微调整一下:
void init()
{
        lcden=0;
        delay_ms(20);
        write_com(0x38);
        write_com(0x38);
        write_com(0x38);
        delay_ms(20);
        write_com(0x01);
        delay_ms(20);        
        write_com(0x0C);
        delay_ms(20);
        write_com(0x06);
        delay_ms(20);
}
ID:316880 发表于 2020-3-6 19:24
下载一个没有问题的程序进去就可以判断是不是液晶屏的问题了
ID:433688 发表于 2020-3-6 18:11
你可以看看是不是接口接错了 LCD接线都很重要
ID:703392 发表于 2020-3-6 14:53

应该是程序有问题,
ID:487821 发表于 2020-3-6 14:12
屏里导电层接触不良,拆下重装一下
ID:677520 发表于 2020-3-6 12:48
东宁 发表于 2020-3-5 16:56
应该是程序有问题,以前也遇到过这样的情况,如果屏幕是亮的,就没有坏

应该不是程序问题,换了好几个程序都不行
ID:677520 发表于 2020-3-6 12:47
秋易老 发表于 2020-3-5 10:18
感觉应该是线接错了,要么就是程序定义的口和你实际接的口不一样

感谢回复,接线检查过很多次了,也试过其他程序,没有解决
ID:677520 发表于 2020-3-6 12:46
之一知足 发表于 2020-3-5 10:15
最简单快捷的方法就是,随便下载个历程,照着别人的代码接下线,如果不能正常的执行,就是LCD坏了,反之检 ...

谢谢回答,我试过别人的代码,也有改接线,区别在于右边黑的多少
ID:677520 发表于 2020-3-6 12:45
这是程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P2^2;
sbit lcdrw=P2^1;
sbit lcden=P2^0;
uchar table1[]="AT89C51";
uchar table2[]="STC89C52RC";

void delay_ms(uint z)
{
   uint i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}

void write_com(uchar com)  //写指令
{
       
                lcdrw=0;
                lcdrs=0;                        
        P0=com;   //将指令赋给P0
        lcden=1;  //高脉冲                     
        delay_ms(5);
        lcden=0;                     
}

void write_dat(uchar dat)  //写数据
{
       
        lcdrs=1;
                lcdrw=0;
        P0=dat;   //数据赋给P0
        lcden=1;  //高脉冲
        delay_ms(5);
        lcden=0;
}

void init()
{        lcden=0;
        write_com(0x01);
        delay_ms(20);       
        write_com(0x06);
        delay_ms(20);
        write_com(0x0C);
        delay_ms(20);
        write_com(0x38);
        delay_ms(20);
}

void main()
{
        uchar i;
        init();
       
        write_com(0x80);
        for(i=0;i<7;i++)  
                write_dat(table1[i]);
        delay_ms(10000);
       
        write_com(0x80);
        for(i=0;i<10;i++)  
       write_dat(table2[i]);
   
        while(1);
}
ID:703118 发表于 2020-3-5 20:00
看起来没问题能亮,像素也点亮了
ID:702943 发表于 2020-3-5 16:56
应该是程序有问题,以前也遇到过这样的情况,如果屏幕是亮的,就没有坏
ID:584814 发表于 2020-3-5 11:14
程序贴上来看看才知道是不是程序问题。如果程序没问题接线也没问题那就是坏了。
ID:462827 发表于 2020-3-5 10:38
放到好的开发板和正确的例程上去试
ID:702573 发表于 2020-3-5 10:18
感觉应该是线接错了,要么就是程序定义的口和你实际接的口不一样
ID:342451 发表于 2020-3-5 10:15
最简单快捷的方法就是,随便下载个历程,照着别人的代码接下线,如果不能正常的执行,就是LCD坏了,反之检查你的代码。

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

Powered by 单片机教程网

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