Blue Bridge Cup Ninth Lantern Festival (keyboard control)

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;  

	}
}

Guess you like

Origin blog.csdn.net/qq_56095985/article/details/129959379