📄 lcd12864f.h
字号:
//12864 汉字显示模块 与MCU连接
sbit RS = P1^4;// 1:输入数据 ;0:输入命令
sbit RW = P1^3;//1:读数据 0:写数据
sbit E = P1^2;
//sbit PSB = P1^1; //串并口选择 1:并口模式; 0:串口模式;
sbit ak = P1^0;
sbit be = P3^7;
sbit br = P3^5;
//sbit key= P1^3;
#define LcdData P0
//延时子程序
void delay(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
//测试LCD忙
bit Check_Busy()
{
bit busy;
RS = 0;
RW = 1;
E = 1;
_nop_();
busy = (bit)(LcdData&0x80);
E = 0;
return busy;
}
//等待LCD到空闲
void wait()
{
while(Check_Busy());
}
//写数据
void Lcd_Writedata(unsigned char dispdata)
{ wait();
RS=1;
RW=0;
E=0;
_nop_(); _nop_();
LcdData=dispdata;
E=1;
_nop_(); _nop_();
E=0;
}
//写指令代码
void Lcd_WriteCmd(unsigned char cmdcode)
{ wait();
RS=0;
RW=0;
E=0;
_nop_(); _nop_();
LcdData=cmdcode;
_nop_(); _nop_();
E=1;
_nop_(); _nop_();
E=0;
}
//初始化LCD
void Lcd_Reset()
{ // PSB=1;
Lcd_WriteCmd(0x30); //选择基本指令集
delay(5);
Lcd_WriteCmd(0x0c); //开显示(无游标、不反白)
delay(5);
Lcd_WriteCmd(0x01); //清除显示,并且设定地址指针为00H
delay(5);
Lcd_WriteCmd(0x06); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
}
void WriteStr(unsigned char code *s)
{
while(*s>0)
{ Lcd_Writedata(*s);
s++;
}
}
void hzDisp()
{
Lcd_WriteCmd(0x80);
WriteStr(" ");
Lcd_WriteCmd(0x90);
WriteStr("系统初始化");
Lcd_Writedata(0x2e);
Lcd_Writedata(0x2e);
Lcd_Writedata(0x2e);
Lcd_Writedata(0x2e);
Lcd_Writedata(0x2e);
delay(20000);
Lcd_WriteCmd(0x90);
WriteStr(" ");
be=0;
delay(500);
be=1;
delay(500);
be=0;
delay(300);
be=1;
delay(300);
be=0;
delay(100);
be=1;
delay(100);
delay(100);
Lcd_WriteCmd(0x80);
WriteStr("欢迎使用");
Lcd_WriteCmd(0x88);
WriteStr(" 智能家居系统");
delay(10000);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -