在单片机与1602连接后出现部分字符显示不出来

我用的是郭天祥的51的板子,下面是他给的程序,程序能懂,程序也没有问题。以下是程序。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit rs=P3^5;
sbit lcden=P3^4;
uchar num;
uchar code table[]= " 2011-07-29 ";
uchar code table1[]=" 00:00:00 ";

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
rs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}

void write_data(uchar date)
{
rs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}

void init()
{
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);

}

void main()
{
init();
write_com(0x80);
for(num=0;num<15;num++)
{
write_data(table[num]);
delay(5);

}
write_com(0x80+0x40);
for(num=0;num<15;num++)
{
write_data(table1[num]);
delay(5);

}

while(1);
}
但是显示出的却是

呵呵、、、看了这程序你是应该是看郭天祥单片机学习资料的,

看是没有显示清0,才出现的情况不过你的程序是有屏幕清0的指令(write_com(0x01))。

如果程序是对的,

你试试调一下实验板上边的精调电阻看看,这应该是你液晶显示的对比度问题。追问

清零了 但是出现的我大致用16进制带进去了 大致汇出来一个表 没有 2 4 6 8
怎么回事啊

追答

不可能啊字库不应该有问题才是,你还是换个1602试试,没得换就单独在屏幕上单独显示字符,如果这样子都显示不正常,那你真的要换液晶了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-30
试着把延时加长一下,有些液晶反应速度慢, 你指令或数据发快了,它显示就混乱,字符残缺不全或错误追问

调长了也不好使啊~~

追答

有仿真器吧?将程序写进去后, 单步执行,一步步执行,看液晶的反应,应当一个字符一个字符显示出来才对

第2个回答  2011-07-30
延迟时间太短,你把delay()括号中调为1000试试追问

1000那不岂是1秒了? 液晶处理速度不能这么慢把

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

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

自己焊的单片机 1602液晶显示 为什么显示 乱码
可能产生的问题如下:1、I\/O口与LCD的数据口方向焊反2、LCD的RS、RW、E的控制I\/O口在程序编辑时定义错误3、程序错误只要这三点做对了是绝对没问题的

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

单片机和LCD1602显示时间时,久了会出现乱码
很大的可能是1302的问题,比如1302的32K晶振停振(运行的时候不要用手触摸晶振引脚,出现乱码的时候用示波器观察下晶振的波形),1302读取错误等等,先试试不用1302,只用单片机让1602显示字符,看看有没有问题,然后再检查程序和1302

单片机LCD1602错误显示
在每输入数据之前,你得先确定当前的Address Counter(AC)记录的是不是你所想的,也就是第一个字符的DDRAM是不是对的,之后每输入一个数据,AC是自加1的。建议你下载HD44780的资料仔细看一遍,它是LCD的驱动IC,比直接看1602的资料在原理上会更清楚一些。

我的51单片机开发板插上1602液晶为什么不能显示
使用STC的P1口和P2口 与1602液晶连接; 1,HOT51开发板使用的是STC8051CPU,具备完整的P0,P1,P2口功能; 2,1602液晶使用8位数据线,E,RW,RS,分别连接关系为:8位数据线接P1口,E 接 P2.0,RW,接P2.1,RS接P2.2;

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显示器有亮光,却没有显
有亮光,说明1602的背光灯打开了,没有显示内容,说明没有向1602送显示内容,或者发送了错误信号。

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

相似回答