📄 lcd1602.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 + -