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

📄 util.c

📁 KEIL C上的门禁控制器源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
			}
			else
				pulse=3;
		}

		if(key=='C')
		{
			reverse=0;
			return;
		}
	}
}		

///////////////////////////////////////////////////////////////////////////////
// 设置韦根格式,采用上翻下翻方式选择
///////////////////////////////////////////////////////////////////////////////
void set_wie_proc()
{
	idata uchar temp;

	GLCD_ClearScreen ();
	GLCD_Locate(0,0);
	reverse=0;
	dprintf("韦根模式设置",12);

	GLCD_Locate(0,32);
	dprintf("韦根模式:",10);

	temp=Para_ee.Actual_para->Wiegand_format+0x30;

	if(temp<'0'||temp>'3')
		temp='0';		// 合法性检查,缺省0

	while(1)
	{
		GLCD_Locate(80,32);
		reverse=1;
		switch(temp)
		{
		case '0':
			dprintf("00bit",5);
			break;
		case '1':
			dprintf("01bit",5);
			break;
		case '2':
			dprintf("26bit",5);
			break;
		case '3':
			dprintf("34bit",5);
			break;
		default:
			break;
		}
		reverse=0;

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if(key=='U')
		{
			temp++;
			if(temp>'3')temp='0';	// 循环
		}

		if(key=='D')
		{
			temp--;
			if(temp<'0')temp='3';	// 循环
		}

		if(key=='F')
		{
			Para_ee.Actual_para->Wiegand_format=temp-0x30;	// 修改韦根格式
  			Write_Para();		// 保存韦根根式
			wieformat=temp-0x30;
			reverse=0;
			W_init();			// 韦根格式初始化
			return;
		}
		if(key=='C')
		{
			reverse=0;
			return;
		}
	}	
}
		
///////////////////////////////////////////////////////////////////////////////
// 设置锁控模式,采用上翻下翻方式选择
///////////////////////////////////////////////////////////////////////////////
void set_lock_proc()
{
	idata uchar temp;

	GLCD_ClearScreen ();
	GLCD_Locate(0,0);
	reverse=0;
	dprintf("锁控模式设置",12);

	GLCD_Locate(0,32);
	dprintf("锁控:",6);

	temp=Para_ee.Actual_para->Lock_para+0x30;

	if(temp<'0'||temp>'2')
		temp='0';		// 合法性检查,缺省0

	while(1)
	{
		GLCD_Locate(64,32);
		reverse=1;
		switch(temp)
		{
		case '0':
			dprintf("双锁双动",8);
			break;
		case '1':
			dprintf("双锁单动",8);
			break;
		case '2':
			dprintf("双锁联动",8);
			break;
		default:
			break;
		}
		reverse=0;

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if(key=='U')
		{
			temp++;
			if(temp>'2')temp='0';	// 循环
		}

		if(key=='D')
		{
			temp--;
			if(temp<'0')temp='2';	// 循环
		}

		if(key=='F')
		{
			Para_ee.Actual_para->Lock_para=temp-0x30;	// 修改锁控方式
  			Write_Para();			// 保存锁控方式
			lockmode=temp-0x30;

			if(wieformat==1)		// 自定义通信格式
			{
				switch(lockmode)
				{
				case 0:
					lock_22();		// 双锁双动
					break;
				case 1:
					lock_21();		// 双锁单动
					break;
				case 2:
					lock_2inter();	// 双锁联动
					break;
				default:
					break;
				}
			}

			reverse=0;
			return;
		}
		if(key=='C')
		{
			reverse=0;
			return;
		}
	}	
}

///////////////////////////////////////////////////////////////////////////////
// 设置比对模式,采用上翻下翻方式选择
///////////////////////////////////////////////////////////////////////////////
void set_match_proc()
{
	idata uchar temp;

	GLCD_ClearScreen ();
	GLCD_Locate(0,0);
	reverse=0;
	dprintf("比对模式设置",12);

	GLCD_Locate(0,32);
	dprintf("比对模式:",10);

	temp=Para_ee.Actual_para->Match_mode+0x30;

	if(temp<'0'||temp>'2')
		temp='0';		// 合法性检查,缺省1:1

	while(1)
	{
		GLCD_Locate(80,32);
		reverse=1;
		switch(temp)
		{
		case '0':
			dprintf("1:1",3);
			break;
		case '1':
			dprintf("1:N",3);
			break;
		case '2':
			dprintf("1:G",3);
			break;
		default:
			break;
		}
		reverse=0;

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if(key=='U')
		{
			temp++;
			if(temp>'2')temp='0';	// 循环
		}

		if(key=='D')
		{
			temp--;
			if(temp<'0')temp='2';	// 循环
		}

		if(key=='F')
		{
			Para_ee.Actual_para->Match_mode=temp-0x30;	// 修改比对模式
  			Write_Para();		// 保存比对模式
			matchmode=temp-0x30;
			reverse=0;
			return;
		}
		if(key=='C')
		{
			reverse=0;
			return;
		}
	}
}

///////////////////////////////////////////////////////////////////////////////
// 设置安全等级,采用上翻下翻方式选择
///////////////////////////////////////////////////////////////////////////////
void set_level_proc()
{
	idata uchar temp;

	GLCD_ClearScreen ();
	GLCD_Locate(0,0);
	reverse=0;
	dprintf("安全等级设置",12);

	GLCD_Locate(0,32);
	dprintf("安全等级:",10);

	temp=Para_ee.Actual_para->Secu_class+0x30;

	if(temp<'0'||temp>'4')
		temp='3';		// 合法性检查,缺省3

	while(1)
	{
		GLCD_Locate(80,32);
		reverse=1;
		switch(temp)
		{
		case '0':
			dprintf("0",1);
			break;
		case '1':
			dprintf("1",1);
			break;
		case '2':
			dprintf("2",1);
			break;
		case '3':
			dprintf("3",1);
			break;
		case '4':
			dprintf("4",1);
			break;
		default:
			break;
		}

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if(key=='U')
		{
			temp++;
			if(temp>'4')temp='0';	// 循环
		}

		if(key=='D')
		{
			temp--;
			if(temp<'0')temp='4';	// 循环
		}

		if(key=='F')
		{
			Security_level=temp-0x30;
			if(Set_class())
			{
				Para_ee.Actual_para->Secu_class=temp-0x30;	// 修改安全等级
	  			Write_Para();		// 保存安全等级
			}
			reverse=0;
			return;
		}
		if(key=='C')
		{
			reverse=0;
			return;
		}
	}
}

///////////////////////////////////////////////////////////////////////////////
// 密码用户注册
///////////////////////////////////////////////////////////////////////////////
bit code_proc()
{
	idata uchar i;
	idata char  pass1[7], pass2[7];
	bdata bit   flag;

	GLCD_ClearScreen ();
	GLCD_Locate(0,0);
	reverse=0;
	dprintf("密码用户注册",12);
	GLCD_Locate(0,16);
	dprintf("编号:",6);
	GLCD_Locate(0,32);
	dprintf("密码:",6);
	GLCD_Locate(0,48);
	dprintf("确认:",6);

	reverse=1;
	GLCD_Locate(64,16);
	dprintf("00000",5);
	GLCD_Locate(64,32);
	reverse=0;
	dprintf("******",6);
	GLCD_Locate(64,48);
	dprintf("******",6);

	for(i=0; i<6; i++)
		disp_buf[i]='0';
	disp_buf[5]=0;

	while(1)
	{
		reverse=1;
		GLCD_Locate(64,16);
		dprintf(disp_buf,5);

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if((key>=0x30) && (key<=0x39))
		{
			disp_buf[0]=disp_buf[1];
			disp_buf[1]=disp_buf[2];
			disp_buf[2]=disp_buf[3];
			disp_buf[3]=disp_buf[4];
			disp_buf[4]=key;
			disp_buf[5]=0x00;
		}

		if(key=='F')
		{
			if(id_proc(disp_buf))
			{
				for(i=0;i<5;i++) User_id[i]=disp_buf[i];

				reverse=0;
				GLCD_Locate(64,16);
				dprintf(disp_buf,5);
				break;
			}
			else
				pulse=3;
		}

		if(key=='C')
		{
			reverse=0;
			return ERROR;
		}
	}

	do
	{
		flag=0;						// 密码是否一致标志
		reverse=1;
		GLCD_Locate(64,32);
		dprintf("******",6);
	
		for(i=0; i<7; i++)
			disp_buf[i]='0';
		disp_buf[6]=0;
	
		while(1)
		{
			reverse=1;
			GLCD_Locate(64,32);
			dprintf("******",6);
	
			key=0;
			do{}while(!key);		// 读键盘
			key_judge();
	
			if((key>=0x30) && (key<=0x39))
			{
				disp_buf[0]=disp_buf[1];
				disp_buf[1]=disp_buf[2];
				disp_buf[2]=disp_buf[3];
				disp_buf[3]=disp_buf[4];
				disp_buf[4]=disp_buf[5];
				disp_buf[5]=key;
				disp_buf[6]=0x00;
			}
	
			if(key=='F')
			{
				for(i=0; i<6; i++)
					pass1[i]=disp_buf[i];

				reverse=0;
				GLCD_Locate(64,32);
				dprintf("******",6);

				break;
			}
	
			if(key=='C')
			{
				return ERROR;
			}
		}
	
		reverse=1;
		GLCD_Locate(64,48);
		dprintf("******",6);
	
		for(i=0;i<7;i++)
			disp_buf[i]='0';
		disp_buf[6]=0;
	
		while(1)
		{
			reverse=1;
			GLCD_Locate(64,48);
			dprintf("******",6);
	
			key=0;
			do{}while(!key);		// 读键盘
			key_judge();
	
			if((key>=0x30) && (key<=0x39))
			{
				disp_buf[0]=disp_buf[1];
				disp_buf[1]=disp_buf[2];
				disp_buf[2]=disp_buf[3];
				disp_buf[3]=disp_buf[4];
				disp_buf[4]=disp_buf[5];
				disp_buf[5]=key;
				disp_buf[6]=0x00;
			}
	
			if(key=='F')
			{
				for(i=0; i<6; i++)
				{
					pass2[i]=disp_buf[i];
				}
				reverse=0;
				GLCD_Locate(64,48);
				dprintf("******",6);
				break;
			}
	
			if(key=='C')
				return ERROR;
		}
	
		pass1[6]=0x00;
		pass2[6]=0x00;
		for(i=0; i<6; i++)
		{
			if(pass1[i]!=pass2[i])
			{
				flag = 1;			// 密码不一致
				pulse=3;
			}
			Password[i]=pass1[i];
		}
	}while(flag);

	reverse=0;
	return OK;
}

///////////////////////////////////////////////////////////////////////////////
// 密码用户注册
///////////////////////////////////////////////////////////////////////////////
bit pass_proc()
{
	idata uchar i;

	GLCD_ClearScreen ();
	GLCD_Locate(0,0);
	reverse=0;
	GLCD_Locate(0,16);
	dprintf("编号:",6);
	GLCD_Locate(0,32);
	dprintf("密码:",6);

	reverse=1;
	GLCD_Locate(64,16);
	dprintf("00000",5);
	GLCD_Locate(64,32);
	reverse=0;
	dprintf("******",6);

	for(i=0; i<6; i++)
	{
		disp_buf[i]='0';
	}
	disp_buf[5]=0;

	while(1)
	{
		reverse=1;
		GLCD_Locate(64,16);
		dprintf(disp_buf,5);

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if((key>=0x30) && (key<=0x39))
		{
			disp_buf[0]=disp_buf[1];
			disp_buf[1]=disp_buf[2];
			disp_buf[2]=disp_buf[3];
			disp_buf[3]=disp_buf[4];
			disp_buf[4]=key;
			disp_buf[5]=0x00;
		}

		if(key=='F')
		{
			if(id_proc(disp_buf))
			{
				for(i=0; i<5; i++)	User_id[i]=disp_buf[i];

				reverse=0;
				GLCD_Locate(64,16);
				dprintf(disp_buf,5);
				break;
			}
			else
				pulse=3;
		}

		if(key=='C')
		{
			reverse=0;
			return ERROR;
		}
	}

	reverse=1;
	GLCD_Locate(64,32);
	dprintf("******",6);

	for(i=0; i<7; i++)
		disp_buf[i]='0';
	disp_buf[6]=0;

	while(1)
	{
		reverse=1;
		GLCD_Locate(64,32);
		dprintf("******",6);

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if((key>=0x30) && (key<=0x39))
		{
			disp_buf[0]=disp_buf[1];
			disp_buf[1]=disp_buf[2];
			disp_buf[2]=disp_buf[3];
			disp_buf[3]=disp_buf[4];
			disp_buf[4]=disp_buf[5];
			disp_buf[5]=key;
			disp_buf[6]=0x00;
		}

		if(key=='F')
		{
			for(i=0; i<6; i++)
			{
				Password[i]=disp_buf[i];
			}
			reverse=0;
			return OK;
		}

		if(key=='C')
		{
			return ERROR;
		}
	}

	reverse=0;
	return OK;
}

///////////////////////////////////////////////////////////////////////////////
// 输入用户编号
///////////////////////////////////////////////////////////////////////////////
bit input_id_proc()
{
	idata uchar i;

	GLCD_Locate(0,32);
	reverse=0;
	dprintf("用户编号:",10);

	reverse=1;
	GLCD_Locate(80,32);
	dprintf("00000",5);

	if(matchmode==0)
	{
		if(key>='0'&&key<='9')
			disp_buf[4]=key;
		else
			disp_buf[4]='0';
	}
	else
		disp_buf[4]='0';

	for(i=0; i<4; i++)
		disp_buf[i]='0';
	disp_buf[5]=0;

	while(1)
	{
		reverse=1;
		GLCD_Locate(80,32);
		dprintf(disp_buf,5);

		key=0;
		do{}while(!key);		// 读键盘
		key_judge();

		if((key>=0x30) && (key<=0x39))
		{
			disp_buf[0]=disp_buf[1];
			disp_buf[1]=disp_buf[2];
			disp_buf[2]=disp_buf[3];
			disp_buf[3]=disp_buf[4];
			disp_buf[4]=key;
			disp_buf[5]=0x00;
		}

		if(key=='F')
		{
			if(id_proc(disp_buf))
			{
				for(i=0; i<5; i++)	User_id[i]=disp_buf[i];
				break;
			}
			else
				pulse=3;
		}

		if(key=='C')
		{
			reverse=0;
			return ERROR;
		}
	}

	reverse=0;
	return OK;
}

///////////////////////////////////////////////////////////////////////////////
// 输入分组用户编号
///////////////////////////////////////////////////////////////////////////////
bit input_party_proc()
{
	idata uchar i;
	bdata bit   flag;

	GLCD_Locate(0,32);
	reverse=0;
	dprintf("开始编号:",10);
	GLCD_Locate(0,48);
	dprintf("终止编号:",10);

	reverse=1;
	GLCD_Locate(80,32);
	dprintf("00000",5);

	reverse=0;
	GLCD_Locate(80,48);
	dprintf("00000",5);

	do
	{
		flag=FALSE;

		for(i=0; i<6; i++)
		{
			disp_buf[i]='0';
		}
		disp_buf[5]=0;

		while(1)
		{
			reverse=1;
			GLCD_Locate(80,32);
			dprintf(disp_buf,5);
	
			key=0;
			do{}while(!key);		// 读键盘
			key_judge();
	
			if((key>=0x30) && (key<=0x39))
			{
				disp_buf[0]=disp_buf[1];
				disp_buf[1]=disp_buf[2];
				disp_buf[2]=disp_buf[3];
				disp_buf[3]=disp_buf[4];
				disp_buf[4]=key;
				disp_buf[5]=0x00;
			}
	
			if(key=='F')
			{
				if(id_proc(disp_buf))
				{
					for(i=0; i<5; i++)	Start_user_id[i]=disp_buf[i];
					reverse=0;
					GLCD_Locate(80,32);
					dprintf(disp_buf,5);
					break;
				}
				else
					pulse=3;
			}
	
			if(key=='C')
			{
				reverse=0;

⌨️ 快捷键说明

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