📄 lcd.h
字号:
#include "config.h" /* system definition */
#include "intrins.h"
#define LCDPORT P4
#define nop _nop_
uchar code CH[]="播放器测试程序";
uchar code MEG[]="错误 ";
uchar code FIG[]="0123456789ABCDEF ";
uchar code MES1[]="中断外";
uchar code MES2[]="进入中断";
sbit CS1=P1^7;
sbit CS2=P1^6;
sbit LA0=P1^4;
sbit LRW=P1^5;
sbit LCDRS=P1^7;
sbit LCDRW=P1^6;
sbit LCDEN=P1^4;
sbit LED1=P3^6;
sbit LED2=P3^7;
void LcdWrite(bit rd,uchar lcddata)
{LCDRS=rd;
LCDRW=0;
LCDEN=1;
LCDPORT=lcddata;
delay(50);
LCDEN=0;
LCDPORT=0xff;
}
uchar LcdRead(void)
{uchar lcddata;
LCDRS=0;
LCDRW=1;
LCDEN=1;
lcddata=LCDPORT;
delay(50);
LCDEN=0;
return(lcddata);
}
void ReadBusy()
{uchar busy;
do{busy=LcdRead();}while(busy&0x80);
}
void LcdWriteCH(uchar pos,uchar data1,uchar data2)
{ReadBusy();
LcdWrite(0,pos);
ReadBusy();
LcdWrite(1,data1);
ReadBusy();
LcdWrite(1,data2);
}
void inilcd(void)
{uint j=0;
LcdWrite(0,0x30);
LcdWrite(0,0x04);
ReadBusy();
LcdWrite(0,0x0f);
ReadBusy();
LcdWrite(0,0x01);
ReadBusy();
LcdWrite(0,0x02);
LcdWriteCH(0x80,CH[j++],CH[j++]);
LcdWriteCH(0x81,CH[j++],CH[j++]);
LcdWriteCH(0x82,CH[j++],CH[j++]);
LcdWriteCH(0x83,CH[j++],CH[j++]);
LcdWriteCH(0x84,CH[j++],CH[j++]);
LcdWriteCH(0x85,CH[j++],CH[j++]);
LcdWriteCH(0x86,CH[j++],CH[j++]);
}
void LcdCluster(uint cluster)
{LcdWriteCH(0x90,FIG[(uchar)((cluster&0xf000)>>12)],FIG[(uchar)((cluster&0x0f00)>>8)]);
LcdWriteCH(0x91,FIG[(uchar)((cluster&0x00f0)>>4)],FIG[(uchar)(cluster&0x000f)]);
}
void LcdSectorr(uint sector)
{LcdWriteCH(0x93,FIG[(uchar)((sector&0xf0000000)>>28)],FIG[(uchar)((sector&0x0f000000)>>24)]);
LcdWriteCH(0x94,FIG[(uchar)((sector&0x00f00000)>>20)],FIG[(uchar)((sector&0x000f0000)>>16)]);
LcdWriteCH(0x95,FIG[(uchar)((sector&0x0000f000)>>12)],FIG[(uchar)((sector&0x00000f00)>>8)]);
LcdWriteCH(0x96,FIG[(uchar)((sector&0x000000f0)>>4)],FIG[(uchar)(sector&0x0000000f)]);
}
void LcdFlag(uchar a)
{if(a){LcdWriteCH(0x93,MES1[0],MES1[1]);
LcdWriteCH(0x94,MES1[2],MES1[3]);
LcdWriteCH(0x95,MES1[4],MES1[5]);
}
else{LcdWriteCH(0x93,MES2[0],MES2[1]);
LcdWriteCH(0x94,MES2[2],MES2[3]);
LcdWriteCH(0x95,MES2[4],MES2[5]);
LcdWriteCH(0x96,MES2[6],MES2[7]);
}
}
void LcdDirCHS(Uint32 IntCode[10])
{uchar i;
for(i=0;i<7;i++)
LcdWriteCH(0x80+i,(uchar)((IntCode[i]&0xff00)>>8),(uchar)(IntCode[i]&0x00ff));
for(i=7;i<10;i++)
LcdWriteCH(0x89+i,(uchar)((IntCode[i]&0xff00)>>8),(uchar)(IntCode[i]&0x00ff));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -