AT89C52 LCD1602在Isis 仿真软件能显示,在实物显示不出来 5

LCD.h代码如下:#ifndef__LCD1602_H__#define__LCD1602_H__//=-----------------------//-------... LCD.h代码如下:
#ifndef __LCD1602_H__
#define __LCD1602_H__//=-----------------------
//------------------------------------------------

//------------------------------------------------
#endif

//**********************************************
#include<REG52.H>
#define uchar unsigned char
#define uint unsigned int
#define LCDPORT P0
sbit LCDRS=P2^0;
sbit LCDRW=P2^1;
sbit LCDE=P2^2;
void Delay() //延时函数
{ uint uiCount;
for(uiCount=0;uiCount<250;uiCount++);
}
void WR_CMD(uchar ucCommand)
{ Delay();
LCDE=1;
LCDRS=0;
LCDRW=0;
LCDPORT=ucCommand;
LCDE=0;
}
//**************************************************
//把一个数据写入LCD函数
//***************************************************
void WR_Data(uchar ucData)
{ Delay();
LCDE=1;
LCDRS=1;
LCDRW=0;
LCDPORT=ucData;
LCDE=0;
}
//**********************************************************
//LCD初始化函数
//***************************************************************
void Initialize()
{
WR_CMD(0x01);//清屏
WR_CMD(0x38);//显示模式设置:8位2行5*7点阵
WR_CMD(0x0C);//文字不懂光标自动右移
}
//**************************************************************
//把一个字符写入LCD函数
//***************************************************************
void Show_1_Char(uchar ucChar)
{WR_Data(ucChar);}//写显示码符号

//把一组字符写入LCD函数

void Show_Char(uchar ucaChar[])
{
uchar ucCount;
for(ucCount=0;;ucaChar[ucCount++])
{
Show_1_Char(ucaChar[ucCount]);//调用一个字符写入LCD函数
if(ucaChar[ucCount+1]=='\0')//如果下一个字符是'\0'就退出
break;
}
}
GotoXY(x,y)
{
if(y==0)
{
WR_CMD(0x80+x);
}
if(y==1)
{
WR_CMD(0X80+0X40+x);
}

}
展开
 我来答
cjj796
2014-07-04 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3465万
展开全部
你好!
1、检查硬件的管脚连接

2、检查程序的时序控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式