基于单片机电子密码锁设计毕业论文.docx

上传人:b****1 文档编号:2913628 上传时间:2023-05-05 格式:DOCX 页数:30 大小:411.17KB
下载 相关 举报
基于单片机电子密码锁设计毕业论文.docx_第1页
第1页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第2页
第2页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第3页
第3页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第4页
第4页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第5页
第5页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第6页
第6页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第7页
第7页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第8页
第8页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第9页
第9页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第10页
第10页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第11页
第11页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第12页
第12页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第13页
第13页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第14页
第14页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第15页
第15页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第16页
第16页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第17页
第17页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第18页
第18页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第19页
第19页 / 共30页
基于单片机电子密码锁设计毕业论文.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机电子密码锁设计毕业论文.docx

《基于单片机电子密码锁设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机电子密码锁设计毕业论文.docx(30页珍藏版)》请在冰点文库上搜索。

基于单片机电子密码锁设计毕业论文.docx

基于单片机电子密码锁设计毕业论文

编号

 

淮安信息职业技术学院

毕业论文

题目

基于单片机电子密码锁设计

学生姓名

学号

系部

电子工程学院

专业

光电子(光伏发电)

班级

指导教师

顾问教师

二〇一四年六月

摘要

随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于构造简单,被撬事件屡见不鲜。

电子密码锁保密性好,使用灵活性高,收到广大用户的青睐。

本设计是以单片机AT89C51作为密码锁的主控芯片与数据存储单元,结合外围的矩阵键盘输入、数码管显示、开锁、报警等,用汇编语言编写程序,并用keil软件进行编译设计了一款可以更改密码,具有报警功能的电子密码控制系统。

本设计采用矩阵键盘对密码进行输入,具有较高的优势,减少了I/O口的占用数目。

密码的显示采用6位数码管实现,为确保安全性统一使用“—”显示密码。

,当重新设置密码时数码管显示数字。

采用采用蜂鸣器模拟报警系统,增加了密码锁的安全能力。

软件使用汇编语言编程,运用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。

测试结果表明,设计达到电子密码锁的功能。

 

关键词:

密码锁MCU报警

 

Abstract

As technology and people's living standards improve, the question how to achieve home burglar also become particularly prominent, the traditional mechanical locks because of simple structure, prizing a common occurrence. Electronic locks confidentiality, use of high flexibility, received the majority of users of all ages.

The design is based on AT89C51 microcontroller as the master chip lock data storage unit, combined with the external matrix keyboard input, digital display, lock, alarm, etc., written in assembly language program and compiled using keil software can be designed a change the password, the password with alarm function electronic control system.

This design uses the password input keypad matrix with high advantage, reducing the I / O port number of the occupation. Password is displayed using six digital tube, to ensure security uniform use "-" Show password. When the password is reset digital display numbers. Using simulated using the buzzer alarm system, increasing the safety lock capabilities. Software uses assembly language programming, the use of top-down, modular design, the system toward a distributed, miniaturization direction, enhance system scalability and operational stability. Test results show that the design meets electronic locks function.

 

Keywords:

LockMCUAlarm

 

第一章绪论

1.1概述

在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多以加锁的办法来解决。

若使用机械式钥匙开锁人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

为满足人们对门锁的使用要求,增加其安全性,用密码电子锁代替传统机械锁应运而生。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

1.2电子密码锁的发展趋势

目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。

由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。

随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。

出于安全、方便等方面的需要许多电子密码锁已相继问世。

但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。

由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。

 

设计原理

本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。

其中矩阵键盘用于输入数字密码和进行各种功能的实现。

由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。

本系统共有两部分构成,即硬件部分与软件部分。

其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。

其原理框图如图4-1所示。

图4-1电子密码锁原理框图

 

第二章电子密码锁硬件电路设计

AT89C51单片机

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。

矩阵键盘

密码的输入用矩阵键盘实现,包括数字键和功能键。

具体功能设计如表2-1:

表2-1键盘具体功能设计表

按键

键名

功能

0~9键

数字键

输入密码

A键

重设密码键

设定新密码

C键

清除键

使显示器清零

D键

确定键

比较密码

矩阵式键盘的结构与工作原理如下:

在键盘中的按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,只需要单片机的一个端口就可以构成4×4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键。

确定矩阵式键盘上是否有键被按下,我们采用一种“行扫描法”,又被称为扫描查询法,是一种最常用的按键识别方法。

设计是先将列线置于高电平,再进行行线扫描,若有行线为高电平,则确定有按键被按下,并将相应的行线编号存

放;再转移到列线的扫描程序,首先将行线置于高电平,再进行列线扫描,若有列线为高平,则确定有按键被按下,并将相应的列线编号存放。

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

图2-1矩阵键盘

本次设计需要0~9十个数字按键、一个清零键、一个确认键和一个重置密码键共13个按键,所以选用4X4的矩阵按键。

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

当确认有按键按下后,就要识别是哪一个按键被按下。

本次设计使用的是线反转法。

给行线置为0x0f,给列线置为0xf0,再将行列进行逻辑或结果为0xff,当有按键按下时相应的按键位行列均为0,行列逻辑或不为0xff,由此可利用行列逻辑或后的值是否为0xff来判断是否有按键按下。

再根据扫描结果判断按下键的位置。

给相应的按键赋值即可实现数字键和功能键。

对功能键进行相应的软件编程即可实现按键功能。

使用矩阵键盘能减少键盘和单片机接口所占用的I/O线数目,当按键较多的时候通常采用这种方法。

开锁电路

在本次设计中用发光二极管代替电磁锁,二极管亮表示锁开,二极管灭表示没有开锁。

如图2-2所示,当输入密码与内置密码相配合时将P3.0置0,二极管亮。

否则二极管不亮

图2-2发光二级管电路

报警电路

报警电路由单片机和蜂鸣器组成,如图2-3所示,当P3.1为高电平时蜂鸣器发出声音报警。

每次输入的密码与正确密码进行比较,如果相同,锁开灯亮。

如果输入错误则用一个变量来记录输入错误的次数,当输入密码错误达到三次时,蜂鸣器工作发出报警声音,本次设计使用的是声音间断蜂鸣器声音报警来报警,即声音持续时间20ms后又将P3.1置0时间为20ms,如此循环,即可听到“嘟嘟嘟”的间断响声。

设置报警总时间为10S。

图2-3报警电路

数码管显示电路

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

  数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

  ①静态显示驱动:

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

  ②动态显示驱动:

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端“a,b,c,d,e,f,g,dp“连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

密码显示电路由单片机、电阻排和6位数码管组成。

显示电路如图2-4所示。

P0口控制段选,P2口控制位选。

为保证密码的保密性,本设计采用“—”显示所有输入密码,如图2-4所示。

当重设密码时,为了防止手动错误,数码管显示数字,如图2-5所示。

数码管显示原理:

“—”显示原理:

在选择位选的情况下,段选仅点亮“g”管即可显示当位为“—”;

实现左移逐渐点亮原理:

当输入一个数字时,第五位(从右往左数)赋值给第六位,第四位的值赋给第五位,第三位的值赋给第四位,第二位的值赋给第三位,第一位的值赋给第二位,输入的值赋给第一位,同时点亮第一位数码管。

当输入第二个数字时,每一位与输入第一位时相同均向左移一位,将输入的值赋给第一位,同时点亮第一位和第二位数码管。

如此每输入一个数字数码管就向左移动了一位,输入的数字赋值给第一位数码管,并相应点亮右边的数码管。

当按下功能键时,相应的功能键实现相应的功能,而数码管全部回零熄灭。

直到再一次输入数字。

图2-4数码管显示电路

图2-5重设密码数码管显示数字

 

单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,电路图如图2-6所示

图2-6复位电路

图中由按键以及电解电容、电阻构成按键及上电复位电路。

由于单片机是高电平复位,所以当按键按下的时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。

当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。

密码存储电路设计

本设计中,智能密码锁工作时分为两种工作状态,分别是正常状态和锁定状态。

锁定状态时,输出锁定信号,实现上锁功能;正常状态时,锁定信号消失实现开锁功能。

本设计采用AT24C01存储密码。

AT24C01是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含128×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。

具有PDIP、MSOP/TSSOP及SOIC等三种封装形式,以适应不同产品的需求。

将密码存入AT24C01中,开锁时,将从面板上的微键盘输入的数字序与AT24C01中存储的密码相比较,如果位数及每一位上的数都相吻合,则进行开锁

程序复位后,先将AT24C01中保存的密码取出,放入RAM缓冲区1中暂存,将定时器、堆栈等进行初始化,为报警系统作好准备,将RAM缓冲区2中的密码初值设置为和RAM缓冲区1中的密码不同,保证程序复位后比较密码不会相同,这时,进入RAM缓冲区1和RAM缓冲区2的密码比较程序,只有当两者位数相同而且每一位数字都相同时,执行开锁动作、输出开锁信号、进入正常状态,否则执行上锁动作、输出上锁信号、进入锁定状态。

