![](https://i-blog.csdnimg.cn/blog_migrate/0af7a872f7f4253fb5d770814fa581ef.png)
#define LCD1602_DATA_PORT P0 // LCD1602的8位数据端口
sbit gLcd1602_E = P2^7; // LCD1602控制总线的使能信号
sbit gLcd1602_RW = P2^5; // LCD1602控制总线的读写选择信号
sbit gLcd1602_RS = P2^6; // LCD1602控制总线的数据/命令选择信号
/*********************************************************************
* 函 数 名 : Lcd1602WriteCmd
* 函数功能 : 按照LCD1602低层时序向LCD内部写入8位命令字
* 参数列表 : cmd - 待写入的8位命令字
* 函数输出 : 无
*********************************************************************/
static void Lcd1602WriteCmd(u8 cmd)
{
Lcd1602WaitNoBusy(); // 先等待LCD1602处于不忙状态
gLcd1602_E = 0; // 禁止LCD
gLcd1602_RS = 0; // 选择发送命令模式
gLcd1602_RW = 0; // 选择写入模式
LCD1602_DATA_PORT = cmd; // 将1字节命令字放入8位并行数据端口
gLcd1602_E = 1;