一.硬件方案
本系统由STC89C52单片机、4*4矩阵键盘,蜂鸣器,复位电路和晶振电路、继电器等组成,4*4键盘主要用于密码的输入和修改,蜂鸣器报警,复位电路和晶振电路与STC89C52单片机组成单片机最小系统。它具有设置、修改6位用户密码、输错报警、密码错误报警等功能。
整体电路主要由51单片机最小系统,LCD1602液晶显示模块,蜂鸣器模块,LED指示灯模块,继电器驱动模块,矩阵键盘模块,AT24C02芯片模块;原理图如图:
PCB及仿真图如下:
二.设计功能
- 采用AT24C02芯片可以实现存储的密码掉电保存。密码为1-16位,开锁时可以随意输入虚假密码掩人耳目可以随意更改,更改时要输入两遍确认;
- 采用矩阵按键输入、1602液晶显示、继电器模拟开锁,有开锁指示灯。继电器有常开常闭触点可外接电磁锁等负载;
- 有管理员密码,即使望记密码也不怕,可以找回;
三.软件设计
主程序源码文章来源:https://www.toymoban.com/news/detail-566777.html
/******************主程序**********************/
void main()
{
static uint value ;
password_chushifa();
init_1602();
UartInit();
time_init(); //定时器初始化
read_24c02_8(6,0,password);
beiguan = 0;
while(1)
{
if(flag_password_cichu1 < 3) //错误三次按键不能用了
{
key(); //按键函数
if(key_can < 20)
{
beep =0;
if(beiguan == 0)
{
if(menu_1 == 0)
key_with(); //按键处理函数
xiugai_password(); //修改密码
}
else
beiguan = 0;
flag_time = 0;
delay_1ms(300);
beep =1;
}
}
if(flag_200ms == 1)
{
flag_200ms = 0;
if(beiguan == 0) //延时关闭锁20秒关闭背光
{
flag_time ++;
if(flag_time >= 5 * 30) //30秒
{
flag_time = 0;
beiguan = 1; //关闭背光
}
}
if(relay == 0) //延时关闭锁
{
flag_guan++;
if(flag_guan >= 5 * 10) //10秒
{
flag_guan = 0;
relay = 1; //关闭密码锁
}
}else
flag_guan = 0;
if(flag_password_cichu1 >= 3)
{
value ++; //200ms
beep = ~beep; //蜂鸣器报警
if(value >= 5 * 60) //1分钟
{
value = 0;
beep = 1;
flag_password_cichu1 = 0;
}
}
}
delay_1ms(1);
}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
static uchar value;
TH0 = 0x3c;
TL0 = 0xb0; // 50ms 12M
value ++;
if(value % 4 == 0)
{
flag_200ms = 1;
}
}
资料链接:https://pan.baidu.com/s/1Kayb5F75l42vpLBL90UOkQ?pwd=mnst
提取码:mnst文章来源地址https://www.toymoban.com/news/detail-566777.html
到了这里,关于基于51单片机的电子密码锁设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!