📄 e20_lcd.c
字号:
#include "E20_main.h"
CONST_CHAR TabDIP_ASCII[] = {
0x00,0x00, 0x00,0x00, 0x00,0x00, /* */
0x00,0x00, 0xbf,0x00, 0x00,0x00, /* ! */
0x00,0x03, 0x00,0x03, 0x00,0x00, /* " */
0x24,0xf4, 0x2f,0xf4, 0x2f,0x24, /* # */
0xc6,0x89, 0xff,0x91, 0x63,0x00, /* $ */
0x06,0xc9, 0x36,0x6c, 0x93,0x60, /* % */
0x70,0x8e, 0xb9,0x4e, 0xb8,0x80, /* & */
0x02,0x01, 0x00,0x00, 0x00,0x00, /* ' */
0x00,0x00, 0x00,0x7e, 0x81,0x00, /* ( */
0x00,0x00, 0x81,0x7e, 0x00,0x00, /* ) */
0x24,0x18, 0x7e,0x18, 0x24,0x00, /* * */
0x08,0x08, 0x7f,0x08, 0x08,0x00, /* + */
0x00,0x80, 0x00,0x00, 0x00,0x00, /* , */
0x08,0x08, 0x08,0x08, 0x08,0x00, /* - */
0x00,0x80, 0x00,0x00, 0x00,0x00, /* . */
0x00,0xe0, 0x18,0x07, 0x00,0x00, /* / */
0x7e,0x81, 0x81,0x81, 0x7e,0x00, /* 0 */
0x00,0x82, 0xff,0x80, 0x00,0x00, /* 1 */
0xc6,0xa1, 0x91,0x89, 0x86,0x00, /* 2 */
0x42,0x81, 0x89,0x89, 0x76,0x00, /* 3 */
0x10,0x2c, 0x22,0xff, 0xa0,0x00, /* 4 */
0x4f,0x89, 0x89,0x89, 0x71,0x00, /* 5 */
0x7e,0x89, 0x89,0x8b, 0x70,0x00, /* 6 */
0x03,0x01, 0xf9,0x07, 0x01,0x00, /* 7 */
0x76,0x89, 0x89,0x89, 0x76,0x00, /* 8 */
0x0e,0xd1, 0x91,0x91, 0x7e,0x00, /* 9 */
0x00,0x00, 0x84,0x00, 0x00,0x00, /* : */
0x00,0x00, 0x88,0x00, 0x00,0x00, /* ; */
0x00,0x08, 0x14,0x22, 0x41,0x80, /* < */
0x24,0x24, 0x24,0x24, 0x24,0x00, /* = */
0x00,0x80, 0x41,0x22, 0x14,0x08, /* > */
0x06,0x01, 0xb1,0x09, 0x06,0x00, /* ? */
0x7e,0x81, 0xb9,0xa5, 0xbe,0x00, /* @ */
0x80,0xf8, 0x27,0x3c, 0xe0,0x80, /* A */
0x81,0xff, 0x89,0x89, 0x76,0x00, /* B */
0x7e,0x81, 0x81,0x81, 0x43,0x00, /* C */
0x81,0xff, 0x81,0x81, 0x7e,0x00, /* D */
0x81,0xff, 0x89,0x9d, 0xc3,0x00, /* E */
0x81,0xff, 0x89,0x1d, 0x03,0x00, /* F */
0x3c,0x42, 0x81,0x91, 0x73,0x10, /* G */
0x81,0xff, 0x08,0x08, 0xff,0x81, /* H */
0x81,0x81, 0xff,0x81, 0x81,0x00, /* I */
0x80,0x01, 0x01,0xff, 0x01,0x01, /* J */
0x81,0xff, 0x89,0x34, 0xc3,0x81, /* K */
0x81,0xff, 0x81,0x80, 0x80,0xc0, /* L */
0xff,0x0f, 0xf0,0x0f, 0xff,0x00, /* M */
0x81,0xff, 0x8c,0x31, 0xff,0x01, /* N */
0x7e,0x81, 0x81,0x81, 0x7e,0x00, /* O */
0x81,0xff, 0x89,0x09, 0x06,0x00, /* P */
0x7e,0xa1, 0xa1,0xc1, 0x7e,0x00, /* Q */
0x81,0xff, 0x89,0x19, 0xe6,0x80, /* R */
0xc6,0x89, 0x89,0x91, 0x63,0x00, /* S */
0x03,0x81, 0xff,0x81, 0x03,0x00, /* T */
0x01,0x7f, 0x80,0x80, 0x7f,0x01, /* U */
0x01,0x1f, 0xe0,0x38, 0x07,0x01, /* V */
0x07,0xf8, 0x0f,0xf8, 0x07,0x00, /* W */
0x81,0xe7, 0x18,0xe7, 0x81,0x00, /* X */
0x01,0x87, 0xf8,0x87, 0x01,0x00, /* Y */
0x83,0xe1, 0x99,0x87, 0xc1,0x00, /* Z */
0x00,0x00, 0xff,0x81, 0x81,0x00, /* [ */
0x00,0x03, 0x0c,0x70, 0x80,0x00, /* \ */
0x00,0x81, 0x81,0xff, 0x00,0x00, /* ] */
0x00,0x04, 0x02,0x04, 0x00,0x00, /* ^ */
0x80,0x80, 0x80,0x80, 0x80,0x80, /* _ */
0x00,0x00, 0x02,0x00, 0x00,0x00, /* ` */
0x00,0x50, 0xa8,0xa8, 0xf0,0x80, /* a */
0x01,0xff, 0x88,0x88, 0x70,0x00, /* b */
0x00,0x70, 0x88,0x88, 0x98,0x00, /* c */
0x00,0x70, 0x88,0x89, 0xff,0x80, /* d */
0x00,0x70, 0xa8,0xa8, 0xb0,0x00, /* e */
0x00,0x88, 0xfe,0x89, 0x89,0x01, /* f */
0x00,0xd0, 0xa8,0xa8, 0x98,0x08, /* g */
0x81,0xff, 0x88,0x08, 0xf0,0x80, /* h */
0x00,0x88, 0xf9,0x80, 0x00,0x00, /* i */
0x00,0x00, 0x08,0xf9, 0x00,0x00, /* j */
0x81,0xff, 0xa0,0x38, 0xc8,0x88, /* k */
0x81,0x81, 0xff,0x80, 0x80,0x00, /* l */
0xf8,0x08, 0xf8,0x08, 0xf0,0x00, /* m */
0x88,0xf8, 0x88,0x08, 0xf0,0x80, /* n */
0x00,0x70, 0x88,0x88, 0x70,0x00, /* o */
0x08,0xf8, 0x88,0x88, 0x70,0x00, /* p */
0x00,0x70, 0x88,0x88, 0xf8,0x00, /* q */
0x88,0xf8, 0x90,0x08, 0x08,0x00, /* r */
0x00,0x98, 0xa8,0xa8, 0xc8,0x00, /* s */
0x00,0x08, 0x7e,0x88, 0x80,0x00, /* t */
0x08,0x78, 0x80,0x88, 0xf8,0x80, /* u */
0x08,0x38, 0xc8,0x60, 0x18,0x08, /* v */
0x18,0xe0, 0x38,0xe0, 0x18,0x00, /* w */
0x88,0xd8, 0x20,0xd8, 0x88,0x00, /* x */
0x08,0x38, 0xc8,0x60, 0x18,0x08, /* y */
0x00,0x88, 0xe8,0x98, 0x88,0x00, /* z */
0x00,0x00, 0x08,0xf7, 0x00,0x00, /* { */
0x00,0x00, 0x00,0xff, 0x00,0x00, /* | */
0x00,0x00, 0xf7,0x08, 0x00,0x00, /* } */
0x00,0x00, 0x00,0x01, 0x01,0x00, /* ~ */
};
CONST_CHAR TabDIP_END[] = {
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
};
BYTE MLCD_Read(BYTE gLocal_1){
IOP0 = 0xff;
pLRW = 1;
switch (gLocal_1){
case cLCDLow_C :
pLCS0 = 1;
pLCS1 = 0;
pLDI = 0;
break;
case cLCDLow_D :
pLCS0 = 1;
pLCS1 = 0;
pLDI = 1;
break;
case cLCDHigh_C :
pLCS0 = 0;
pLCS1 = 1;
pLDI = 0;
break;
case cLCDHigh_D :
pLCS0 = 0;
pLCS1 = 1;
pLDI = 1;
default : break;
}
pLE = 1;
gLocal_1 = P0;
pLE = 0;
pLCS0 = 1;
pLCS1 = 1;
return gLocal_1;
}
void MLCD_Write(BYTE gLocal_1, BYTE gLocal_2){
BYTE gLocal_3;
pLE = 1;
pLRW = 0;
switch (gLocal_1){
case cLCDLow_C :
pLCS0 = 1;
pLCS1 = 0;
pLDI = 0;
break;
case cLCDLow_D :
pLCS0 = 1;
pLCS1 = 0;
pLDI = 1;
if (FDIPReverse) gLocal_2 = ~gLocal_2;
break;
case cLCDHigh_C :
pLCS0 = 0;
pLCS1 = 1;
pLDI = 0;
break;
case cLCDHigh_D :
pLCS0 = 0;
pLCS1 = 1;
pLDI = 1;
if (FDIPReverse) gLocal_2 = ~gLocal_2;
default : break;
}
P0 = gLocal_2;
pLE = 0;
#ifndef V3LagreRAM
while (MLCD_Read(cLCDLow_C) & 0x80);
#else
gLocal_3 = 10;
while (--gLocal_3 != 0);
#endif
return;
}
void MWriteToLCD(BYTE gLocal_1, BYTE gLocal_2){
if (gLocal_1 > 63){
MLCD_Write(cLCDHigh_D, gLocal_2);
}
else{
MLCD_Write(cLCDLow_D, gLocal_2);
}
return;
}
void MLCDOffsetWrite(BYTE x, BYTE y){
y = 0xb8 + y;
MLCD_Write(cLCDHigh_C, y);
if (x < 64){
MLCD_Write(cLCDHigh_C, 0x40);
MLCD_Write(cLCDLow_C, y);
MLCD_Write(cLCDLow_C, 0x40 + x);
}
else{
MLCD_Write(cLCDHigh_C, 0x40 + (x-64));
}
return;
}
void M4094Output(){
M4094DataWrite(g4094Output);
p4094_ExtSTB = 1;
NOP();
p4094_ExtSTB = 0;
return;
}
void MDIPClearALL(){ /*清全屏*/
MDIPClearScreen(cDOTLine1);/*清除第一行*/
MDIPClearScreen(cDOTLine2);/*清除第二行*/
MDIPClearScreen(cDOTLine3);/*清除第三行*/
MDIPClearScreen(cDOTLine4);/*清除第四行*/
return;
}
void MDIPWriteString(BYTE gLocal_XS, BYTE gLocal_YS, const char *gpString) {
BYTE gLocal_1;
while (1) {
gLocal_1 = *gpString++;
if (gLocal_1 == 0x00) break;
MDIPASCIIToScreen(gLocal_XS, gLocal_YS, gLocal_1);
gLocal_XS += 7;
};
return;
}
void MDIPWriteChinese_String(BYTE gLocal_XS, BYTE gLocal_YS, const char *gpString) {
BYTE gLocal_1;
WORD g2Local_2;
WORD gLocal_2;
WORD g2Local_1;
while (1) {
g2Local_1 = *gpString++;
if (g2Local_1 == 0x00) break;
g2Local_2 = g2Local_1;
gLocal_1 = *gpString++;
gLocal_2 = gLocal_1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -