📄 ken.c
字号:
#include<stdio.h>
#include<reg52.h>
int tdelay;
char key;
void display(void);
void delay(int t)
{ int i;
while(t--)
{ for(i=0;i<125;i++)
{}
}
}
void keyscan(void)
{ char scancode,tempcode;
display();
P2=0X00;
P1=0XFF;
delay(50);
P1=0X0F;
if((P1&0X0F)!=0X0F)
{ delay(50);/*xiaodou yanshi*/
scancode=0X0E;
P1=0X0F;
switch(P1)
{
case 0x0e:tempcode=0x00;break;
case 0x0d:tempcode=0x01;break;
case 0x0b:tempcode=0x02;break;
case 0x07:tempcode=0x03;break;
default: break;
}
scancode=0X0d;
P1=0X0F;
switch(P1)
{
case 0x0e:tempcode=0x04;break;
case 0x0d:tempcode=0x05;break;
case 0x0b:tempcode=0x06;break;
case 0x07:tempcode=0x07;break;
default: break;
}
scancode=0X0b;
P1=0X0F;
switch(P1)
{
case 0x0e:tempcode=0x08;break;
case 0x0d:tempcode=0x09;break;
case 0x0b:tempcode=0x0a;break;
case 0x07:tempcode=0x0b;break;
default: break;
}
scancode=0X07;
P1=0X0F;
switch(P1)
{
case 0x0e:tempcode=0x0c;break;
case 0x0d:tempcode=0x0d;break;
case 0x0b:tempcode=0x0e;break;
case 0x07:tempcode=0x0f;break;
default: break;
}
key=tempcode;
display();
}
}
void display(void)
{ switch(key)
{case 0x00: P3=0xc0;break;
case 0x01: P3=0xf9;break;
case 0x02: P3=0xa4;break;
case 0x03: P3=0xb0;break;
case 0x04: P3=0x99;break;
case 0x05: P3=0x92;break;
case 0x06: P3=0x82;break;
case 0x07: P3=0xf8;break;
case 0x08: P3=0x80;break;
case 0x09: P3=0x98;break;
case 0x0a: P3=0x08;break;
case 0x0b: P3=0x03;break;
case 0x0c: P3=0xA7;break;
case 0x0d: P3=0xA1;break;
case 0x0e: P3=0x06;break;
case 0x0f: P3=0x8E;break;
default: P3=0xFF;break;
}
}
void mov(void)
{ switch(key)
{
case 0x00: tdelay=170;break;
case 0x01: tdelay=160;break;
case 0x02: tdelay=150;break;
case 0x03: tdelay=140;break;
case 0x04: tdelay=130;break;
case 0x05: tdelay=120;break;
case 0x06: tdelay=110;break;
case 0x07: tdelay=100;break;
case 0x08: tdelay=90;break;
case 0x09: tdelay=80;break;
case 0x0a: tdelay=70;break;
case 0x0b: tdelay=60;break;
case 0x0c: tdelay=50;break;
case 0x0d: tdelay=40;break;
case 0x0e: tdelay=30;break;
case 0x0f: tdelay=20;break;
default: tdelay=10;break;
}
P0=0X01;
delay(tdelay);
delay(tdelay);
P0=0x00;
delay(tdelay);
delay(tdelay);
}
main()
{ keyscan();
display();
mov();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -