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

📄 mima.c

📁 液晶屏幕的密码锁
💻 C
📖 第 1 页 / 共 2 页
字号:
	temp&=0xf0;
	if(temp!=0xf0)
	{
		delay(5);
		temp=P3;
		temp&=0xf0;
		if(temp!=0xf0)
		{
			temp=P3;
			count++;
			switch(temp)
			{
				case 0xed:
				{
					num=4;
					if(count<6)
					{
						if(set==1)
						pws[count]=4;
						else
						pwx[count]=4;
						Displayhf(1,2,8*count,0);
					}
				}	break;
				case 0xdd:
				{
					num=5;
					if(count<6)
					{
						if(set==1)
						pws[count]=5;
						else
						pwx[count]=5;
						Displayhf(1,2,8*count,0);
					}
				}	break;
				case 0xbd:
				{
					num=6;
					if(count<6)
					{
						if(set==1)
						pws[count]=6;
						else
						pwx[count]=6;
						Displayhf(1,2,8*count,0);
					}
				}	break;
			}
			while(temp!=0xf0)
			{
				temp=P3;
				temp&=0xf0;
			}
		}
	}

	P3=0xfb;
	temp=P3;
	temp&=0xf0;
	if(temp!=0xf0)
	{
		delay(5);
		temp=P3;
		temp&=0xf0;
		if(temp!=0xf0)
		{
			temp=P3;
			count++;
			switch(temp)
			{
				case 0xeb:
				{
					num=1;
					if(count<6)
					{
						if(set==1)
						pws[count]=1;
						else
						pwx[count]=1;
						Displayhf(1,2,8*count,0);
					}
				}	break;
				case 0xdb:
				{
					num=2;
					if(count<6)
					{
						if(set==1)
						pws[count]=2;
						else
						pwx[count]=2;
						Displayhf(1,2,8*count,0);
					}
				}	break;
				case 0xbb:
				{
					num=3;
					if(count<6)
					{
						if(set==1)
						pws[count]=3;
						else
						pwx[count]=3;
						Displayhf(1,2,8*count,0);
					}
				}	break;
			}
			while(temp!=0xf0)
			{
				temp=P3;
				temp&=0xf0;
			}
		}
	}

	P3=0xf7;
	temp=P3;
	temp&=0xf0;
	if(temp!=0xf0)
	{
		delay(5);
		temp=P3;
		temp&=0xf0;
		if(temp!=0xf0)
		{
			temp=P3;
			count++;
			switch(temp)
			{
				case 0xe7:	//确定键
				{
					num=20;
				}	break;
				case 0xd7:
				num=0;
				if(count<6)
				{
					if(set==1)
					pws[count]=0;
					else
					pwx[count]=0;
					Displayhf(1,2,8*count,0);
				}
				break;
				case 0x77:		//复位键
				{
					ClearScreen(0);
					shulu();
					count=-1;
					set=0;
				}
				break;
			}
			while(temp!=0xf0)
			{
				temp=P3;
				temp&=0xf0;
			}
		}
	}
	return(num);
}
bit compare()	//密码比较
{
	if((pws[0]==pwx[0])&(pws[1]==pwx[1])&(pws[2]==pwx[2])&(pws[3]==pwx[3])&(pws[4]==pwx[4])&(pws[5]==pwx[5]))
	rightflag=1;
	else 
	rightflag=0;
	return(rightflag);
}
void shulu()	//开始液晶显示的字
{
	Display(1,0,0,0);
	Display(1,0,16,1);
	Display(1,0,32,2);
	Display(1,0,48,3);
	Display(2,0,64,4);
	Displayhf(2,0,80,1);	
}
void main()
{
	Init();
	shulu();
	while(1)
	{
		keyscan();
		if(num==20)		//当确定键按下
		{
			if(count==6)
			{
				if(set==1)	//当设置键按下
				{
					compare();	//比较输入的密码和原始的密码是否一致
					if(rightflag==1)	//若一致
					{
						ClearScreen(0);		//清屏
						Display(1,0,0,0);	//请
						Display(1,0,16,1);	//输
						Display(1,0,32,2);	//入
						Display(1,0,48,25);	//六
						Display(2,0,64,26);	//位
						Display(2,0,80,13);	//新
						Display(2,0,96,3);	//密
						Display(2,0,112,4);	//码
						count=-1;		
						while(count!=6)	//等待输入六位新密码
						{
							keyscan();
						}
						ClearScreen(0);	//输入完后清屏
						Display(1,0,0,3);	//显示"密码设置完成!"
						Display(1,0,16,4);
						Display(1,0,32,16);
						Display(1,0,48,17);
						Display(2,0,64,18);
						Display(2,0,80,19);
						Displayhf(2,0,96,3);
				 		delay(1000);	//延时1S
						ClearScreen(0);	
						shulu();	//显示"请输入密码:"
						count=-1;	
						num=12;		//退出IF语句,从新按键检测
						set=0;		//设置状态清0
					}
					else	//若不一致
					{
						ClearScreen(0);
						Display(1,0,0,20);	//显示"您输入的密码有误"
						Display(1,0,16,1);
						Display(1,0,32,2);
						Display(1,0,48,21);
						Display(2,0,64,3);
						Display(2,0,80,4);
						Display(2,0,64,22);
						Display(2,0,80,11);
						delay(1000);	
						Display(1,0,0,0);	//显示"请按设置键重新输入"
						Display(1,0,16,23);
						Display(1,0,32,16);
						Display(1,0,48,17);
						Display(2,0,64,24);
						Display(2,0,80,12);
						Display(2,0,96,13);
						Display(2,0,112,1);
						Display(1,2,0,2);
						count=-1;
						while(count!=-1)	//等待按设置键
						{
							keyscan();
						}
						num=12;
						count=-1;
					}
				}
				else	//按下确定密码输入比较时
				{
					compare();	//密码比较
					if(rightflag==1)	//若相同
					{
						ClearScreen(0);
						Display(1,0,0,3);	//显示"密码正确谢谢合作"
						Display(1,0,16,4);
						Display(1,0,32,5);
						Display(1,0,48,6);
						Display(2,0,64,7);
						Display(2,0,80,7);
						Display(2,0,96,8);
						Display(2,0,112,9);
						num=12;
					}
					else	//若不一致
					{
						ClearScreen(0);
						Display(1,0,0,3);	//显示"密码错误请重新输入"
						Display(1,0,16,4);
						Display(1,0,32,10);
						Display(1,0,48,11);
						Display(2,0,64,0);
						Display(2,0,80,12);
						Display(2,0,96,13);
						Display(2,0,112,1);
						Display(1,2,0,2);
						delay(1000);
						num=12;
						ClearScreen(0);
						shulu();
						count=-1;
					}
				}
			}
			else	//当输入的密码位数不为6时
			{
				if(set==1)
				{
					ClearScreen(0);
					Display(1,0,0,20);
					Display(1,0,16,1);
					Display(1,0,32,2);
					Display(1,0,48,21);
					Display(2,0,64,3);
					Display(2,0,80,4);
					Display(2,0,64,22);
					Display(2,0,80,11);
					delay(1000);
					Display(1,0,0,0);
					Display(1,0,16,23);
					Display(1,0,32,16);
					Display(1,0,48,17);
					Display(2,0,64,24);
					Display(2,0,80,12);
					Display(2,0,96,13);
					Display(2,0,112,1);
					Display(1,2,0,2);
					count=-1;
					while(count!=-1)
					{
						keyscan();
					}
					num=12;
					count=-1;
				}
				else
				{
					ClearScreen(0);
					Display(1,0,0,3);
					Display(1,0,16,4);
					Display(1,0,32,10);
					Display(1,0,48,11);
					Display(2,0,64,0);
					Display(2,0,80,12);
					Display(2,0,96,13);
					Display(2,0,112,1);
					Display(1,2,0,2);
					delay(1000);
					num=12;
					ClearScreen(0);
					shulu();
					count=-1;
				}
			}
		}
	}
}

⌨️ 快捷键说明

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