LCD1602液晶显示出现乱码,如何解决?
你把跟lcd数据连接的一些外设都去掉 程序的话\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#define uchar unsigned char\x0d\x0a#define uint unsigned int\x0d\x0a//这三个引脚参考资料\x0d\x0asbit LCD1602_EN=P2^7; //1602使能引脚\x0d\x0asbit LCD1602_RW=P2^6; //1602读写引脚 \x0d\x0asbit LCD1602_RS=P2^5; //1602数据/命令选择引脚\x0d\x0a\x0d\x0a/********************************************************************\x0d\x0a* 名称 : LCD1602_delay()\x0d\x0a* 功能 : 延时,延时时间大概为5US。\x0d\x0a* 输入 : 无\x0d\x0a* 输出 : 无\x0d\x0a***********************************************************************/\x0d\x0avoid LCD1602_delay()\x0d\x0a{\x0d\x0a _nop_();\x0d\x0a _nop_();\x0d\x0a _nop_();\x0d\x0a _nop_();\x0d\x0a _nop_();\x0d\x0a}\x0d\x0avoid LCD1602_Delay(uint i)\x0d\x0a{\x0d\x0a uint x,j;\x0d\x0a for(j=0;j
lcd1602液晶显示调试问题 lcd1602显示屏
如下程序
数组中写了uchar table1[]=" current time ";
uchar table2[]=" current data ";
实际显示出错current time 后面多了乱码
current data 后面多了乱码
main.c文件
#include "config.h"
#include "lcd1602.h"
uchar table1[]=" current time ";
uchar table2[]=" current data ";
void main(void)
{uchar i, j;
Lcd1602_Init ();
for(i=0;i<16;i++)
{Lcd1602_Write_cmd(0x80+i);
Lcd1602_Write_dat(table1[i]);
}for(j=0;j<16;j++)
{Lcd1602_Write_cmd(0x80+0x40+j);
Lcd1602_Write_dat(table2[j]);
}while(1);
}config.h文件
#ifndef __CONFIG_H_
#define __CONFIG_H_
#define uchar unsigned char
#define uint unsigned int
#include
#include
void Lcd1602_Init ();
void Lcd1602_Write_cmd(uint cmd);
void Lcd1602_Write_dat(uint dat);
void Lcd1602_Delay1ms(uint c);
#endif
delay.c文件
#include "config.h"
void Lcd1602_Delay1ms(uint c) //??? 0us
{uchar a,b;
for (; c>0; c--)
{for (b=199;b>0;b--)
{for(a=1;a>0;a--);
}}
}delay.h文件
#ifndef __LCD1602_DELAY1MS_H_
#define __LCD1602_DELAY1MS_H_
void Lcd1602_Delay1ms(uint c);
#endif
lcd1602.c文件
#include "config.h"
#include "delay.h"
***it LCD1602_E=P2^7;
***it LCD1602_RW=P2^5;
***it LCD1602_RS=P2^6;
#define LCD1602data P0
void Lcd1602_Init ()
{Lcd1602_Delay1ms(15);
Lcd1602_Write_cmd(0x38);
Lcd1602_Write_cmd(5);
Lcd1602_Write_cmd(0x38);
Lcd1602_Write_cmd(0x08);
Lcd1602_Write_cmd(0x01);
Lcd1602_Write_cmd(0x06);
Lcd1602_Write_cmd(0x0c);
}void Lcd1602_Write_cmd(uint cmd)
{LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_E=0;
Lcd1602_Delay1ms(1);
LCD1602data=cmd;
Lcd1602_Delay1ms(1);
LCD1602_E=1;
Lcd1602_Delay1ms(1);
LCD1602_E=0;
Lcd1602_Delay1ms(1);
}void Lcd1602_Write_dat(uint dat)
{LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_E=0;
Lcd1602_Delay1ms(1);
LCD1602data=dat;
Lcd1602_Delay1ms(1);
LCD1602_E=1;
Lcd1602_Delay1ms(1);
LCD1602_E=0;
Lcd1602_Delay1ms(1);
}lcd1602.h
#ifndef __LCD1602_H_
#define __LCD1602_H_
void Lcd1602_Init ();
void Lcd1602_Write_cmd(uint cmd);
void Lcd1602_Write_dat(uint dat);
#endif
`
具体你可以看一下:
1 wstring()这个函数是如何运作的,显示一个数组的结束标志是什么。word2本身定义是数组还是字串,注:字串的结束标志是/0. 数组的结束和索引使用有关。
蓝底白字LCD1602液晶屏显示不清晰,必须斜着看才能看清,是不是对比度的问题,该如何设置?
有几个方面的问题 一是对比度调的浅 二是视角不对 三是LCD1602的质量部怎么好
是电压的问题,液晶翻转因电压的问题没有翻转到位,或过头了
调整下VCOM电压,需要外接VR
用lcd1602显示,显示程序没错,接线没错,就是显示不出来,求高人指点原因,369521148,这是我的qq,
1.可能是显示屏已经损坏,建议拿一个确保好的1602进行测试。
2.程序可能还存在错误,建议进行单步查找,查看每一步的结果是不是与自己所想一致,这样才能确保程序真的没错。
3.检查接线,用万用表逐一检查导线,查看导线是否导通。接着再细致对照电路图进行接线检查,建议从一个节点出发一个部分一个部分的进行连接(或检查),最后进行整体的检查。
4.检查与1602连接的其他器件是否完好,如和单片机连接,查看单片机是否良好。
5.确保屏是好的前提下,如果全不亮,看一下15 16引脚的解法是否正确,它们主管显示屏的亮度 再看3它管对比度。
建议你先用protues仿真试试吧!!!如果还是没显示的话就是你的程度有问题
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。