谁能帮忙解释下用51单片机做1602液晶显示PDF文档里面的那段初始化C的意思,最好是能每句说明下。

codeunsignedcharLCD_InitialCode[]={0x30,0x30,0x30,0x38,0x01,0x06,0x0c};//============... code unsigned char LCD_InitialCode[]={0x30,0x30,0x30,0x38,0x01,0x06,0x0c};
//========================================================================
// 函数: void LCD_DataWrite(unsigned char Data)
// 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中
// 参数: Data 写入的数据
// 返回: 无
//========================================================================
void LCD_DataWrite(unsigned char Data)
{
unsigned int Read_Dat=0;
LCD_EP = 0; //EP、RS端口为低,RW为高
LCD_RS = 0;
LCD_RW = 1;
do{
LCD_Data_BUS_In = 0xff;
LCD_EP = 1;
Read_Dat = LCD_Data_BUS_In&0x80;
LCD_EP = 0;
}while(Read_Dat!=0); //读状态字并判断是否可进行读写操作
LCD_RW = 0; //EP RW to Low
LCD_RS = 1; //RS Hight
LCD_Data_BUS_Out = Data;
LCD_EP = 1; //EP to Hight
LCD_EP = 0; //EP to low
}
//========================================================================
// 函数: void LCD_RegWrite(unsigned char Command)
// 描述: 写一个字节的数据至LCD中的控制寄存器当中
// 参数: Command 写入的数据(byte)
// 返回: 无
//========================================================================
void LCD_RegWrite(unsigned char Command)
{
unsigned int Read_Dat=0;
LCD_EP = 0; //EP、RS置低,RW置高,表为读状态字
LCD_RS = 0;
LCD_RW = 1;
do{
展开
 我来答
帐号已注销
2012-12-29 · TA获得超过592个赞
知道小有建树答主
回答量:672
采纳率:66%
帮助的人:339万
展开全部
code unsigned char LCD_InitialCode[]={0x30,0x30,0x30,0x38,0x01,0x06,0x0c};//LCD初始的数//据
void LCD_DataWrite(unsigned char Data)//写数据函数

{
//***********************************************************************
unsigned int Read_Dat=0;//定义一个无符号整数变量并赋值0
LCD_EP = 0; //EP端口为低,这是由LCD 1602读操作时序决定的
LCD_RS = 0;//RS端口为低,这是由LCD 1602读操作时序决定的
LCD_RW = 1;//RW端口为高,这是由LCD 1602读操作时序决定的
//下面进入循环判断LCD是否是忙状态
do{//循环
LCD_Data_BUS_In = 0xff;//先将LCD 1602数据端置1,接下来要读LCD是否是忙状态
LCD_EP = 1;///EP端口为高,就是给出个高脉冲,进行读操作
Read_Dat = LCD_Data_BUS_In&0x80;//从读出的数据判断LCD是否是忙状态
LCD_EP = 0;//E端为使能端,恢复为低电平
}while(Read_Dat!=0); //读状态字并判断是直到 状态字不为0
//***********************************************************************
LCD_RW = 0; //RW端口为低,这是由LCD 1602写操作时序决定的

LCD_RS = 1; ///RS端口为高,这是由LCD 1602写操作时序决定的
LCD_Data_BUS_Out = Data;//要显示的数据
LCD_EP = 1; ////EP端口为高,就是给出个高脉冲,进行写操作
LCD_EP = 0; //恢复为低电平
}
生活如歌_
2012-12-28 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7398
采纳率:78%
帮助的人:2211万
展开全部
就是一个1602所要求的数据时序的工作,没必要深究。只要会调用函数就OK.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晓萌呀
2012-12-31
知道答主
回答量:24
采纳率:100%
帮助的人:12万
展开全部
SHOW:
LCALL LCD_START
MOV P2,#81H ;显示" prtem: ”
ACALL XIEML
MOV DPTR,#TAB1
MOV R4,#06H
LCALL XIERUCODE
RET
LCD_START:
MOV P2,#00000001B;清屏
ACALL XIEML
MOV P2,#00111000B;设置显示模式八位2行5x7
ACALL XIEML
MOV P2,#00001111B;显示器开,光标开,光标允许闪烁
ACALL XIEML
MOV P2,#00000110B;文字不动,光标右移
ACALL XIEML
RET
XIEML: ;写命令
CLR RS
CLR RW
CLR E
LCALL CHAXUN
SETB E
RET
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式