📄 key_scan.c
字号:
#include <reg52.h>
#include <intrins.h>
#define TIMER0_COUNT 1000
#define uchar unsigned char
extern void delay(unsigned int ms);
code uchar key_code[]={0xee,0xed,0xeb,0xe7, //0.1.2.3.
0xde,0xdd,0xdb,0xd7, //4.5.6.7.
0xbe,0xbd,0xbb,0xb7, //8.9.a.b.
0x7e,0x7d,0x7b,0x77}; //c.d.e.f.
code ksp[4]={0xfe,0xfd,0xfb,0xf7};
uchar keypad_scan()
{
uchar key,i;
P1=0xf0;
while(P1!=0xf0);
do
{
for(i=0;i<4;i++)
{
P1=ksp[i];
if(P1!=ksp[i])
{
delay(20);
key=P1;
if(key!=ksp[i])
{
P1=0xff; // P1归1
return(key);
}
}
}
}while(1);
}
uchar gotkey()
{
uchar temp,i;
temp=keypad_scan();
for(i=0;i<=15;i++)
{
if(temp==key_code[i]) return(i);
}
return(16);
}
/*
void Timer0(void) interrupt 1 using 1
{
TL0=0x00;
// TH0=0x25; // 25ms
TH0=0x01;
// if(p14==0) {p14_sign=1; EA=0;}
// else p14_sign=0;
if(p15==0) {p15_sign=1; EA=0;}
if(p16==0) {p16_sign=1; EA=0;}
// if(p17==0) {p17_sign=1; EA=0;}
// else p17_sign=0;
}
void Timer0_star()
{
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -