2301_78643870 2023-06-10 18:13 采纳率: 0%
浏览 20

LCD1602不显示

LCD1602只显示黑块不显示字符该怎么解决啊,接口从p2改到p0,p1都没解决,电阻换成电位器也没用

img


#include <reg52.h>
#include "lcd1602.h"

#define LCD P0
sbit E = P1^1;
sbit RS = P1^2;
sbit RW = P1^0;
//sbit E = P0^5;
//sbit RS = P0^7;
//sbit RW = P0^6;
/******延迟5毫秒函数********/
void delay5ms()   //误差 -0.000000000001us
{
    unsigned char a,b;
    for(b=15;b>0;b--)
        for(a=152;a>0;a--);
}


/******LCD1602写命令函数********/
void write_com(unsigned char command)
{
    RS = 0; 
    RW = 0;     //高读低写
    LCD = command;
    delay5ms(); //这里延时最低要30纳秒 我们直接给5ms
    E = 1;        //使能拉高 
    delay5ms(); //最低要求延迟150纳秒 我们直接给5ms
    E = 0;
}

/******LCD1602写数据函数********/
void write_data(unsigned char dat)
{
    RS = 1;
    RW = 0;
    LCD = dat;
    delay5ms(); //这里延时最低要30纳秒 我们直接给5ms
    E = 1;        //使能拉高 
    delay5ms(); //最低要求延迟150纳秒 我们直接给5ms
    E = 0;
}
/******初始化LCD1602********/
void init_lcd()
{        
    write_com(0x38); //数据总线816X2显示 5*7点阵
    delay5ms();
    write_com(0x38); //数据总线816X2显示 5*7点阵
    delay5ms();    
    write_com(0x38); //数据总线816X2显示 5*7点阵
    delay5ms();    
    write_com(0x38); //数据总线816X2显示 5*7点阵
    delay5ms();
    write_com(0x06);    //写入数据后光标自动右移 整屏不移动。 0x40(光标左移 整屏不移动)0x05(左移 整屏右移)0x07(右移 整屏右移)
    write_com(0x0c); //开显示功能 无光标 不闪烁
    write_com(0x01); //清屏 0000 0001
}
  • 写回答

3条回答 默认 最新

  • 少林and叔叔 2023-06-10 18:40
    关注

    提供下程序以及接线原理,可能是程序的问题,也可能是接线的问题。

    评论

报告相同问题?

问题事件

  • 修改了问题 6月10日
  • 创建了问题 6月10日

悬赏问题

  • ¥200 基于同花顺supermind的量化策略脚本编辑
  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?