📄 4x4.c
字号:
#include<reg51.h>
void delay(void);
unsigned char checkkey(void);
unsigned char key(void);
void main()
{
unsigned char code table[]={0x28,0xeb,0x32,0x62,0xe1,0x64,0x24,0xea,0x20,0x60,0xA0,0x25,0x3C,0x23,0x34,0xB4}; //0 to F
unsigned char m;
m=0;
P2=0xff;
while(1)
{
if(checkkey()!=0)
{
delay();
if(checkkey()!=0)
{
m=key();
}
}
P0=table[m];
}
}
unsigned char checkkey(void)
{
unsigned char n;
P3=0xf0;
n=P3;
return(~n&0xf0);
}
unsigned char key(void)
{
unsigned char i;
unsigned char k;
unsigned char n;
unsigned char temp;
i=0xfe;
n=5;
do
{
P3=i;
temp=~P3&0xf0;
i=(i<<1)|0x01;
}
while((--n!=0)&&(temp==0));
if(temp!=0)
{
if(~P3&0x80)k=16-4*n;
if(~P3&0x40)k=16-4*n+1;
if(~P3&0x20)k=16-4*n+2;
if(~P3&0x10)k=16-4*n+3;
P3=0xf0;
do
{
;
}while(~P3&0xf0);
}
return(k);
}
void delay(void)
{
unsigned char j;
unsigned char k;
for(j=20;j>0;j--)
for(k=250;k>0;k--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -