电子密码锁设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告书

题目名称:基于单片机的电子密码锁

专业:自动化

学号:

学生姓名: xxxxxxxx

指导教师:徐鹏

完成日期: 2010年12月17日

摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用

关键词:AT89S51,LCD602,矩阵键盘, 电子密码锁

一、引言

随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲昵。

设计本课题时构思了两种方案:一种是用以LED数码管为显示器的单片机控制方案;另一种是用以LCD1602为显示器的单片机控制方案。考虑到数码管的显示过于简单,而且不能满足现在的安全需求,所以本实验采用第二种方案。二、总体方案设计与实现

电子密码锁系统核心用AT89S52单片机控制,密码输入按键为4*4矩阵键盘16个按键实现密码输入。报警电路利用三极管驱动小型蜂鸣器实现,通过给蜂鸣器送不同频率的电平信号实现不同声音报警。显示屏用LCD1602实现,通过发不同的指令和数据实现显示和提示。用蜂鸣器的响声来指示密码锁锁的开关和错误密码警告。

系统框架图:

原理图:

1、显示模块:

lcd1602使用简单,vss和vdd分别接地和5v正极,滑动变阻器调节对比度。Rs/Rw分别是数据/命令选择和读写端口,d0—d7为并行数据端口,分别接P1的d0—d7。

使用LCD1602可以轻松的实现所有字母和符号显示,显示功能丰富,驱动程序简

单。能提高系统的安全行,使系统更人性化,更有可扩展性。下面几幅图是

本课题用到的显示和提示语:

2、报警电路:

声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的频率发出各种

不同的声音,这样我们就可以更具系统要求发出密码出入正确和密码输入错误是发出不同的声音提示,已达到报警的要求。蜂鸣器电路如下图所示

3、键盘模块:

由于本设计中要求使用10个数字和三个功能键输入,数目较多,故使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。本设计中采用矩阵键盘行线和单片机~相连,列线与单片机~相连,其电路图如下图所示

键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。键盘消抖采用软件延时消抖,可以减小硬件电路复杂程度,控制简单。

矩阵键盘的每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照下图所示的4*4键盘,说明其工作原理。

首先辨别键盘中有无键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态来

判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入变量SL中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

4、时序脉冲输入:

内部时钟方式

5、复位方式:

按键电平复位

单片机采用AT89S51单片机, AT89S51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,与工业80C51产品指令各引脚完全兼容。单片机最小系统主要有两块组成,其一为晶振起振电路,其二为复位电路。在此,我们采用按键手动复位,相对来讲,这种复位方式更加方便人性化,不必要切断电源即可对系统进行复位。

6、系统设计总电路图:

7、开锁原理;

当用户输入的密码正确单

片机便输出开门信号,送到开

锁驱动电路,然后驱动电磁锁,

达到开门的目的。在此为节省

成本考虑,我省去电磁锁及其

驱动,将一切在LCD上面显示,并且利用蜂鸣器声音指示。

三、软件程序设计及流图

与硬件电路相关联,本电子密码锁系统的软件设计分为以下几个模块:主程序模块,键盘扫描及识别模块,密码正误对比和密码存储模块,LCD1602显示模块,蜂鸣器模块等等。*本系统程序主要具有如下功能:

(1)设置4位密码,密码通过键盘输入,若密码正确,则将锁打开,初始化密码为(0771),初始超级密码为000000

(2)密码可以由用户自己修改设定(支持4位密码,超级密码为6位),锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操

作。

(3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘20秒后输入超级密码才能解锁。

(4)密码输入功能:按下一个数字键,一个“-”就显示在最左边的液晶屏上,同时将先前输入的所有“-”向右移动一位。

(5)密码清除功能:当按下清除键时,清除前面输入的一个值,并可以清除所有显示。(6)密码更改功能:将输入的值作为新的密码。

(7)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开

下面分别介绍各个模块的程序设计

1、主程序模块

在主程序模块中要完成系统初始化,检测按键,调用存储以及调用显示等功能。主程序流程图如7图所示

2、键盘扫描及识别子程序模块

密码输入矩阵键盘采用行扫描法,扫描方式为查询的方式,在主程序中调用,无键按下的时候,程序一直在子程序中间循环当有键按下时,及识别按键以及送到LCD显示。密码设置为4位,超级密码为6位,密码输入过程中可以调用清除程序实现密码清除。矩阵键盘扫描及识别用在密码输入和密码修改程序中间!

3、显示子程序模块

程序包括LCD/1602驱动程序和显示子程序

利用写好的驱动程序和显示子程序,我们只要在想要显示的时候,写好要显示的字符,然后直接调用显示子程序就可以,方便使用液晶。

4、密码正误对比及存储模块

此程序先把用户密码从存储器调出来,把从键盘获取的密码拿来和用户密码一位一位的对比,当每一位都正确时调用蜂鸣器模块来声音提示并打开电磁锁。此时用户可以修改密

相关文档
最新文档