找回密码
 立即注册

QQ登录

只需一步,快速开始

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

lcd1602显示一排黑块

[复制链接]
跳转到指定楼层
楼主
本帖最后由 Lzxhmxy1839 于 2021-6-5 10:37 编辑

本人自己设计的最小系统板,还没跑过led灯,但是仔细检查了,板子应该没问题。然后接lcd屏幕,第三脚的v0我接的是2k的电位器,之前没接电位器,就只是亮背光,现在接了2k的就是显示一排黑块,p0口的上拉排阻接法正确,望各位大佬帮忙解决一下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar code table[]="Welcome";                //单字符用单引号  多字符用双引号
uchar code table1[]="Harbin CHINA";
sbit lcden=P1^0;                                                          //位定义使能端
sbit lcdrs=P1^1;                                                          //数据命令选择端
//sbit dula=P2^6;                                                                  //申明U1锁存器的锁存端
//sbit wela=P2^7;                                                                  //申明U2锁存器的锁存端
uchar num;

void delay(uint z)                                                         //延时函数
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void write_com(uchar com)                                //写命令函数
{
        lcdrs=0;                                           //写指令rs先拉低           0是写命令模式
        P0=com;                                                  //给P0口送的指令码
        delay(50);                                           //延时
        lcden=1;                                          //使能端置1
        delay(50);
        lcden=0;                                          //拉低 依据时序图
}
void write_data(uchar date)                           //写数据函数         
{
        lcdrs=1;                                          //写数据rs拉高                1是写数据模式
        P0=date;                                                //P0口送数据  
        delay(50);
        lcden=1;                                                 //使能端置1
        delay(50);
        lcden=0;                                                 //使能端置0
}
void init()                                                           //初始化函数
{
        //dula=0;                                                                //关闭段选
        //wela=0;                                                                //关闭位选
        lcden=0;
        delay(500);                                                        //使能端置0
        write_com(0x38);                           //显示设置指令码                显示模式设置
        delay(500);
        write_com(0x38);                           //显示设置指令码                显示模式设置
        delay(500);
        write_com(0x38);                           //显示设置指令码                显示模式设置
        delay(500);
        write_com(0x38);                           //显示设置指令码                显示模式设置
        delay(500);
        write_com(0x0e);                           //显示开/关光标设置                         0f是带黑块和光标一起闪烁   0e是只有一个__而且不闪烁 0c是后面什么都没有
        write_com(0x06);                           //地址指针自动加1        还有整屏显示左移
        write_com(0x01);                           //显示清零 数据指针清零
        write_com(0x80+0x10);                           //设置数据指针位置         指向第一个
       

}
void main()
{
        init();
        for(num=0;num<7;num++)
        {
                write_data(table[num]);
                delay(5);       
        }
//        write_com(1);
        write_com(0x80+0x50);
                for(num=0;num<12;num++)
        {
                write_data(table1[num]);
                delay(5);
        }
        for(num=0;num<16;num++)       
        {
                write_com(0x18);
                delay(200);       
        }
        while(1);
}

IMG_5422.JPG (2.63 MB, 下载次数: 156)

IMG_5422.JPG

IMG_5421.JPG (2.26 MB, 下载次数: 151)

IMG_5421.JPG

IMG_5420.JPG (2.1 MB, 下载次数: 149)

IMG_5420.JPG

IMG_5419.JPG (2.47 MB, 下载次数: 164)

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

使用道具 举报

沙发
ID:342822 发表于 2021-6-5 14:28 | 只看该作者
检查rs en rw接线
回复

使用道具 举报

板凳
ID:94031 发表于 2021-6-5 14:35 | 只看该作者
用电位器调对比度合适了才能有显示。
回复

使用道具 举报

地板
ID:328014 发表于 2021-6-5 15:05 | 只看该作者
来看一下51hei论坛里面解决此问题的痛苦经历吧:
51hei搜索框输入"1602 方块"或者"1602 黑块"或者"1602 白块"或者"1602 格":

这个是io口设置问题,最终搞定了:http://www.51hei.com/bbs/dpj-199732-1.html
http://www.51hei.com/bbs/dpj-168643-1.html

既有可能是软件问题也有硬件问题
http://www.51hei.com/bbs/dpj-187378-1.html
http://www.51hei.com/bbs/dpj-160754-1.html
回复

使用道具 举报

5#
ID:897960 发表于 2021-6-5 21:04 | 只看该作者
xuyaqi 发表于 2021-6-5 14:35
用电位器调对比度合适了才能有显示。

接了电位器,也调试了,只有方块的颜色深浅变了,其他的没变化,我接的是2k的电位器,这个是必须接10k的吗
回复

使用道具 举报

6#
ID:897960 发表于 2021-6-5 21:05 | 只看该作者
51hei团团 发表于 2021-6-5 15:05
来看一下51hei论坛里面解决此问题的痛苦经历吧:
51hei搜索框输入"1602 方块"或者"1602 黑块"或者"1602 白 ...

好的我看看,谢谢
回复

使用道具 举报

7#
ID:897960 发表于 2021-6-5 21:06 | 只看该作者
taotie 发表于 2021-6-5 14:28
检查rs en rw接线

我设置的rs和en接1.1和1.0  rw的话我没有用到读  是可以直接接地的
回复

使用道具 举报

8#
ID:517951 发表于 2021-6-5 21:18 | 只看该作者
这种现象和调节V0电位器没有关系,是初始化代码没有送进去,1602上电就是这种现象。要查下显示屏是否是好的,再查信号线,再看下代码有没问题。
回复

使用道具 举报

9#
ID:897960 发表于 2021-6-5 21:34 | 只看该作者
rayin 发表于 2021-6-5 21:18
这种现象和调节V0电位器没有关系,是初始化代码没有送进去,1602上电就是这种现象。要查下显示屏是否是好的 ...

我这个程序在tx1c板子上,就是郭天祥的板子上是可以正常显示的,在这个最小系统板不显示
回复

使用道具 举报

10#
ID:105364 发表于 2021-6-5 22:06 | 只看该作者
xuyaqi 发表于 2021-6-5 14:35
用电位器调对比度合适了才能有显示。

不是电位器调对比度问题,程序是显示2 排的,如果 上排全白,对比 茺已经是最大了,下排应当也一样。
mcu没烧代码就是这样显示的。
回复

使用道具 举报

11#
ID:897960 发表于 2021-6-5 23:14 | 只看该作者
47okey 发表于 2021-6-5 22:06
不是电位器调对比度问题,程序是显示2 排的,如果 上排全白,对比 茺已经是最大了,下排应当也一样。
mc ...

朋友你有lcd可以显示的代码吗,我试试你的
回复

使用道具 举报

12#
ID:897960 发表于 2021-6-11 14:55 | 只看该作者
问题解决了, 是我把复位电路的电容两个脚焊接接到一起了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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