📄 getkey.c
字号:
#include<absacc.h>
#include<reg51.h>
#define BYTE unsigned char
#define WORD unsigned int
#define COM8155 XBYTE[0xA100]
#define PA8155 XBYTE[0xA101]
#define PB8155 XBYTE[0xA102]
#define PC8155 XBYTE[0xA103]
sbit bBusy=P3^2;
void Delay()
{
WORD i;
for ( i=1000;i>0;i-- ) ;
}
BYTE GetKey( void )
{
BYTE i,scode;//scode为中间变量
//row = 0xFF;
COM8155 = 0x02;
PB8155 = 0x00;
while ( 1 )
{
if( bBusy == 0 )
{
Delay();//延时去抖动
if ( bBusy == 0 )
{
scode=0xFE;//逐列扫描
for ( i=0;i<8;i++ )
{
PB8155=scode;
if(bBusy==0)
{
if ( PC8155 & 0x10 == 0 )
return i;// row=(PB8155&0x30)|0xcf;//"0"代表键值所在位
else
return ( i + 8 );
break;
}
else
scode=(scode<<1)|0x01;//列扫描码左移
}
}
}
}
Delay();
return 1;
}
void main ( void )
{
while (1)
{
XBYTE[0xE000] = GetKey();
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -