📄 lcd.c
字号:
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
}
};
main()
{
int i,j,k,m,nCount=0;
int repeat = 0;
unsigned int uWork;
unsigned int nScanCode;
char cKey=0;
//int page=0;
int pageNum = 3;//总页数为3
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa;
*SCSR1=0x81fe;
*IMR=0x0;
*IFR=0xffff;
uWork=(*WSGR);
uWork&=0x0fe3f;
(*WSGR)=uWork;
LCDCLS(); // 清除显示内存
TurnOnLCD(); // 打开显示
port8001=LCDCMDSTARTLINE; // 设置显示起始行
port8002=0;
Delay(LCDDELAY);
for(;;)
{
for(k=0;k<3;k++)
//LCDCLS();
{
LCDCLS();
for (m=0;m<8;m++)
{
for (j=0;j<8;j++)
{
port8001=LCDCMDPAGE+j; // 设置操作页=0
port8002=0;
Delay(LCDDELAY);
port8001=LCDCMDVERADDRESS+m*8; // 起始列=0
port8002=0;
Delay(LCDDELAY);
for ( i=0;i<8;i++ )
{
port8003=ledkey[k][nCount][i]; // 屏幕左侧第1至8行第i列赋值 port8004=ledkey[nCount][i];
port8004=ledkey[k][nCount][i];
port8002=0; // (赋值后当前操作列自动加1,所以不需设置)
port8002=0;
Delay(LCDDELAY);
}
Delay(2048);
nCount++;
nCount%=128;
}
}
}
nScanCode=port8001;//*************
nScanCode&=0x0ff;
if ( nScanCode!=0 )
{
repeat++; //如果设备正常,注释掉此句
repeat %= 2;
if (repeat == 0)
{
cKey=ConvertScanToChar(nScanCode);
if (cKey == '0'){
LCDCMDPAGE = 0xb8;
LCDCMDVERADDRESS = 0x40;
nCount = 0;
if (k != 0)
k--;
LCDCLS();
//Delay(2048*5);
}else if (cKey == '1'){
LCDCMDPAGE = 0xb8;
LCDCMDVERADDRESS = 0x40;
nCount = 0;
if (k != (pageNum - 1))
k++;
LCDCLS();
//Delay(2048*5);
}else if (cKey == '2'){
LCDCMDPAGE = 0xb8;
LCDCMDVERADDRESS = 0x40;
nCount = 0;
k = 0;
LCDCLS();
//Delay(2048*5);
}else if (cKey == '3'){
LCDCMDPAGE = 0xb8;
LCDCMDVERADDRESS = 0x40;
nCount = 0;
k = pageNum -1;
LCDCLS();
//Delay(2048*5);
}
}
}
}
}
void Delay(unsigned int nDelay)
{
int ii,jj,kk=0;
for ( ii=0;ii<nDelay;ii++ )
{
for ( jj=0;jj<64;jj++ )
{
kk++;
}
}
}
void TurnOnLCD()
{
port8001=LCDCMDTURNON;
port8002=0;
Delay(1024);
port8001=LCDCMDSTARTLINE;
port8002=0;
Delay(LCDDELAY);
}
void LCDCLS()
{
int i,j;
port8001=LCDCMDSTARTLINE;
port8002=0;
Delay(LCDDELAY);
for ( i=0;i<8;i++ )
{
port8001=LCDCMDPAGE+i;
port8002=0;
Delay(LCDDELAY);
port8001=LCDCMDVERADDRESS;
port8002=0;
Delay(LCDDELAY);
for ( j=0;j<64;j++ )
{
port8003=0;
port8002=0;
Delay(LCDDELAY);
}
port8001=LCDCMDPAGE+i;
port8002=0;
Delay(LCDDELAY);
port8001=LCDCMDVERADDRESS;
port8002=0;
Delay(LCDDELAY);
for ( j=0;j<64;j++ )
{
port8004=0;
port8002=0;
Delay(LCDDELAY);
}
}
}
char KeyLUT[16]={ '0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F'
};
char ConvertScanToChar(unsigned int cScanCode)
{
int nWork;
unsigned int uWork1,uWork2;
uWork1=uWork2=cScanCode;
uWork1>>=4;
uWork2&=0x0f;
switch ( uWork1 )
{
case 1: nWork=0; break;
case 2: nWork=4; break;
case 4: nWork=8; break;
case 8: nWork=12; break;
}
switch ( uWork2 )
{
case 1: nWork+=3; break;
case 2: nWork+=2; break;
case 4: nWork+=1; break;
}
return KeyLUT[nWork];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -