📄 at89c51.c
字号:
#include<reg51.h>
unsigned char num;
void delay(void)
{ unsigned char i;
for(i=0;i<200;i++)
{}
}
unsigned char keyscan(void)
{ unsigned char test,tmp;
P1=0xf0;
if((P1&0xf0)!=0xf0)
{ delay();
if((P1&0xf0)!=0xf0)
{ test=0xfe;
while((test&0x10)!=0)
{ P1=test;
if((P1&0xf0)!=0xf0)
{ tmp=(P1&0xf0)|0x0f;
return(~(test)+~(tmp));
}
else test=(test<<1)|0x01;
}
}
}
return(0);
}
void readkey(unsigned char date)
{ switch(date)
{ case 0X11: num=0;break;
case 0X21: num=1;break;
case 0X41: num=2;break;
case 0X81: num=3;break;
case 0X12: num=4;break;
case 0X22: num=5;break;
case 0X42: num=6;break;
case 0x82: num=7;break;
case 0x14: num=8;break;
case 0x24: num=9;break;
case 0x44: num=10;break;
case 0x84: num=11;break;
case 0x18: num=12;break;
case 0x0: num=15;break;
}
}
void main(void)
{ while(1)
{unsigned char a;
a=keyscan();
readkey(a);
P2=num;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -