您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页正文

基于单片机的密码锁设计和实现论文设计

来源:伴沃教育


基于单片机的密码锁设计

摘要:本次密码锁设计控制核心使用STC89C52单片机,并且包含矩阵键盘蜂鸣器器与继电器等模块。其中矩阵键盘主要作用是修改系统参数、蜂鸣器起到警示作用,整个系统实现设置与修改用户密码,并且对错误密码进行报警等功能。本系统成本低廉,功能实用。

关键词:密码锁;报警;蜂鸣器;STC89C52

Abstract:This system by the STC89C52 single chip microcomputer,the 4*4 matrix keyboard,buzzer,reset circuit and vibration circuit,relay and so on,4*4 matrix keyboard is mainly used for input and modify the password,the buzzer alarm,and resonance circuit and reset circuit STC89C52 single chip microcontroller minimum system.It has six settings,modify user password,password error alarm,etc.This system is low cost,function and practical.

Key words:combination lock;Call the police;Buzzer; STC89C52

1绪论

1.1课题背景

在平时生活工作中,房屋和公司的安保、单位的文件、档案、财务报表和个人资料的保管基本都是用上锁的方式。使用传统的机械锁,通常需要配备很多把钥匙,并且钥匙需要随身携带,使用不方便,并且钥匙丢失之后存在较大安全隐患,因此随着科学技术的发展,人们对日常生活中所使用的锁具提出了更高的要求,为了满足人们不断增长的要求,增加安全性,逐渐研制出性能优良、安全性高并且容易操作的密码锁。

1.2课题的目的和意义

随着社会经济的发展,人们的生活水平不断提高,如何实现重要物品的安保和防盗这一问题也变得愈发重要,传统的机械锁由于结构简单,被盗的情况时有

第1页/共14页

发生。一般密码锁在方便程度与安全程度上要明显高于传统机械锁,因此现阶段密码锁逐渐取代传统机械锁。科技的进步,使得单片机的性能增强,性价比提高。单片机相比较其他控制器具有体积小、功耗小、性价比高与运算速度较快等优点,因此逐渐在家用电器、航空、航天等方面获得了广泛的应用与推广。本系统主要使用单片机与各个模块共同完成数据的采集与处理,最终实现密码设置、密码修改、错误报警等功能。

1.3电子密码锁的发展趋势

其本质上是使用电路内逻辑关系对锁具进行控制的设备,当使用键盘键入正确的密码时,锁具将会被打开。其最大的优点是保密性能较好、可靠性较高,使用较为方便,并且不存在活动的零件,器件磨损较小。电子密码锁将很大程度上改善人们的生活,提高生活质量,有非常广阔的应用前景。随着科技的不断进步,其安全性与实用性等优势将会发挥的更加明显。

从当前科技发展水平与人们生活方式来看,现阶段使用最为广泛的是键盘式密码锁,其主要在密码箱与保险箱上使用。键盘用来输入密码,方面用户使用,其最大的特点是密码能够根据用户需要进行改变,并且用户个人掌握,具有准确、可靠等优点。

1.4本设计完成的工作

(1)明白电子密码锁的基本原理和实现的具体方法;

(2)熟悉单片机软硬件开发环境,并且熟练运用C语言进行编程; (3)掌握单片机内部结构与所具备的资源,学习相关软硬件调试的方式; (4)构建基于单片机的最小系统,完成硬件电路设计。

2总体方案设计

本次密码锁设计主要使用STC89C52作为控制核心,并且配合相关功能模块,实现密码修改、设置等功能,并且在输入正确密码之后,单片机驱动继电器开锁,

第2页/共14页

反之输入密码错误,将会自动报警,其主要功能由键盘、蜂鸣器与继电器共同实现。其中键盘主要是用来修改系统参数值与输入密码等功能,单片机主要用来采集数据,并且根据数据信息控制蜂鸣器与继电器等。从而使整个密码锁正常运行。

图2-1 系统总体方框图

如图2-1所示,电源输入电路为STC89C52提供直流电。晶振电路模块实现功能是为单片机提供能够正常工作的时钟信号。复位电路主要是为单片机提供复位信号,使其能够从初始状态重新开始运行。例如在复位信号之后,单片机将会从0000H地址开始重新工作。键盘电路主要实现系统参数修改与密码输入等。

2.1系统设计

2.1.1电源模块

为了使用更加方便,本系统采用DC-USB的方式为系统供电,采用5V直流供电,并且当外部直流输入时,首先进行滤波处理,减少输入信号的交流部分,为本系统提供稳定的电源,以确保各个电路正常稳定的工作。

2.1.2主控制器模块

以STC89C52单片机为核心对密码锁进行控制。密码锁控制是本系统的核心部分,单片机具有控制方式简单、可靠与快速等优点,因此本文使用单片机进行控制,并且充分的发挥其内部资源丰富,控制逻辑强大等特点。STC89C52单片机具

第3页/共14页

有丰富的位操作指令,I/O口可按位寻址,程序内部空间可以达到8K,并且价格较为便宜。

3硬件实现及单元电路设计

3.1主控制模块

主控制最小系统电路如图3-1所示。

图3-1 单片机主控电路

3.2 单片机时钟电路与复位电路设计

本系统采用STC系列单片机,相对于其他系列单片机来说,具有资源丰富,执行速度快,下载程序方便,抗干扰能力强等优点。

时钟电路与复位电路原理图如下所示:

第4页/共14页

图3-2 时钟电路

本文所使用单片机输出端口P0口内初始时并未设计上拉电阻,因此当需要正常使用并且需要输出高电平时,需要人为增加上拉电阻。

图3-3 复位电路

3.3 键盘电路设计

为了控制系统的运行状态,输入控制命令和数据信息,在单片机系统中通常都会配备键盘来完成人机交互。最常用的交互方式是键盘,通过其实现数据的输入。对于控制或者逻辑关系较为简单的电路,通常使用独立按键即可,其优点是接口简单、控制容易,但占据硬件资源较多。对于需要输入很多参数、功能繁多的系统,采用矩阵键盘进行输入控制的方式会节省I/O端口资源。本次使用的矩阵键盘为四行三列式,具体的连接方式如图3.4所示。

图3-4 键盘电路

3.4 液晶显示电路设计

第5页/共14页

在对功耗要求比较严格的场合,常常使用液晶显示器作为人机交互的显示部分,其应用非常广泛,例如电子计算器、手机等。为了使本系统能够更加清楚的显示输入密码与各类操作窗口,所以选取液晶显示器,并且其采取总线连接的方式。具体连接方式如图3-5所示。

图3-5 液晶显示电路

3.5 存储芯片电路设计

总线(Inter Integrate Circuit BUS)全称为芯片间总线,它在芯片间以一条数据线(SDA)和一条串行时钟线(SDL)实现全双工同步数据传输,构建外围器件扩展系统非常方便。本系统采用AT24C01系列串行总线的EEPROM芯片存储数据,存储系统连接如图3-6所示:

第6页/共14页

图3-6 总线和存储芯片连接电路图

3.6 报警电路

本系统采用蜂鸣器报警的方式,其原理如图3-7所示。

图3-7 蜂鸣报警电路

3.7 密码锁电路

继电器构成了密码锁电路,当密码相匹配时开锁继电器就会闭合。如图3-8所示。

第7页/共14页

图3-8 密码锁电路

4 系统软件设计方案

4.1 主程序流程图

如图4-1为主程序流程图,用户可自行设定和修改密码,密码输入不匹配时会发出声音警告。只有密码输入相匹配时才能开锁。

第8页/共14页

图4-1 主程序流程图

4.2 开锁软件设计

如图4-2开锁流程图,开始时按开锁键,键入密码,如果密码相匹配,则开锁。否则执行报警程序。

第9页/共14页

图4-2 开锁流程图

结论

本系统主要从经济和实用的方向出发,使用STC89C52作为系统的控制核心和AT24C01作为系统外部存储设备,并且配合系统的电源、按键、显示、报警模块等共同实现电子密码锁的基本功能。最终调试可以得知,本次设计基本可以满足设计需求,并且本系统具有硬件电路简单、成本较低、可靠性较高等优点,软件具有运行稳定、逻辑清晰、方便使用等优点,能够广泛的使用在宿舍、卧室等地方的保险箱设备。但是,因为时间与个人能力的关系,本系统中还有需要方面并未考虑周全,需要后期不断进行修改与完善。

通过本次电子密码锁的设计与制作,使我更加深刻的认识到,理论与实践的巨大差距,需要不断的努力学习基本理论知识,并且不断重视实践的重要性与必要性。在学习到新的知识之后,需要通过后期不断实践来固定知识。并且需要将学习的知识不断的应用到实践当中,做到温故而知新。在理论与实践不断结合中,增加自身能力。不断夯实自己,为以后遇到更加高深与尖端知识打下良好的基础。

感谢张老师的悉心指导和同学们的帮助!

第10页/共14页

参考文献

[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

//无符号整型 宏定义 变量范

变量

第11页/共14页

围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()

第12页/共14页

//变量

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) { }

menu_dis(); password_return();

key_with();

附录2实物图片

第13页/共14页

第14页/共14页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top