sbit LCD_RS=P3^5;//定义引脚
sbit LCD_RW=P3^6;
sbit LCD_E=P3^7;
#define LCD_Data P2
/********宏定义***********************************************************/
#define Busy 0x80 //用于检测LCD状态字中的Busy标识
/********数据定义*************************************************************/
code BYTE table[]={48,49,50,51,52,53,54,55,56,57}; //0_9 ascii码的数字
/********函数声明*************************************************************/
void WriteDataLCD(BYTE WR_DATA); //写数据
void WriteCommandLCD(BYTE WCLCD); //写命令
void WriteCommandLCD1(BYTE WCLCD); //写命令
void busy_check(void); //读状态
void LCDInit(void); //初始化
void DisplayOneChar(BYTE X, BYTE Y, BYTE DData); //相应坐标显示字节内容
void DisplayListChar(BYTE X, BYTE Y, BYTE code *DData); //相应坐标开始显示一串内容
//void delay1MS(uint t)
//{
// uint i,j;
// for(i=0;i<t;i++)
// for(j=0;j<935;j++);
//}
/*初始化*/
void LCDInit(void)
{
WriteCommandLCD(0x38);//不检测忙信号
WriteCommandLCD(0x08); //关闭显示
WriteCommandLCD(0x01); //显示清屏
WriteCommandLCD(0x06); //显示光标移动设置
WriteCommandLCD(0x0C); //显示开及光标设置
}
/*按指定位置显示一串字符*/
void DisplayListChar(BYTE X, BYTE Y, BYTE code *DData)
{
BYTE ListLength;
ListLength = 0;
X &= 0xF;
Y &= 0x1; //限制X不能大于15,Y不能大于1
while (DData[ListLength]>=0x20){ //若到达字串尾则退出
if (X <= 0xF){ //X坐标应小于0xF
DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符
ListLength++;
X++;
}
}
}
/*按指定位置显示一个字符*/
void DisplayOneChar(BYTE X, BYTE Y, BYTE DData)
{
X &= 0xF;
Y &= 0x1; //限制X不能大于15,Y不能大于1
if (Y)
X |= 0x40; //当要显示第二行时地址码+0x40;
X |= 0x80; //算出指令码
WriteCommandLCD(X); //发送地址码
WriteDataLCD(DData);
}
/***********写指令********************************************************/
void WriteCommandLCD(BYTE WCLCD)
{
busy_check();
LCD_Data = WCLCD;
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 1;
LCD_E = 0;
}
/***********写数据********************************************************/
void WriteDataLCD(BYTE WR_DATA)
{
busy_check(); //检测忙
LCD_Data = WR_DATA;
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 1;
LCD_E = 0;
}
//检测忙信号
void busy_check(void)
{
LCD_Data = 0xFF;
LCD_E = 0;
LCD_RS = 0;
LCD_RW = 1;
LCD_E = 1;
while (LCD_Data & Busy);
LCD_E = 0;
}
由于数据端D0-D7用到了不同IO口~在程序中如何修改才行~求大神指导
|