电子密码锁

//模式1是密码锁,泵苈胝肥辈趴纱蚩旅娴哪J?
/*模式2显示当前时间,温度,湿度,光照,热度,电机蜂鸣器是否打开
	当前温度,湿度大于阈值电机开机降温,蜂鸣器报警,当前温度,湿度小于阈值
	继电器开启加热,蜂鸣器报警*/
/*模式3调节温度上下限阈值,0是修改上下限,1,2修改值 */
/*模式4修改时间,0按下修改时分秒,1,2是对当前修改(+,-)*/
/*模式5定时和秒表,0按下修改模式,是定时还是秒表功能,秒表模式下1是开始
	2是暂停,3是清零,定时模式下,1,2是设置要定时的时间,3是开始,到时蜂鸣器响
*/
/*模式6闹钟,0是设置闹钟1还是2,1是修改时分秒,2,3是时间加减  */
/*模式7计算器8位数,
	1 2 3 +
	4 5 6 -
	7 8 9 *
	= 清零 / 模式
*/
/*
模式8智能体重
*/
#include<public.h>
#include<LCD12864.h>
#include<key.h>
#include<ERRPOM.h>
long xdata pass=666666;
long xdata  pass1=0;
u1  key_value=0;//变量不可当标注为调用
u1  key_num;	//变量不同模式通用		代替等号
u1  num;	//变量不同模式通用,模式7中作为b
u1 pass_flag_cun;
void mode1()
{
	u1 pass_flag=0;
	if(pass_flag_cun!=3)
	{
		if(key_value!=20&&key_value<=9)
		{
			key_num++;	
			switch(key_value)
			{
				case 0:num=0;break;
				case 1:num=1;break;
				case 2:num=2;break;
				case 3:num=3;break;
				case 4:num=4;break;
				case 5:num=5;break;
				case 6:num=6;break;
				case 7:num=7;break;
				case 8:num=8;break;
				case 9:num=9;break;
			}
			if(key_num<=6)
			{
					pass1=pass1*10+num;
			}
			switch(key_num)
			{
				case 1:LCD12864_show_string(0,1,"*");break;	
			
				case 2:LCD12864_show_string(0,1,"**");break;	
		
				case 3:LCD12864_show_string(0,1,"***");break;	
			
				case 4:LCD12864_show_string(0,1,"****");break;
				
				case 5:LCD12864_show_string(0,1,"*****");break;	
			
				case 6:LCD12864_show_string(0,1,"******");break;	
			}
			if(key_num>=7&&key_value<=9)
			{
				pass_flag=1;		
			}
		}
		if(key_value==11)
		{
			if(pass==pass1)
			{
				LCD12864_write_cmd(0x01);
				LCD12864_show_string(0,0,"InPut Password:");
				LCD12864_show_string(0,1,"Password Correct");
				delay1ms(3000);
				LCD12864_write_cmd(0x01);
			}
			else
			{
				pass_flag=1;
			}
		}
		if(pass_flag==1)
		{
			LCD12864_write_cmd(0x01);
			LCD12864_show_string(0,0,"InPut Password:");
			LCD12864_show_string(0,1,"Password Error");
			delay1ms(3000);
			pass_flag=0;
			key_num=0;
			pass1=0;
			pass_flag_cun++;
			LCD12864_write_cmd(0x01);
			if(pass_flag_cun!=3)
			{
				LCD12864_show_string(0,0,"InPut Password:");
			}
		}		
	}
}
void mode_type()
{
	key_value=key_scan2();
	mode1();	
}
void main()
{
	
	LCD12864_inti();
  inti1();
	delay1ms(5000);
	LCD12864_write_cmd(0x01);
	LCD12864_show_string(0,0,"InPut Password:");
	while(1)
	{
		mode_type();							
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值