⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1602.h

📁 用KEIL编译
💻 H
字号:
//   该头文件定义了LCD1602的操作函数
/********************************************************************
功能:LCD1602驱动,4线连接,控制线和数据线共用一个端口:PtCD
*********************************************************************/

#define PtCD P0  //定义连接口线,

sbit DB7=PtCD^7;//数据口
sbit DB6=PtCD^6;//
sbit DB5=PtCD^5;//
sbit DB4=PtCD^4;//
sbit RS=P1^0;//控制口
sbit RW=P1^1;//
sbit E=P1^2; //

/********************声明LCD1602函数*****************************/
void InitialLcd();
void WriteLcdInstr(uchar);
void WriteLcdData(uchar);
void CheckLcdBusy();
void WriteLcdBit(uchar t);

/********************定义LCD1602函数*****************************/
//-1--初始化函数
void InitialLcd()
{Delay(600);
RS=0;
RW=0;nop;
E=0;nop;

E=1;nop;
DB7=0;DB6=0;DB5=1;DB4=0;
nop;nop;nop;

E=0;
Delay(200);

E=1;nop;
DB7=0;DB6=0;DB5=1;DB4=0;
nop;nop;nop;
E=0;
Delay(5);

E=1;nop;
DB7=0;DB6=0;DB5=1;DB4=0;
nop;nop;nop;
E=0;//设置4位操作;

WriteLcdInstr(0x01);//清屏
WriteLcdInstr(0x28);//设置4位操作,1行显示,5x8
WriteLcdInstr(0x02);//光标归位
WriteLcdInstr(0x06);//AC自动加1,画面不动
WriteLcdInstr(0x0c);//显示开,光标、闪烁关
}

//-2--写指令函数
void WriteLcdInstr(uchar Temp)
{CheckLcdBusy();
RS=0;
RW=0;
E=0;nop;

E=1;nop;//写字节高四位
WriteLcdBit(Temp);
E=0;nop;

E=1;nop;//写字节低四位
WriteLcdBit(Temp<<4);
E=0;nop;
}

//-3--写数据函数
void WriteLcdData(uchar Temp)
{CheckLcdBusy();
RS=1;
RW=0;
E=0;nop;

E=1;nop;//写字节高四位
WriteLcdBit(Temp);
E=0;nop;

E=1;nop;//写字节低四位
WriteLcdBit(Temp<<4);
E=0;nop;
}

//-4--查忙函数
void CheckLcdBusy()
{uchar Temp,t;
DB7=1;DB6=1;DB5=1;DB4=1;
RW=1;
RS=0;nop;
E=0;nop;
do	{nop;
	E=1;nop;nop;
	Temp=PtCD;nop;nop;
	E=0;nop;nop;

	E=1;nop;nop;
	t=PtCD;nop;nop;
	E=0;nop;nop;

	Temp&=0x80;
	}while(Temp==0x80);
}

//-5--写数据到四位数据口
sbit DBt=ACC^7;
void WriteLcdBit(uchar t)
{ACC=t;
DB7=DBt;
ACC<<=1;
DB6=DBt;
ACC<<=1;
DB5=DBt;
ACC<<=1;
DB4=DBt;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -