📄 keyboard.c
字号:
#include <at89x51.h>
#include <absacc.h>
#define PA XBYTE[0XE000] // 8255 port A
#define PB XBYTE[0XE001] // 8255 port B
#define PC XBYTE[0XE002] // 8255 port C
#define CMD XBYTE[0XE003] // 8255 configuration word
#define byte unsigned char
#define word unsigned int
byte key_row;
byte key_column;
void delay20ms(void);
void display(void);
void calc_key(void);
void display(void)
{
// display
}
void delay20ms(void)
{
byte i,j,k;
for(i=10; i>0; i--)
for(j=4; j>0; j--)
for(k=248; k>0; k--);
}
void calc_key(void)
{
byte tdata,i,j;
PA = 0x8F;
tdata = PB;
if (0xFF != tdata){
delay20ms();
tdata = PB;
if (0xFF != tdata){
for (i=0; i<8; i++){
if (tdata == ~(1<<i)){
key_column = i+1;
for (j=4; j<7; j++){
PA = 0x8F | (1<<j);
tdata = PB;
if (0xFF != tdata){
key_row = j-3;
display();
return;
}
}
key_column = 0;
return;
}
}
}
}
}
void main(void)
{
CMD = 0x82; //10000010
for (;;){
calc_key();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -