Yueming Mo's Blog_CSDN Blog - Lanqiao Cup MCU, Opencv, Proteus8 field blogger
Brother Dafeng~'s blog_CSDN blog-field blogger
Key knowledge points: Use the state machine keyboard - long press S4 to display the digital tube, release it to not display the digital tube
unsigned char()
{
u8 temp,val;
temp=P3&0x0f;
switch(temp) //1111 -8421
{
case 0x0e: val=7; break;
case 0x0d: val=6; break;
case 0x0b: val=5; break;
case 0x07: val=4; break;
default: val=0; break;
}
return val;
}
void scan_key() //每10ms扫描一次
{
u8 up,down,temp;
static u8 old=0;
temp=read_key();
down=temp&(old^temp);
up =~temp&(old^temp);
old=temp;
if(down)//按下执行
{ if(smg_mode==0&&temp==4) //按下s4,且当前界面在0,
smg_mode=3; //切换到界面3
}
if(up)//按下松开执行
{
if(smg_mode==3) //当前界面在3,
smg_mode=0; //切换到原来界面0
else keyval=up;
}
}