📄 key.c
字号:
#include "2407c.h"
ioport unsigned char port8001;
ioport unsigned char port8005;
char ConvertScanToChar(unsigned char cScanCode);
unsigned char ledbuf[8],ledx[8];
unsigned char ledkey[16][8]=
{
{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00},
{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1
{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2
{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},
{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},
{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},
{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},
{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00},
{0x00,0x00,0xF8,0x24,0x22,0x24,0xF8,0x00},
{0x00,0x00,0xFE,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x7C,0x82,0x82,0x82,0x44,0x00},
{0x00,0x00,0xFE,0x82,0x82,0x82,0x7C,0x00},
{0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x00},
{0x00,0x00,0xFE,0x12,0x12,0x12,0x12,0x00}
};
main()
{ char cKey=0;
unsigned char nScanCode;
unsigned int uWork;
int i,nKeyCode;
for ( uWork=0;uWork<8;uWork++ )
{
ledbuf[uWork]=0x0ff;
ledx[uWork]=1<<(uWork);
}
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa;
*SCSR1=0x81fe;
*IMR=0x0;
*IFR=0xffff;
uWork=(*WSGR);
uWork&=0x0fe3f;
(*WSGR)=uWork;
for(;;)
{
nScanCode=port8001;
nScanCode&=0x0ff;
if ( nScanCode!=0 )
{
cKey=ConvertScanToChar(nScanCode);
}
if ( nScanCode!=0 )
{
nKeyCode=( cKey>='0' && cKey<='9' )?(cKey-'0'):(cKey-'A'+10);
for ( i=0;i<8;i++ )
ledbuf[i]=~ledkey[nKeyCode][7-i];
}
for ( i=0;i<8;i++ )
{
port8005=ledx[i];
port8005=ledbuf[i];
}
}
}
char KeyLUT[16]={ '0','1','2','3',
'4','5','6','7',
'8','9','A','B',
'C','D','E','F'
};
char ConvertScanToChar(unsigned char 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 + -