LCD1602只显示黑块不显示字符该怎么解决啊,接口从p2改到p0,p1都没解决,电阻换成电位器也没用
#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); //数据总线8位 16X2显示 5*7点阵
delay5ms();
write_com(0x38); //数据总线8位 16X2显示 5*7点阵
delay5ms();
write_com(0x38); //数据总线8位 16X2显示 5*7点阵
delay5ms();
write_com(0x38); //数据总线8位 16X2显示 5*7点阵
delay5ms();
write_com(0x06); //写入数据后光标自动右移 整屏不移动。 0x40(光标左移 整屏不移动)0x05(左移 整屏右移)0x07(右移 整屏右移)
write_com(0x0c); //开显示功能 无光标 不闪烁
write_com(0x01); //清屏 0000 0001
}