?? 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 + -