1602液晶显示的单片机为什么屏幕亮但不显示数字

如题所述

//单片机驱动1602液晶显示的的仿真,可以参考一下。

#include<reg52.h>

#include<intrins.h>

#define uchar unsigned char

#define uint  unsigned int

sbit E=P3^2;

sbit RW=P3^3;

sbit RS=P3^4;

void delay()    //延时函数

{

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

bit Busy(void)

{

bit busy_flag = 0;

RS = 0;

RW = 1;

E = 1;

delay();

busy_flag = (bit)(P1 & 0x80);

E = 0;

return busy_flag;

}

void wcmd(uchar del)

{

while(Busy());

RS = 0;

RW = 0;

E = 0;

delay();

P1 = del;

delay();

E = 1;

delay();

E = 0;

}

void wdata(uchar del)

{

while(Busy());

RS = 1;

RW = 0;

E = 0;

delay();

P1 = del;

delay();

E = 1;

delay();

E = 0;

}

void L1602_init(void)

{

wcmd(0x38);//设置16*2显示,5*7点阵,8位数据口

wcmd(0x0c);

wcmd(0x06);

wcmd(0x01);

}

void L1602_char(uchar hang,uchar lie,char sign)

{

uchar a;

if(hang == 1) a = 0x80;

if(hang == 2) a = 0xc0;

a = a + lie - 1;

wcmd(a);

wdata(sign);

}

void L1602_string(uchar hang,uchar lie,uchar *p)

{

uchar a,b=0;

if(hang == 1) a = 0x80;

if(hang == 2) a = 0xc0;

a = a + lie - 1;

while(1)

{

wcmd(a++);

b++;

if((*p == '\0')||(b==16)) break;

wdata(*p);

p++;

}

}

void Main()

{

L1602_init();

L1602_string(1,1,"0123456789   ");

L1602_string(2,1,"   ABCDEFGHIJ   ");

L1602_char(2,15,'O');

L1602_char(2,16,'K');

while(1);

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2020-01-17
你所说的屏幕亮应该是屏幕的上一行显示全黑方块。如果是这样的话,证明你的LCD驱动程序有问题或是初始化不对。能看到黑快证明对比度电压正常。本回答被网友采纳
第2个回答  2019-01-18
屏幕亮只是打开了背光灯,也就是开了显示而已,能否显示信息,还要看你具体的控制程序。从接线来说,如果E有效,就会点亮LCD,RS、RW如果接线有错,照样显示不出来东西的。另外对比度如果调整不好,也无法显示出来字符。
第3个回答  2019-01-18
屏幕亮只是说明LCD上电了而已,不显示数字就说明你的程序运行有问题了,具体的要看你的代码了,1602主要的就是对他的初始化的几个设置,然后在指定位置显示字符就可以了。
第4个回答  2019-01-19
肯定程序不对了,程序编写正确并且编译通过再下载到芯片里运行起来,就能驱动1602显示要显示的内容。

52单片机烧入程序,1602只亮,不显示
1602只亮不显示字符有可能的问题是:1、对比度调整不合适,调整一下电路参数就可以解决。2、软件问题,这个需要看到源程序才知道问题所在。

为什么单片机的1602显示器有亮光,却没有显
有亮光,说明1602的背光灯打开了,没有显示内容,说明没有向1602送显示内容,或者发送了错误信号。

51单片机 LCD1602只亮不显示东西
对于LCD1602不显示字符,一是先检查仿真电路对不对,再检查程序中定义的控制引脚与仿真图是否相符。因很多人都是从网上找的程序,与自己的仿真图并不相符,需要改程序的引脚定义,但没有改。二就是检查程序是不是写错了,虽然引脚定义对,但显示字符的程序不对。你没有发仿真图,所以,看程序是找不到...

芯片和显示屏连接后显示器要亮但不显示数值是什么原因?
1、可能是单片机程序、时序有问题,也有可能是1602A坏了。2、可能部件松动或者芯片虚焊导致的加电无显故障。3、内存松动或者内存本身有问题。

1602液晶显示的单片机为什么屏幕亮但不显示数字
\/\/单片机驱动1602液晶显示的的仿真,可以参考一下。include<reg52.h> include<intrins.h> define uchar unsigned char define uint unsigned int sbit E=P3^2;sbit RW=P3^3;sbit RS=P3^4;void delay() \/\/延时函数 { _nop_();_nop_();_nop_();_nop_();_nop_();} bit Busy(voi...

为什1602的液晶显示不能显示数字,该怎么修改呢?
实物单片机,在写命令和数据时,是要查询busy状态的,不查询,延时就得长点,调延时程序时,把延时实参改成10,不行改成20,只好试一试了。

...其中遇到LCD1602能亮,调节对比度,但是没显示字符。求指点。_百度知...
1.检查硬件管脚是否接错 2.仿真和实际是有差别的,以前我做过实际的可以而仿真的不行,仿真时写函数中等待LCD1602响应用延时函数代替则仿真可行,程序上注意写函数的时序

在单片机与1602连接后出现部分字符显示不出来
呵呵、、、看了这程序你是应该是看郭天祥单片机学习资料的,看是没有显示清0,才出现的情况不过你的程序是有屏幕清0的指令(write_com(0x01))。如果程序是对的,你试试调一下实验板上边的精调电阻看看,这应该是你液晶显示的对比度问题。

刚刚买了一块1602的液晶屏,只有背光灯亮,液晶屏没有显示,并且调节对比...
楼主是否考虑过或验证过延时器程序与液晶屏有没有任何冲突呢?背光灯亮,说明高压板、背光灯管等等基本上没有问题,没有显示很可能是AD驱动板没有工作;从对比度不能调节这一点来看,有可能是AD驱动板的MCU工作异常,或它的电源部分不正常,使得AD板不能输出高电平去控制高压板的开关极(此时有背光,...

单片机1602只显示一排小方块
1602液晶显示模块有个特性,就是在通电后,如果没有正确执行初始化操作,屏幕将会出现第一行点阵全部点亮、第二行点阵不亮的现象,此时除了初始化操作以外,1602液晶屏不接收其它操作指令。因此,在驱动1602液晶屏的时候出现这种情况,应该重点检查控制电路(单片机或者其它控制器)是否正确输出了初始化的信号...

相似回答