📄 lcd.c
字号:
#define WriteData(data) XBYTE[LCD_DATA] = data
#define WriteCmd(cmd) XBYTE[LCD_CMDH] = CMD_MODLE;XBYTE[LCD_CMDL] = cmd
extern xdata unsigned char buffer[];
bit LcdBusy()
{
unsigned char ucstatus;
unsigned char uccount;
ucstatus = 0X80;
uccount = 10;
while(ucstatus)
{
XBYTE[LCD_CMDH] = 0x41;
ucstatus = XBYTE[LCD_STATUS]&0x80;
if(uccount--==0)return 0;
}
return 0;
}
bit LcdInital(void)
{
WriteCmd(0xe2);
if(LcdBusy())return 1;
WriteCmd(0xa1);
if(LcdBusy())return 1;
WriteCmd(0xc8);
if(LcdBusy())return 1;
WriteCmd(0xa9);
if(LcdBusy())return 1;
// WriteCmd(0xc0);
// if(LcdBusy())return 1;
WriteCmd(0xa3);
if(LcdBusy())return 1;
WriteCmd(0xa8);
if(LcdBusy())return 1;
WriteCmd(0x3f);
if(LcdBusy())return 1;
WriteCmd(0xad);
if(LcdBusy())return 1;
WriteCmd(0x01);
if(LcdBusy())return 1;
WriteCmd(0x2f);
if(LcdBusy())return 1;
WriteCmd(0x22);
if(LcdBusy())return 1;
//WriteCmd(0x74);
//if(LcdBusy())return 1;
if(LcdBusy())return 1;
WriteCmd(0x40);
if(LcdBusy())return 1;
WriteCmd(0xaf);
if(LcdBusy())return 1;
//jack 0827
WriteCmd(0xa9);
if(LcdBusy())return 1;
// WriteCmd(0xc1);
// if(LcdBusy())return 1;
WriteCmd(0xa2);
if(LcdBusy())return 1;
WriteCmd(0x81);
if(LcdBusy())return 1;
WriteCmd(0x33);
if(LcdBusy())return 1;
return 0;
}
bit ClearLcdRam(unsigned char Line)
{
xdata unsigned char page;
xdata unsigned char pageend;
xdata unsigned char i;
page = 0xb0 +(Line&0x0f);
pageend = 0xb0+((Line>>4)&0x0f);
do
{
WriteCmd(page);
if(LcdBusy())return 1;
WriteCmd(0x10);
if(LcdBusy())return 1;
WriteCmd(0x00);
if(LcdBusy())return 1;
XBYTE[LCD_CMDH] = DATA_MODLE;
for(i = 0;i < 112;i ++)
{
WriteData(0x00);
}
page++;
}while(page<=pageend);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -