📄 keytext.c
字号:
#include"reg52.h"
#include"intrins.h"
#define uchar unsigned char
uchar const keyin[]={0x7e,0xbe,0xde,0xee/*row one*/,0x7d,0xbd,0xdd,0xed/*row two*/,0x7b,0xbb,0xdb,0xeb/*row three*/,0x77,0xb7,0xd7,0xe7/*row four*/};
uchar const keyvalue[]={0x0,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
//uchar const display_value[]={0x2,0x9e,0x24,0xc,0x98,0x48,0x40,0x1e,0x0,0x8,0x10,0xc0,0x62,0x84,0x60,0x70};
uchar keybroad_value,keyflag;
void delay10ms()
{
uchar i,j;
for(j=10;j>0;j--)
{
for(i=0;i<125;i++)
{;}
}
}
void keyscan()
{
uchar first_value,temp,i,j;
first_value=0xfe;
j=0;
for(;j<4;j++)
{
P1=first_value;
temp=P1;
if(temp!=first_value)
{
delay10ms();
if(P1==temp)
{
for(i=0;i<16;)
{
if(temp==keyin[i])
{
keybroad_value=keyvalue[i];
keyflag=1;
break;
}
i++;
}
}
}
if(keyflag) break;
else first_value=_crol_(first_value,1);
}
}
void main()
{
P2=0x05;
SCON=0x50;
TMOD=0x20;
IE=0x82;
TH1=0xF3;
TR1=1;
while(1)
{
while(!RI);
RI=0;
P0=SBUF;
keyflag=0;
keyscan();
while(!TI);
TI=0;
P0=SBUF=keybroad_value;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -