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

上传人:sccc 文档编号:4872878 上传时间:2023-05-20 格式:DOC 页数:38 大小:392.02KB
返回 下载 相关 举报
毕业设计论文基于单片机的电子密码锁的设计.doc_第1页
第1页 / 共38页
毕业设计论文基于单片机的电子密码锁的设计.doc_第2页
第2页 / 共38页
毕业设计论文基于单片机的电子密码锁的设计.doc_第3页
第3页 / 共38页
毕业设计论文基于单片机的电子密码锁的设计.doc_第4页
第4页 / 共38页
毕业设计论文基于单片机的电子密码锁的设计.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《毕业设计论文基于单片机的电子密码锁的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机的电子密码锁的设计.doc(38页珍藏版)》请在三一办公上搜索。

1、页眉页脚需要设定电子密码锁的设计摘要:随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出,传统的机械锁,由于其构造的简单,安全性能低,无法满足人们的需要。在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要1。本次设计的题目是电子密码锁的设计,系统由AT89C51与低功耗CMOS型EPROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD显示、报警、开锁等电路模块。它能完成以下功能:正确输入密码前提下,开锁;错误输入密码情况下,报警;密码可以根据用户需要更改。本密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,具有一定的推广价值。关

2、键词:电子密码锁;报警;液晶显示;矩阵键盘The design of electronic locksAbstract: With the development of the peoples living standard, how to achieve the family security is becoming important in particular. The traditional mechanical lock is unable to meet the peoples needs because of its simple structure, low security.

3、 Nowad-ays, with the continuous development of the science and technology,electronic passwo- rd anti-theft lock plays a more important role as the security guards.The main paper is about the design electronic code lock. The system is composed with AT89C51, E2PROM AT24C02,data memory element and the

4、peripheral circuits such as LCD display, alarming circuit , unlock circuit module.It can complete the following functions: open the lock with a correctly password, give an alarm with the mistake password,change the password if the host want. The lock has some features like a reasonable design method

5、s, simple to work, low cost and security. It also has some promotion value.Key words:AT89C51;AT24C02;electronic locks;matrix keyboard目 录1 引 言11.1电子密码锁简介11.2 电子密码锁的发展趋势1 1.3课题设计目标.22系统方案论证32.1 主控部分的选择32.2 密码输入方式的选择33 系统总体设计和主要芯片介绍43.1 系统总体设计53.2 主要芯片介绍63.2.1 AT89C5163.2.2 存储芯片AT24C0283.2.2 LCD1602显示器

6、94硬件设计114.1 键盘输入模块114.2 密码存储模块124.3 复位部分134.4 晶振部分134.5 显示模块144.6 报警部分154.7 开锁部分155系统软件设计175.1 系统程序流程图175.1.1 主程序流程图175.1.2 键功能程序流程图185.1.3 开锁程序流程图195.2 子程序举例205.2.1 开锁子程序205.2.2 按键扫描子程序225.2.3 密修改码子程序236毕业设计总结28致 谢29参考文献30附录一 总电路原理图31附录二 实物图32附录三 元器件清单33附录四 系统总体程序341 引 言1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制

7、电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1) 保密性好,编程量多,远远大于弹子锁。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的 误码输入保护,当输入密码多次错误时,报警系统自动启动。3) 无活动零件,不会磨损,寿命长。4) 使用灵活性好,不会像机械锁必须佩带钥匙才能开锁。5) 电子密码锁操作简单易行,一学即会【4】。1.2电子密码锁的发展趋势在

8、日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展

9、,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。1.3 课题设计目标本设计采用单片机为主控芯片,

10、结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误系统将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。电子密码锁的设计主要由三部分组成:44矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“”就显示在最右边的数码管上,同时将先前输入的所有“”向左移动一位。(2)密码清除功能:

11、当按下清除键时,清除前面输入的所有值,并清除所有显示。(3)密码更改功能:将输入的值作为新的密码。(4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。 (5)报警功能:当密码输入错误将报警。2 系统方案论证2.1 主控部分的选择方案一:采用数字电路控制 用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合4。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。 方案二:采用以单片机为核心的控制方案选用单片机作为系统的核心部件,实现控制与处理的功能。

12、单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,因此综合考虑,本系统采用方案二。2.2 密码输入方式的选择方案一:指纹输入识别 指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点”(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯

13、一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否5。考虑到本方案软硬件太过复杂,而且成本也高,故不采用。方案二:矩阵键盘输入识别 由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。 行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中

14、断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。每个按键都可通过程序赋予功能,从而完成密码识别8。本方案简单易行,故采用。3 系统总体设计和主要芯片介绍3.1 系统总体设计本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电

15、器换成电子密码锁的电磁铁吸合线圈即可。系统整体框图如下图所示。显示模块键盘输入模块 AT89C51报警电路复位电路开锁电路密码存储模块 图1 系统结构框图各模块功能如下:1键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。2显示模块:用于完成对系统状态显示及操作提示功能。3复位电路:完成系统的复位。4报警电路:用于完成输错密码时候的警报功能。5密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。6开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。3.2 主要芯片介绍3.2.1 主控芯片AT89C51 AT89C51单片机包含中央处理器、程序存储器(R

16、OM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,以下分别加以说明:图2 单片机内部结构示意图1、中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2、数据存储器(RAM)AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写

17、的数据,运算的中间结果或用户定义的字型表。3、程序存储器(ROM)AT89C51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。4、定时/计数器:89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。5、并行输入输出(I/O)口:89C51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。6、中断系统89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。3.2.1.1 AT89C51单片机的引脚AT89C51单片机内部总线是单总线结构,

18、即数据总线和地址总线是公用的. 89C51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分. AT89C51单片机为双列直插式封装结构, 如图3所示.主要特性:1、与MCS-51 兼容 2、4K字节可编程闪烁存储器3、寿命:1000写/擦循环 4、数据保留时间:10年5、全静态工作:0Hz-24Hz 6、三级程序存储器锁定7、128*8位内部RAM 8、32可编程I/O线9、两个16位定时器/计数器 10、5个中断源11、可编程串行通道 12、低功耗的闲置和掉电模式13、片内振荡器和时钟电路图3 AT89C51引脚分配图AT8

19、9C51单机的电源线有以下两种:(1) VCC:+5V电源线。电源线 (2) GND:接地线。AT89C51单片机的外接晶体引脚有以下两种: (1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。外接晶体引脚。控制线 AT89C51单片机的控制线有以下几种:(1) RST:复位输入端,高电平有效。(2) ALE/PROG:地址锁存允许/编程线。(3) PSEN:外部程序存储器的读选通线。(4) EA/Vpp:片

20、外ROM允许访问端/编程电源端。 3.1.1.2 AT89C51单片机复位方式单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位. 复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.AT89C51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位. 复位后,PC程序计数器的内容为0000H,片内RAM中内容不变. 复位电路一般有上电复位、手动开关复位和自动复位电路3种,如下图所示.a.上电复位电路 b. 手

21、动复位电路 c. 自动复位电路图4 单片机复位电路由于设计所需,我们在这里选用手动式复位电路。由外部扩展M24C01设定功能键控制手动式复位电路。3.2.2 存储芯片AT24C02 AT24C02是美国Atmel公司的低功耗CMOS型EPROM,内含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了IC总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地

22、址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了IC规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的

23、控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。管脚描述:SCL 为串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDL 为串行数据/地址:双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或。?这些方框删掉A0、A1、A2 为器件地址输入端:当使用24C02 时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。WP为写保护:如果WP 管脚连接到Vcc 所有的内容都被写保护只能读当WP, 管

24、脚连接到Vss 或悬空,允许器件进行正常的读/写操作12。管脚图如下图所示。 图5 AT24C02引脚图3.2.3 LCD1602显示器 现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。接口信号说明:1602型LCD的接口信号说明如表3.1所示。表3.1 1602型LCD的接口信号说明第1脚VSS 电源地第 9 脚D2双向数据线第2脚VDD +5V电源第10脚D3双向数

25、据线第3脚VEE 液晶显示偏压信号第11脚D4双向数据线第4脚RS 数据/命令选择端第12脚D5双向数据线第5脚R/ W 读/写 选择端第13脚D6双向数据线第6脚E 使能端第14脚D7双向数据线第7脚D0双向数据线第15脚BLA 背光源正极第8脚D1 双向数据线第16脚BLK 背光源负极主要技术参数:1602型LCD的主要技术参数如表3.2所示。 表3.2 1602型LCD的主要技术参数显示容量162个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WXH)mm基本操作程序:读状态:令RS=L,RW=L, E=H 输出:D0D7=

26、状态字读数据:令RS=H,RW=H, E=H 输出:无写指令:令RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:令RS=H,RW=L, D0D7=数据, E=高脉冲 输出:无 4 硬件设计本系统外围电路包括键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择44矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成。其原理图如下图所示。图6 电路原理图4.1 键盘输入模块由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘

27、,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个44键盘不但能完成密码的输入还能作特别功能键使用。键盘的每个按键功能在程序设计中设置。它与单片机的连接如下图所示。图7 键盘输入模块4.2 密码存储模块图8所示AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89S51试验开发板上它们都接地,第5脚和第8脚分别为正、负电源。第8脚SDL为串行数据输入/输出,数据通过这条双向IC总线串行传送,在AT89S52试验开发板上和单片机的P3.6连接。第6脚SCL为串行时钟输入线,在AT89S52试验开发板上和单片机的

28、P3.7连接。SDL和SCL都需要和正电源间各接一个5.1K的电阻上拉。第6脚接P3.5。AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。图8 密码存储电路4.3 复位部分单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端

29、的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R5 提示输入密码GotoXY(0,0);count=0;Print(Code: );count1=1;count2=1;count6=1;sk15=0; sk14=0;m=0;cp0=1;if(count!=0)&(count1=1) /LCD上显示* if(count=1)GotoXY(0,0); Print(Cod

30、e:* );if(count=2)GotoXY(0,0); Print(Code:* ); if(count=3)GotoXY(0,0); Print(Code:* ); if(count=4)GotoXY(0,0); Print(Code:* );if(count=5)GotoXY(0,0); Print(Code:* ); if(count=6)GotoXY(0,0); Print(Code:* ); if(count6)GotoXY(0,0); Print(Code:* );count1=0;if(sk14=1)&(count6=1) /按下确认,刚进入较验/密码正确if(passwor

31、d0=cq0)&(password1=cq1)&(password2=cq2)&(password3=cq3)&(password4=cq4)&(password5=cq5)&(count=6 )GotoXY(0,0); Print(Door Open! );sk14=0; count=0;count2=0; m=0; count4=1;DelayMs(1000); count6=1; P2_0=0;DelayMs(500);P2_0=1;/密码错误 LCD_Initial(); cp0=0;else GotoXY(0,0); Print(Code wrong! );DelayMs(1000)

32、;sk14=0; count=0; count2=0; count6=0; m=0; p3_6=0;DelayMs(100);DelayMs(3000);p3_6=1; LCD_Initial(); cp0=0; /密码错误5.2.2 按键扫描子程序 void Check_Key(void)unsigned int row,col,tmp1,tmp2;tmp1 = 0x10; /tmp1用来设置P1口的输出,取反后使P1.4P1.7中有一个为0for(row=0;row4;row+) / 行检测P1 = 0x0f; / 先将p1.0P1.3置高P1 =tmp1; / 使P1.4p1.7中有一个

33、为0tmp1*=2; / tmp1左移一位if (P1 & 0x0f) 0x0f) / 检测P1.0P1.3中是否有一位为0,只要有,则说明此行有键按下,进入列检测DelayMs(30);if (P1 & 0x0f) 0x0f) / 检测P1.0P1.3中是否有一位为0,只要有,则说明此行有键按下,进入列检测 tmp2 = 0x01; / tmp2用于检测出哪一列为0for(col =0;col4;col+) / 列检测 if(P1&tmp2)=0x00) / 该列如果为低电平则可以判定为该列 key_val = row*4 +col; / 获取键值,识别按键while(P1&tmp2)=0x

34、00);return; / 退出循环tmp2*=2; / tmp2左移一位while(P1&tmp2)=0x00); 5.2.3 密修改码子程序if(sk11=1)&(cp0=0) /提示输入旧密码GotoXY(0,0); Print(Old Code: );pass=1;count1=0;count=0;count7=1;count2=1;count6=0;sk11=0;f(count!=0)&(pass=1)&(cp0=0) /输出显示*pass0=0; if(count=1)GotoXY(0,0); Print(Old Code:* );if(count=2)GotoXY(0,0); P

35、rint(Old Code:* ); if(count=3)GotoXY(0,0); Print(Old Code:* ); if(count=4)GotoXY(0,0); Print(Old Code:* );if(count=5)GotoXY(0,0); Print(Old Code:* ); if(count=6)GotoXY(0,0); Print(Old Code:* ); m=0;if(count!=0)&(pass0=1)&(cp0=0)pass=0; if(count=1)GotoXY(0,0); Print(New Code:* );if(count=2)GotoXY(0,0); Print(New Code:* ); if(count=3)GotoXY(0,0); Print(New Code:* ); if(count=4)GotoXY(0,0); Print(New Code:* );if(count=5)GotoXY(0,0); Print(New Code:*

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号