在正常状态时,可以进行重新设置密码、上锁等操作,重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至AT24C01中,同时更新RAM缓冲区1。

在锁定状态时,系统启动报警功能,同时等待用户开锁,如发现用户按下“开锁”键,则读入从微键盘输入的数字序列,用其更新RAM缓冲区2,转入密码比较程序,如密码相同则开锁,否则继续等待用户开锁,为防止非法用户恶意多次试探密码,可在程序中设置当连续三次输入错误密码后自动报警,直至开锁后解除。

如图2-7所示:

图2-7密码锁存储电路

 

第三章软件设计

软件设计思路

电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

当输入密码连续输入错误3次时,系统报警。

密码的设定,在此程序中密码是固定40H—45H中,假设预设的密码为"123456"共6位密码。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

3.2LED显示子程序

LED显示流程图如图3-1所示:

图3-1LED显示流程图

LED显示子程序如下:

DISP:

MOVR0,#45H

DISP1:

MOVA,@R0

ADDA,#50H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#40H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#30H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#20H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#10H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#00H

MOVP0,A

CALLDELAY

RET

键盘扫描子程序

键盘扫描流程图如图3-2所示:

 

图3-2键盘扫描流程图

键盘扫描子程序如下:

L2:

MOVR3,#0F7H

MOVR1,#00H

L3:

MOVA,R3

MOVP1,A

MOVA,P1

MOVR4,A

SETBC

MOVR5,#04H

L4:

RLCA

JNCKEYIN

INCR1

DJNZR5,L4

CALLDISP

MOVA,R3

SETBC

RRCA

MOVR3,A

JCL3

JMPL2

密码比较和报警程序

密码比较和报警流程图如3-3所示:

图3-3密码比较和报警流程

密码比较和报警程序:

COMP:

MOVR1,#45H

MOVR0,#35H

MOVR2,#06H

C1:

MOVA,@R1

XRLA,@R0

JNZC3

DECR1

DECR0

DJNZR2,C1

MOVR2,#200

C2:

MOVR6,#248

DJNZR6,$

DJNZR2,C2

C3:

INCR5

MOVA,R5

MOVR5,A

CJNER5,#03H,C4

MOVR5,#00H

C4:

JMPSTART

 

第四章系统调试

系统调试的组成

系统调试包括硬件调试和软件调试,硬件调试的任务排除系统的硬件电路.包括设计和工艺故障,软件调试是利用开发工具进行在线住址调试,除发现和解决程序错误之外,也可以发现硬件故障.

(1)静态调试

第一步为目测,单片机应用系统中大部分电路安装在印制电路板上,因此对每一块加工好的印制电路板要进行仔细的检查。

第二步为示波器测试,目测检查后,可进行示波器测试。

第三步为加电检查,第四步实际联机检查。

但注意示波器必须接在入口而不能接在电压大的端口上。

(2)动态调试

一般方法是由近及远、由分到合。

首先按逻辑功能将用户系统硬件电路分为若干份,先分块调试,当调试某块电路时,与该电路无关的器件全部从用户系统中去掉,这样,可将故障范围限定在某个局部电路上。

当各块电路调试无故障后,将各块电路加入系统中,再对个块电路功能及电路间可能存在的相互联系进行试验。

经历这样一个调试过程后,大部分硬件故障基本可以排除。

软件调试一般步骤:

先独立后联机:

一个子程序一个子程序的进行调试,最后单片机连起来总调。

先分块后组合:

逐个芯片逐步调试再和整体芯片一起进行总调。

先单步后连续:

先执行一条指令,在每步后,又返回监控调试状态在从程序任意一条地址处启动,最后全速运行。

4.2protues和keil软件仿真

本次调试采用的是protues和keil软件进行仿真。

首先运用keil软件编写电子密码锁的源程序,本设计主要运用汇编语言编写。

源程序编写后运行生成目标文件供protues仿真调试。

图4-1为LED数码管显示六位密码的情况

图4-1数码管显示密码图

 

当密码正确按下确认键发光二极管亮,锁开。

如图4-2所示:

图4-2密码正确锁开灯亮

当密码输入错误三次蜂鸣器发出声音报警,如图4-3所示,发出报警声音。

Protues仿真电路图如图4-4所示:

图4-3蜂鸣器报警

由图4-3可以看到蜂鸣器非接地端为红色,即此时为高电平,所以蜂鸣器正在发出报警声音。

Protues仿真电路图如图4-4所示

图4-4protues仿真电路图

第五章总结与展望

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2