芯片解密电子密码锁使用说明
一、 芯片解密主要功能:
1.按键设置6位密码,输入密码若密码正确,则锁打开。显示open!
2.密码可以自己修改(6位密码),必须是锁打开时才能改密。为防止误操作,修改密码得输入两次。
3.若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
4.24C02有复位、掉电保存密码功能。
5.液晶屏亮度会随光线自动调整。
6.本设计有红外遥控的功能,可以通过红外遥控器输入密码操作锁的状态(数字键是对应的,C键是重设密码,中间的播放图标的按键是确认,后退箭头的按键是撤销键)
二、按键说明:(主板)
排列方式:1 2 3 A
4 5 6 B
7 8 9 C
* 0 # D
ABC无定义、 *号键为取消当前操作、#号键为确认、D键为修改密码
三、调整说明:
1、 灰度调整:当焊接好后液晶屏可能会“无字”。这是调节液晶3脚与地之间的电位器阻值应为1.3k左右,液晶3脚与电源之间的电位器阻值应为8.7k左右。(如果是电阻,那就是1与3脚是1.5k,2与3脚是10k的电阻)
2、 自己焊接的电路,首次使用时输入:131420,对密码进行初始化,当显示:init password,证明密码初始化完成,此时的密码为:000000。然后可以改密了。(如密码忘记就再输入131420初始化,然后密码就是000000了,不要告诉别人哦~~~)
3、 按下 * 键或复位键,可以关锁并退出。
4、 当输入密码错误后,报警并锁定键盘3秒钟。
5、 修改密码:在开锁状态下,再次输入正确的密码并按下 # 键,此时听到两声提示,输入新的六位密码并按 D 键,再重复输入一次新密码并按 D ,会听到两声提示音,表示重设密码成功,内部保存新密码并存储。如两次输入的新密码不一样,则重设密码失败。
6、 祝您成功!
- #include <REG52.h>
- #include<intrins.h>
- #define LCM_Data P0
- #define uchar unsigned char
- #define uint unsigned int
- sbit lcd1602_rs=P2^7;
- //sbit lcd1602_rw=P2^6;
- sbit lcd1602_en=P2^6;
- sbit Scl=P2^0; //24C02串行时钟
- sbit Sda=P2^1; //24C02串行数据
- sbit ALAM = P3^6; //报警
- sbit KEY = P3^2; //开锁
- bit operation=0; //操作标志位
- bit pass=0; //密码正确标志
- bit ReInputEn=0; //重置输入充许标志
- bit s3_keydown=0; //3秒按键标志位
- bit key_disable=0; //锁定键盘标志
- unsigned char countt0,second; //t0中断计数器,秒计数器
- //解码变量
- unsigned char Im[4]={0x00,0x00,0x00,0x00};
- //全局变量
- uchar f;
- unsigned long m,Tc;
- unsigned char IrOK;
- unsigned char code a[]={0xFE,0xFD,0xFB,0xF7}; //控盘扫描控制表
- unsigned char code start_line[] = {"password: "};
- unsigned char code name[] = {"===Coded Lock==="}; //显示名称
- unsigned char code Correct[] = {" correct "}; //输入正确
- unsigned char code Error[] = {" error "}; //输入错误
- unsigned char code codepass[] = {" pass "};
- unsigned char code LockOpen[] = {" open "}; //OPEN
- unsigned char code SetNew[] = {"SetNewWordEnable"};
- unsigned char code Input[] = {"input: "}; //INPUT
- unsigned char code ResetOK[] = {"ResetPasswordOK "};
- unsigned char code initword[] = {"Init password..."};
- unsigned char code Er_try[] = {"error,try again!"};
- unsigned char code again[] = {"input again "};
- unsigned char InputData[6]; //输入密码暂存区
- unsigned char CurrentPassword[6]={1,3,1,4,2,0}; //当前密码值
- unsigned char TempPassword[6];
- unsigned char N=0; //密码输入位数记数
- unsigned char ErrorCont; //错误次数计数
- unsigned char CorrectCont; //正确输入计数
- unsigned char ReInputCont; //重新输入计数
- unsigned char code initpassword[6]={0,0,0,0,0,0};