⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getpw.h

📁 单片机控制电子门 密码锁
💻 H
字号:
   void enter_pw()
{
	pwbuf[num]=tmp;//保存输入的键值
	num++;
	if(num==4)//密码多于四位,输入无效
	{
		num=4;
		lock_flag=0;//锁键盘,无效输入
	}	
}
void check()
{
	uchar i,j,k;
	for(i=0;i<4;i++)//比较 万能密码
	{
		if(pw[i]!=pwbuf[i]) //中间有一位密码不正确跳出
		break;
	}
	for(j=0;j<4;j++)//比较自设密码
	{
		if(newpw[j]!=pwbuf[j]) //中间有一位密码不正确跳出
		break;
	}
	for(k=0;k<4;k++)//比较 显示时间密码
	{
		if( timepw[k]!=pwbuf[k]) //中间有一位密码不正确跳出
		break;
	}
	if((i==4) || (j==4))
	{
		num=0;
		pw_flag=1;
	}
	if(pw_flag)
		open();//正确开门
	else
		close();//错误关门,并错误处理
	if(k==4)
	{
//		flag2=1;
		flag3=1;//----------------------test
	}
}
void esc()
{
	lock_flag=1;//开启数字键盘
	num--;
	if(!num)
		num=0;
	pwbuf[num]=11;//"--"
}
void getpw()
{
	while(1)
	{
		//speak=~speak;
		tmp=keyscanf();
		//tmp=10;//---------------------------------------------test
		if((tmp>=0) && (tmp<=9))//数字键
		{
			if(lock_flag)
			enter_pw();//数字 得到密码
		}
		else if(tmp==10)//确定 处理
		{
			check();break;//转去检测函数
		}
		else if(tmp==11)//取消键 处理
		{
			esc();//消除动态密码最后一位数字
		}
		display();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -