📄 4x4 key.txt
字号:
#include"reg51.h"
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void key();
void debar();
void read_key();
extern uchar comp; //定义全局变量
uchar code tab[]={0xe7,0xd7,0xb7,0x77,0xeb,0xdb,0xbb,0x7b,0xed,0xdd,0xbd,0x7d,0xee,0xde,0xbe,0x7e};
uchar code tab1[]={0x09,0x7d,0x07,0x15,0x71,0x91,0x81,0x3d,0x01,0x11,0x21,0xc1,0x8b,0x45,0x83,0xa3};
/***********************
10ms秒延时
***********************/
void delay_10us()
{ _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
void delay_10ms()
{ int i;
for(i=0;i<1000;i++)
{ delay_10us();
}
}
/***********************
判键
***********************/
void key()
{ uchar temp,asm;
P1=0x0f;
comp=0x0f;
temp=P1∁
P1=0xf0;
comp=0xf0;
asm=P1∁
comp=temp|asm;
if(comp==0xff)
{ key();
}
else
{ debar();
}
}
/***************************
消抖程序
***************************/
void debar()
{ delay_10ms();
if(comp==0xff)
{ key();
}
else
{ read_key();
}
}
/*************************
读键并显示出键码
*************************/
void read_key()
{ uint i,number;
for(i=0;i<16;i++)
{ if(comp==tab[i])
number=i;
SBUF=tab1[number];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -