📄 mylcd.h
字号:
////////////mylcd.h//////////////
#include "C8051F040.h" // Register definition file.
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
#define toup sendc(0x14) //lcd光标右移
#define todown sendc(0x10)//lcd光标左移
#define curshow sendc(0x0f)//显示光标
#define home sendc(0x02)//移到首行
#define cls sendc(0x01)//清屏
sbit lcdrs=P5^2;//硬件控制接口
sbit lcdrw=P5^1;
sbit lcdcs=P5^0;
void delay1ms(uint time){//延迟1ms*time,这不是一个精确值
uint i;
uint j;
for (i=0;i<time;i++){
for(j=0;j<300;j++);
}
}
void sendc(uchar c){//给lcd送命令
SFRPAGE = 0x0f;//以下实际上是对lcd发送命令的时序图进行操作的
P4=c;
lcdrs=0;
lcdrw=0;
EA=0;
lcdcs=1;
lcdcs=0;
lcdcs=1;
lcdrw=1;
P4=0xff;//先置1,后读取
lcdrs=0;
while(P4>=0x80);
lcdcs=0;
lcdcs=1;
EA=1;
if(c==1)
delay1ms(2);
}
void sendd(uchar c){//给lcd送数据
SFRPAGE = 0x0f;
EA=0;
P4=c;
lcdrs=1;
lcdrw=0;
lcdcs=1;
lcdcs=0;
lcdcs=1;
lcdrw=1;
P4=0xff;//先置1,后读取
lcdrs=0;
while(P4>=0x80);
lcdcs=0;
lcdcs=1;
EA=1;
}
uchar readd(){//给显示lcd送显示字符
uchar k;
SFRPAGE = 0x0f;
EA=0;
lcdrw=1;
P4=0xff;
lcdrs=1;
k=P4;
lcdcs=0;
lcdcs=1;
P4=0xff;//先置1,后读取,否则所读数据可能有误
lcdrs=0;
while(P4>=0x80);//读LCD是否为忙
lcdcs=0;
lcdcs=1;
EA=1;
return k;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -