基于51单片机掉电保存密码修改的智能密码锁设计(毕设课设)
电子密码锁功能简介:
- 1.单片机型号:STC89C52/51、AT89C52/51、AT89S52/51可以任选。
- 2.采用矩阵按键输入、1602液晶显示、继电器模拟开锁、发光二极管为开锁指示灯,继电器是可以外接电锁的。
- 3.有报警、锁定键盘功能,如果密码输入错误3次,系统会锁住键盘1分钟并有蜂鸣器声音报警提示,1分钟后可以再次输入密码。
- 4.可以设置修改密码(6位数的密码)(0-9之间任意数字),修改密码之前必须再次输入原始密码,在输入新密码时要输入两次确认并相同才可以修改成功,否则修改不成功,防止误操作。
- 5.密码支持掉电保存功能,应用AT24C02芯片保存密码,可以随时修改密码,密码输入过程中,可按清除键逐个删除已输入的数字。
- 6.液晶背光可控功能,当没有按键按下30秒后,液晶背光可以自动关闭,再有按键按下就可以重新点亮背光,不管是白天还是晚上都可以节约电能,优点即节能又不影响操作。
- 7.有管理员密码,即使忘记密码也不怕,只要输入管理员密码就可以把密码还原成初始密码。
【资源下载】下载地址如下(910):https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include "lcd1602.h"
#include "iic.h"
uchar value,i; //变量
uchar flag_lj_en; //边加
uchar flag_lj_en_value;
sbit relay = P2^2; //继电器定义
sbit beep = P3^3; //蜂鸣器定义
sbit beiguan = P2^3; //背光
uint flag_time;
uint flag_guan;
uchar smg_i;
uchar dis_smg[7]={0};
uchar password[7]={6,5,4,3,2,1}; //密码保存
uchar password_bj[7]={1,2,3,4,5,6}; //密码比较
uchar code password_r[6] = {1,2,3,1,2,3} ;
uchar code password_gl[6] = {5,2,0,0,2,5} ;
uchar password_xg[6]; //密码修改
uchar flag_password; //密码正确否
uchar flag_password_cichu1;//密码错误次数
bit flag_200ms=1; //200ms标志位
uchar key_can;
uchar menu_1,menu_i;