液晶显示屏1602头文件.docx
《液晶显示屏1602头文件.docx》由会员分享,可在线阅读,更多相关《液晶显示屏1602头文件.docx(2页珍藏版)》请在冰点文库上搜索。
![液晶显示屏1602头文件.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/0c1eaeed-b694-40fa-a80e-4ebf948d532a/0c1eaeed-b694-40fa-a80e-4ebf948d532a1.gif)
#ifndef_lcd1602_H_
#define_lcd1602_H_
#include//晶振12M,AT89S51
#include
#defineLcd_DataP0
#defineBusy0x80
#defineucharunsignedchar
#defineuintunsignedlongint
sbitLcd_EN=P3^2;
sbitLcd_RW=P3^1;
sbitLcd_RS=P3^0;
ucharcodetable2[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
voiddelay(uintN)
{
for(;N>0;N--);
}
//5ms
voidDelay5Ms(void)
{
uchari=5552;
while(i--);
}
//LCD判断忙程序
ucharLcd_WaitBusy(void)
{
Lcd_Data=0xFF;
Lcd_RS=0;
Lcd_RW=1;
Lcd_EN=0;
Lcd_EN=1;
Lcd_EN=1;
while(Lcd_Data&Busy);
Lcd_EN=0;
return(Lcd_Data);
}
//LCD控制字
voidLcd_WriteCmd(ucharW_Cmd,bitBusyC)//BusyC
{
if(BusyC)Lcd_WaitBusy();
Lcd_Data=W_Cmd;
Lcd_RS=0;
Lcd_RW=0;
Lcd_EN=0;
Lcd_EN=1;
Lcd_EN=0;
}
//LCD写数据
voidLcd_WriteData(ucharW_Data)
{
Lcd_WaitBusy();
Lcd_Data=W_Data;
Lcd_RS=1;
Lcd_RW=0;
Lcd_EN=0;
Lcd_EN=1;
Lcd_EN=0;
}
//LCD初始化
voidinit()
{
delay(4000);
Lcd_WriteCmd(0x38,0);//不检测忙信号
Delay5Ms();
Delay5Ms();
Lcd_WriteCmd(0x38,1);
Lcd_WriteCmd(0x08,1);
Lcd_WriteCmd(0x01,1);
Lcd_WriteCmd(0x06,1);
Lcd_WriteCmd(0x0C,1);
}
#endif