基于单片机的密码锁设计.docx
《基于单片机的密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码锁设计.docx(15页珍藏版)》请在冰点文库上搜索。
基于单片机的密码锁设计
基于单片机的密码锁设计
重庆师范大学涉外商贸学院 电子科学与技术 2013级 左铭阳
指导老师:
张开成
摘要:
本次密码锁设计控制核心使用STC89C52单片机,并且包含矩阵键盘蜂鸣器器与继电器等模块。
其中矩阵键盘主要作用是修改系统参数、蜂鸣器起到警示作用,整个系统实现设置与修改用户密码,并且对错误密码进行报警等功能。
本系统成本低廉,功能实用。
关键词:
密码锁;报警;蜂鸣器;STC89C52
Abstract:
ThissystembytheSTC89C52singlechipmicrocomputer,the4*4matrixkeyboard,buzzer,resetcircuitandvibrationcircuit,relayandsoon,4*4
matrixkeyboardismainlyusedforinputandmodifythepassword,thebuzzeralarm,andresonancecircuitandresetcircuitSTC89C52singlechipmicrocontrollerminimumsystem.Ithassixsettings,modifyuserpassword,passworderroralarm,etc.Thissystemislowcost,functionandpractical.
Keywords:
combinationlock;Callthepolice;Buzzer;STC89C52
1绪论
1.1课题背景
在平时生活工作中,房屋和公司的安保、单位的文件、档案、财务报表和个人资料的保管基本都是用上锁的方式。
使用传统的机械锁,通常需要配备很多把钥匙,并且钥匙需要随身携带,使用不方便,并且钥匙丢失之后存在较大安全隐患,因此随着科学技术的发展,人们对日常生活中所使用的锁具提出了更高的要求,为了满足人们不断增长的要求,增加安全性,逐渐研制出性能优良、安全性高并且容易操作的密码锁。
1.2课题的目的和意义
随着社会经济的发展,人们的生活水平不断提高,如何实现重要物品的安保和防盗这一问题也变得愈发重要,传统的机械锁由于结构简单,被盗的情况时有发生。
一般密码锁在方便程度与安全程度上要明显高于传统机械锁,因此现阶段密码锁逐渐取代传统机械锁。
科技的进步,使得单片机的性能增强,性价比提高。
单片机相比较其他控制器具有体积小、功耗小、性价比高与运算速度较快等优点,因此逐渐在家用电器、航空、航天等方面获得了广泛的应用与推广。
本系统主要使用单片机与各个模块共同完成数据的采集与处理,最终实现密码设置、密码修改、错误报警等功能。
1.3电子密码锁的发展趋势
其本质上是使用电路内逻辑关系对锁具进行控制的设备,当使用键盘键入正确的密码时,锁具将会被打开。
其最大的优点是保密性能较好、可靠性较高,使用较为方便,并且不存在活动的零件,器件磨损较小。
电子密码锁将很大程度上改善人们的生活,提高生活质量,有非常广阔的应用前景。
随着科技的不断进步,其安全性与实用性等优势将会发挥的更加明显。
从当前科技发展水平与人们生活方式来看,现阶段使用最为广泛的是键盘式密码锁,其主要在密码箱与保险箱上使用。
键盘用来输入密码,方面用户使用,其最大的特点是密码能够根据用户需要进行改变,并且用户个人掌握,具有准确、可靠等优点。
1.4本设计完成的工作
(1)明白电子密码锁的基本原理和实现的具体方法;
(2)熟悉单片机软硬件开发环境,并且熟练运用C语言进行编程;
(3)掌握单片机内部结构与所具备的资源,学习相关软硬件调试的方式;
(4)构建基于单片机的最小系统,完成硬件电路设计。
2总体方案设计
本次密码锁设计主要使用STC89C52作为控制核心,并且配合相关功能模块,实现密码修改、设置等功能,并且在输入正确密码之后,单片机驱动继电器开锁,反之输入密码错误,将会自动报警,其主要功能由键盘、蜂鸣器与继电器共同实现。
其中键盘主要是用来修改系统参数值与输入密码等功能,单片机主要用来采集数据,并且根据数据信息控制蜂鸣器与继电器等。
从而使整个密码锁正常运行。
图2-1 系统总体方框图
如图2-1所示,电源输入电路为STC89C52提供直流电。
晶振电路模块实现功能是为单片机提供能够正常工作的时钟信号。
复位电路主要是为单片机提供复位信号,使其能够从初始状态重新开始运行。
例如在复位信号之后,单片机将会从0000H地址开始重新工作。
键盘电路主要实现系统参数修改与密码输入等。
2.1系统设计
2.1.1电源模块
为了使用更加方便,本系统采用DC-USB的方式为系统供电,采用5V直流供电,并且当外部直流输入时,首先进行滤波处理,减少输入信号的交流部分,为本系统提供稳定的电源,以确保各个电路正常稳定的工作。
2.1.2主控制器模块
以STC89C52单片机为核心对密码锁进行控制。
密码锁控制是本系统的核心部分,单片机具有控制方式简单、可靠与快速等优点,因此本文使用单片机进行控制,并且充分的发挥其内部资源丰富,控制逻辑强大等特点。
STC89C52单片机具有丰富的位操作指令,I/O口可按位寻址,程序内部空间可以达到8K,并且价格较为便宜。
3硬件实现及单元电路设计
3.1主控制模块
主控制最小系统电路如图3-1所示。
图3-1 单片机主控电路
3.2 单片机时钟电路与复位电路设计
本系统采用STC系列单片机,相对于其他系列单片机来说,具有资源丰富,执行速度快,下载程序方便,抗干扰能力强等优点。
时钟电路与复位电路原理图如下所示:
图3-2 时钟电路图3-3 复位电路
本文所使用单片机输出端口P0口内初始时并未设计上拉电阻,因此当需要正常使用并且需要输出高电平时,需要人为增加上拉电阻。
3.3 键盘电路设计
为了控制系统的运行状态,输入控制命令和数据信息,在单片机系统中通常都会配备键盘来完成人机交互。
最常用的交互方式是键盘,通过其实现数据的输入。
对于控制或者逻辑关系较为简单的电路,通常使用独立按键即可,其优点是接口简单、控制容易,但占据硬件资源较多。
对于需要输入很多参数、功能繁多的系统,采用矩阵键盘进行输入控制的方式会节省I/O端口资源。
本次使用的矩阵键盘为四行三列式,具体的连接方式如图3.4所示。
图3-4 键盘电路
3.4 液晶显示电路设计
在对功耗要求比较严格的场合,常常使用液晶显示器作为人机交互的显示部分,其应用非常广泛,例如电子计算器、手机等。
为了使本系统能够更加清楚的显示输入密码与各类操作窗口,所以选取液晶显示器,并且其采取总线连接的方式。
具体连接方式如图3-5所示。
图3-5 液晶显示电路
3.5 存储芯片电路设计
总线(Inter Integrate Circuit BUS)全称为芯片间总线,它在芯片间以一条数据线(SDA)和一条串行时钟线(SDL)实现全双工同步数据传输,构建外围器件扩展系统非常方便。
本系统采用AT24C01系列串行总线的EEPROM芯片存储数据,存储系统连接如图3-6所示:
图3-6 总线和存储芯片连接电路图
3.6 报警电路
本系统采用蜂鸣器报警的方式,其原理如图3-7所示。
图3-7 蜂鸣报警电路
3.7 密码锁电路
继电器构成了密码锁电路,当密码相匹配时开锁继电器就会闭合。
如图3-8所示。
图3-8 密码锁电路
4 系统软件设计方案
4.1 主程序流程图
如图4-1为主程序流程图,用户可自行设定和修改密码,密码输入不匹配时会发出声音警告。
只有密码输入相匹配时才能开锁。
图4-1 主程序流程图
4.2 开锁软件设计
如图4-2开锁流程图,开始时按开锁键,键入密码,如果密码相匹配,则开锁。
否则执行报警程序。
图4-2 开锁流程图
结论
本系统主要从经济和实用的方向出发,使用STC89C52作为系统的控制核心和AT24C01作为系统外部存储设备,并且配合系统的电源、按键、显示、报警模块等共同实现电子密码锁的基本功能。
最终调试可以得知,本次设计基本可以满足设计需求,并且本系统具有硬件电路简单、成本较低、可靠性较高等优点,软件具有运行稳定、逻辑清晰、方便使用等优点,能够广泛的使用在宿舍、卧室等地方的保险箱设备。
但是,因为时间与个人能力的关系,本系统中还有需要方面并未考虑周全,需要后期不断进行修改与完善。
通过本次电子密码锁的设计与制作,使我更加深刻的认识到,理论与实践的巨大差距,需要不断的努力学习基本理论知识,并且不断重视实践的重要性与必要性。
在学习到新的知识之后,需要通过后期不断实践来固定知识。
并且需要将学习的知识不断的应用到实践当中,做到温故而知新。
在理论与实践不断结合中,增加自身能力。
不断夯实自己,为以后遇到更加高深与尖端知识打下良好的基础。
感谢张老师的悉心指导和同学们的帮助!
参考文献
[1] 王千. 实用电子电路大全[M]. 电子工业出版社, 2004
[2] 彭为. 单片机典型系统设计实例精讲[M]. 电子工业出版社,2006
[3] 张荣. 基于单片机的智能系统设计与实现[M]. 电子工业出版社, 2005
[4] 朱勇. 单片机原理与应用技术[M]. 清华大学出版社, 2006
[5] 潘永雄. 新编单片机原理与应用[M]. 西安电子科技大学出版社, 2003
[6] 叶启明. 单片机制作的新型安全密码锁[J]. 家庭电子, 2005
[7] 郭海英. 基于单片机的电子安全密码锁的设计[M]. 现代电子技术, 2005
[8] 李明喜. 新型电子密码锁的设计[J]. 机电产品开发与创新, 2004
[9] ATmega.ATmega8L-8AC, 2006
[10] Wireless World, 1998
[11] 石文轩, 宋薇. 基于单片机MCS一51的智能密码锁设计[J]. 武汉工程职业技术学院学报, 2004
[12] 祖龙起, 刘仁杰. 一种新型可编程密码锁[J]. 大连轻工业学院学报,2002
[13] 董继成. 一种新型安全的单片机密码锁[J]. 电子技术, 2004
[14] R. Dye. Visual Object-Orientated Programming[J]. Dr. Dobbs MacintoshJournal, 1991
附录1部分源程序
#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^3; //继电器定义
sbit beep = P2^2; //蜂鸣器定义
uchar smg_i;
uchar dis_smg[6];
uchar password[6]={6,5,4,3,2,1}; //密码保存
uchar password_bj[6]={1,2,3,4,5,6};//密码比较
uchar code password_r[6] = {6,5,4,3,2,1} ;
uchar password_xg[6];//密码修改
uchar flag_password; //密码正确否
uchar flag_password_cichu1;//密码错误次数
uchar flag_password_cichu2;//密码错误次数
bit flag_500ms; //500ms标志位
bit flag_200ms=1; //200ms标志位
bit flag_beep_en; //蜂鸣器标志位
bit flag_relay_en; //继电器标志位
#define key_io P0
uchar key_can;
#include "iic.h"
/******************主程序**********************/
void main()
{
password_chushifa();
time_init(); //定时器初始化
init_menu();
read_24c02_8(6,0,password);
init_1602();
init_1602_dis_csf();
while
(1)
{
key();
if(key_can < 20)
{
key_with();
}
menu_dis();
password_return();
}
}
附录2实物图片