#include <>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_E=P3^5; //定义接口
sCD_E = 0;
}
/************************写指令********************************/
void LCD_WriteCommand(uchar WCLCD,BuysC) //BuysC为0时忽略忙检测
{
if (BuysC)
LCD_ReadStatus(); //根据需要检测忙
LCD_Data = WCLCD;
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 1;
LCD_E = 1;
LCD_E = 0;
}
/*****************初始化***********************************/
void LCD_Init(void)
{
LCD_Data = 0;
LCD_WriteCommand(0x38,0);//三次显示模式设置,不检测忙信号
Delay_ms(5);
LCD_WriteCommand(0x38,0);
Delay5Ms();
LCD_WriteCommand(0x38,0);
Delay_ms(5);
LCD_WriteCommand(0x38,1); //显示模式设置,开始要求每次检测忙信号
LCD_WriteCommand(0x08,1); //关闭显示
LCD_WriteCommand(0x01,1); //显示清屏
LCD_WriteCommand(0x06,1); // 显示光标移动设置
LCD_WriteCommand(0x0C,1); // 显示开及光标设置
}
/***********************显示一个字符********************************/
void DisplayOneChar(uchar X, uchar Y, uchar DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;
X |= 0x80; // 算出指令码
LCD_WriteCommand(X, 0); //这里不检测忙信号,发送地址码
LCD_WriteData(DData);
}
/*****************
LCD1602简单显示程序(单片机) 来自淘豆网m.daumloan.com转载请标明出处.