📄 key.h
字号:
uchar key_flag;
uchar key_val;
uchar key_map[]={1,2,3,4,5,6,7,8,9};
uchar tam[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar key_pressred;
void Init_keypag() // 初始设制。
{
P1DIR=0xf0;
P1OUT =0x00;
P2DIR=0xff;
P3DIR=0xff;
P2OUT=0x00;
P3OUT=0x00;
key_val=0;
}
void check_key(void) //获得键盘数。
{
uchar row,col,tmp1,tmp2;
tmp1=0x80;
for(row=0;row<3;row++)
{
P1OUT=0xff;
P1OUT-=tmp1;
tmp1 >>=1;
if((P1IN&0x0f)<0x0f)
{
delay(10);
if((P1IN&0x0f)<0x0f)
{
tmp2=0x02;
for(col=0;col<3;col++)
{
if((P1IN&tmp2)==0x00)
{
key_val=key_map[row*3+col];
return;
// delay(80);
}
tmp2 <<=1;
}
}
}
}
}
void key_event() //检测案件,获取键值。
{
uchar tmp;
P1OUT &=0x00;
tmp=P1IN;
if((key_pressred==0x00)&&((tmp&0x0f)<0x0f))
{
key_pressred=1;
delay(5);
check_key();
}
else if((key_pressred==1)&&((tmp&0x0f)==0x0f))
{
key_pressred=0;
key_flag=1; //有键值了,可以在主函数中进行显示。
}
else{
_NOP();
}
}
void init_key()
{
P1IES=0x00;
P1IE=0x0f;
Init_keypag();
_EINT();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -