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

上传人:仙*** 文档编号:30434763 上传时间:2021-10-10 格式:DOC 页数:48 大小:3.84MB
返回 下载 相关 举报
毕业设计(论文)基于单片机的电子密码锁设计_第1页
第1页 / 共48页
毕业设计(论文)基于单片机的电子密码锁设计_第2页
第2页 / 共48页
毕业设计(论文)基于单片机的电子密码锁设计_第3页
第3页 / 共48页
点击查看更多>>
资源描述
毕业设计(论文)基于单片机的电子密码锁设计The Design of Electronic Password-lock with SCM学生姓名: XXX 所在院系: XXXX 所学专业: 电子信息工程 所在班级: XXXXX 指导教师: XXXX 完成时间: 44摘 要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。本文从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51与低功耗CMOS型E2PROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。经实验证明,该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅、办公室用锁要求,具有推广价值。关键词:单片机 密码锁 报警ABSTRACT As electronic products are developing towards intelligence and minimization,single-chip computer(SCM) have become the first choice for controllers in the development of electronic products.With the improvement of peoples living standards,it has become particularly prominent about how to achieve Anti-theft family.The traditional mechanical lock has such shortcoming as simple structure,low security,it cant meet peoples demands.For parcticality,this paper designs a new electronic cipher lock, which has the function of alarm and whose cipher can be changed many times. This cipher lock uses AT89S51 SCM and E2PROM AT24C02 as main chip and data memory cell . The author made this ciphor lock by use of making controlled program of Combined Language with periphery elect- rocircuit of keyboard input, display, alarm and unlock.Experiments show that the designed cipher lock is characterized by its reasonable designing methods, simple operation, low cost and property of safety and practicalityBesides,it works well as a residence lock and has great potential for commercial developmentKey words: SCM Cipher lock Alarm目 录1 引言11.1 电子密码锁简介11.2 电子密码锁的发展趋势11.3 本设计所要实现的目标22 设计方案的选择22.1 方案一:采用数字电路控制22.2 方案二:采用以单片机为核心的控制方案23 主要元器件介绍33.1 主控芯片AT89S5133.2 存储芯片AT24C0273.3 1602LCD液晶显示器83.4 晶体振荡器104 系统硬件设计104.1 设计原理104.2 电路总体构成114.3 键盘输入部分114.4 密码存储部分124.5 复位电路134.6 晶振部分144.7 显示电路154.8 报警电路155 系统软件设计166 仿真调试206.1 程序调试206.2 Proteus仿真207 实物设计和调试218 结论24谢 辞25参考文献:26附录一:28附录二:291 引言1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1) 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码锁操作简单易行,一学即会。1.2 电子密码锁的发展趋势在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。1.3 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。2 设计方案的选择2.1 方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。2.2 方案二:采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误并发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。3 主要元器件介绍3.1 主控芯片AT89S51AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。3.1.1 AT89S51性能简介AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。图3-1所示为双列直插式(PDIP)AT89S51单片机的引脚图:图3-1 AT89S51芯片引脚图其主要功能特性:兼容MCS-51指令系统、4k可反复擦写(1000次)ISP Flash ROM、32个双向I/O口、4.5-5.5V工作电压、2个16位可编程定时/计数器、时钟频率0-33MHz、全双工UART串行中断口线、128x8 bit内部RAM、2个外部中断源、低功耗空闲和省电模式、中断唤醒省电模式、3级加密位、看门狗(WDT)电路、软件设置空闲和省电功能、灵活的ISP字节和分页编程、双数据寄存器指针。可以看出AT89S51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时, AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。3.1.2 AT89S51引角功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。表3-1为P1口的第二功能:表3-1端口引脚第二功能P1.5MOSI(用于ISP编程)P1.6MISO(用于ISP编程)P1.7SCK(用于ISP编程)P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问位地址的外部数据存储器(如执行:MOVX Ri 指令)时,P2口线上的内(也即特殊功能)寄存器,在整个访问期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表3-2:表3-2端口功能第二功能端口引脚第二功能RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中断0WR(P3.6)外部数据存储器写选通INT1(P3.3)外中断1RD(P3.7)外部数据存储器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT益出将使该引脚输出高电平,设置SFR AUXR 的 DISRTO 位(地址8EH)可打开或关闭该功能。DISRTO 位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:第当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位禁位后,只有一条MOVX 和MOVC指令ALE才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU公访问外部程序存储器(地址0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上12V的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2 存储芯片AT24C02AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。图3-2(a)、(b)分别是SOIC和PDIP式AT24C02的引脚图: (a) (b)图3-2 AT24C02的两种引脚图图3-3是AT24C02的电路接线图,图中AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89S51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,在AT89S51试验开发板上和单片机的P3.5连接。第6脚SCL为串行时钟输入线,在AT89C51试验开发板上和单片机的P3.6连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地。图3-5 AT24C02的电路接线图AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。3.3 1602LCD液晶显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。3.3.1 接口信号说明1602型LCD的接口信号说明如表3-3所示:表3-3编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3V0液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极3.3.2 主要技术参数1602型LCD的主要技术参数如表3-4所示:表3-4显示容量162个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WH)mm3.3.3 基本操作程序读状态:输入:RS=L,RW=L, E=H 输出:D0D7=状态字读数据:输入:RS=H,RW=H, E=H 输出:无写指令:输入:RS=L,RW=L, D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:输入:RS=H,RW=L, D0D7=数据, E=高脉冲 输出:无3.4 晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。 石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。4 系统硬件设计4.1 设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由发光二极管换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。其原理框图如图4-1所示:AT89S51键盘输入复位电路密码存储电路晶振电路电源输入显示电路报警电路开锁电路图4-1 电子密码锁原理框图4.2 电路总体构成在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择44矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成,其原理图见附录一。4.3 键盘输入部分矩阵式键盘(也称行列式键盘)适用于按键数目较多的场合,它由行线和列线组成,按键位于行列的交点上,一个33的行列结构可以构成一个有9个按键的键盘。同理,一个44的行列结构可以构成一个16键的键盘,很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多I/O口线。按键设置在行列线交点上,行列线分别接到按键开关两端。行线通过上拉电阻接到+5V上。平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由于此行线相连的该列线电平决定。该列线电平如果为低电平,则行线电平为低电平,该列线电平如果为高电平,则行线电平为高电平。这是识别矩阵键盘按键是否按下的关键所在。由于矩阵键盘中行列线为多键公用,各按键均影响该键所在的行列的电平。因此个按键彼此将相互发生影响,所以必须将行列信号配合起来比做适当的处理,才能确定闭合键的位置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4-2所示:图4-2 键盘输入原理图4.4 密码存储部分用E2PROM芯片AT24C02存储密码。AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且它是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。其接线如图4-3所示:图4-3 密码存储电路原理图4.5 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图4-4所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻RRST上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端的电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R5R6,因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态。R5的作用在于限制按键按下瞬间电容C1充电,RST端电位下降,CPU脱离复位状态。R5的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电。图4-4 复位电路连接图4.6 晶振部分AT89S51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-5所示方式连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为20pF。图4-5 晶振部分原理图4.7 显示电路为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD 1602取代普通的数码管来完成。接通电源后显示器处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“correct”,电子密码锁被打开;如果密码不正确,LCD显示屏会显示“error”,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口如图4-6所示:图4-6 显示电路连接图4.8 报警电路报警电路由蜂鸣器及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次;密码正确时,发声并接开锁;当密码输入错误小于三次时,蜂鸣器发一长声;当密码连续输入错误三次时,蜂鸣器连续发出短而急促的噪鸣声报警。如图4-7所示:图4-7 报警电路5 系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成,程序源代码见附录二。主要程序设计流程图如下所示:(1)主程序设计流程图:如图5-1所示。图5-1 (2)键功能程序流程图:如图5-2所示。图5-2 (3)开锁程序流程图:如图5-3所示。图5-3(4)密码修改程序流程图:如图5-4所示。图5-46 仿真调试6.1 程序调试本系统的软件编译环境使用的是Keil uVision4,具体步骤如下:(1)在Windows下运行Keil uVision4软件,进入Keil uVision4开发环境。(2)在Keil uVision4选择Project/New Preject,建立一个新的工程项目。(3)给工程项目取名为lock,然后保存。(4)紧接着自动化弹出器件选择窗,选择Atmel公司的AT89C51,并在弹出窗口中选择否。(5)在Keil uVision4中选择File/New,打开程序编辑器。 (6)输入程序,检查无误后保存文件(扩展名.c)在工程项目相同的目录中。(7)在Preject Workspace窗口中,选择Source Groupl条目并单击右键,在弹出的菜单在选择Add Files to Group Source Group1。(8)加入刚才保存的C程序源文件lock.c。注意,按一次Add按键即可,选完后单击Close退出。(9)在Project Workspace 窗口中,选择Target1条目并单击右键,在弹出的菜单中选择Option for TargetTarget1,准备为Target1配置编译环境。(10)在Output页为Create HEX File项打勾,以便输出单片机烧写用HEX格式文件。(11)选项配置好后,在Keil uVision4中选择Project/Build target,编译工程项目。(12)编译结果显示在Output Windows中,若有错,可双击错误提示行,然后定位到源程序中修改;若无误就可进行下面的软件调试。6.2 Proteus仿真Proteus的ISIS是一款Labcenter出品的电路分析仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。 该软件的特点; 1 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 2 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS-232动态仿真、1C调试器、SPI调试器、键盘和LCD系统仿真的功能:有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 3 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 4 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。 本系统的仿真使用的是Proteus7.5版本。启动Proteus软件,选择所需要的元件,值得指出的是由于proteus的元件库里无1602LCD液晶,我们选取了他的待用品LM016L液晶,但必须在D0-D7上接入排阻,而1602LCD由于内部已接排阻,所以不必再接。选取好元件后,按照电路图连接好电路图,选择单片机,载入已编译无误的hex文件,然后运行,如果无错误提示并且显示正常,说明仿真通过,此时已完成了对电子密码锁的仿真。7 实物设计和调试仿真通过后就要进行实物的设计、焊接、调试。首先要按照仿真电路在电路板上合理的安排元器件,使电路板上的元器件尽可能显得美观并且焊接方便,此处需要指出的是在proteus进行仿真时我们选择了一个与门和一个与非门,即使用74LS08和74LS00两个芯片,但由于一个74LS00可以构成四个与非门,如果我们将两个与非门串连,如图7-1所示,他的效果与一个与门的效果完全一样,这样我们便可用图7-1的接法来替代74LS08,这样可以减少元器件的数量。图7-1实物如图7-2所示:图7-2 实物图上电后的图片如图7-3所示,液晶显示“welcome! A:open B:modify”字样。图7-3 上电后的实物图密码输入正确后图样如图7-4所示,显示“correct”字样。图7-4 密码正确时的实物图密码输入错误,如图7-5所示,显示“error”字样。图7-5 输入密码错误时的实物图当连续三次输入密码错误时,系统报警,显示“warning”字样,如图7-6所示。图7-6 连续输入3次错误报警时的实物图8 结论本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51与低功耗CMOS型E2PROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路并用汇编编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。设计完全可行可以达到设计目地。使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。可在意外泄密的情况下随时修改密码。保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。谢 辞四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。 感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意! 同时也感谢学院为我提供良好的做毕业设计的环境。 最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。参考文献:1 石文轩,宋薇.基于单片机MCS一51的智能密码锁设计M.武汉工程职业技术学院学报,2004,(01)2 祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002,(01)3 叶启明.单片机制作的新型安全密码锁J.家庭电子,2005,(10)4 郭海英.基于单片机的电子安全密码锁的设计M.现代电子技术,2005,(13)5 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004,(03)6 董继成.一种新型安全的单片机密码锁J.电子技术,2004,(03)7 祖龙起,刘仁杰,孙乃凌.一种新颖的电子密码锁J.电子世界,2001,(10)8 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004,(03)9 杨茂涛.一种电子密码锁的实现J.福建电脑,2004,(08)10 瞿贵荣.实用电子密码锁J.家庭电子,2000,(07)11 ATmega.ATmega8L-8AC,2006,(01)12 Wireless World,1998,vol、84,No、1509,p6913 王千.实用电子电路大全M,电子工业出版社,2001,p10114 何立民.单片机应用技术选编M,北京:北京航空大学出版社,199815 李华.MCS-51系列单片机使用接口技术M,北京航空航天大学出版社,199316 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,200617 潘永雄.新编单片机原理与应用M,西安:西安电子科技大学出版社,200318 童诗白,华成英,模拟电子技术基础M,北京:高等教育出版社,200019 阎石.数字电子技术基础M,北京:高等教育出版社,199820 樊昌信,曹丽娜.通信原理M,北京:国防工业出版社,200721 李瀚荪.电路分析基础M,北京:高等教育出版社199122 郭天祥.新概念51单片机C语言教程,北京:电子工业出版社,2009.123 张毅刚.新编MCS-51单片机应用设计,哈尔滨:哈尔滨工业大学出版社200324 宏晶科技 STC Microcontroller Handbook,200725 谭浩强.C程序设计,北京:清华大学出版社,1991附录一:附录二:/*电子密码锁*/#include#include#include#define uchar unsigned char#define uint unsigned int#define C02_write 0xa0 /c02写地址 #define C02_read 0xa1 /c02读地址#define no0 0x28 /定义键码#define no1 0x14#define no2 0x24#define no3 0x44#define no4 0x12#define no5 0x22#define no6 0x42#define no7 0x11#define no8 0x21#define no9 0x41#define open 0x81#define modify 0x82#define enter 0x88#define backspace 0x84#define lcm_write_cmd_add XBYTE0x80FF /1602 控制地址#define lcm_write_data_add XBYTE0x81FF#define lcm_read_busy_add XBYTE0x82FFuchar idata temp5_password6=0x00,0x00,0x00,0x00,0x00,0x00;uchar idata key_code=no0,no1,no3,no4,no5,no6,no7,no8,no9;sbit SCL=P30;sbit SDA=P31;sbit i=P32;sbit led=P33;sbit beep=P34;bit ack;void delay0(uchar x) / 延时函数 uchar i; while(x-) for (i = 0; i0;i-)for(j=124;j0;j-);void longdelay(uchar i)uint j;for(;i0;i-)for(j=10000;j0;j-);void keysound() /按键声音函数 uchar i; for (i=0;i180;i+) delay0(5); beep=!beep; /BEEP取反 void alarm1() /报警函数 uchar k; for (k=0; k10; k+)keysound(); void lcm_wait()while(lcm_read_busy_add&0x80); /读取 LCD忙标志void lcm_write_cmd(uchar lcm_cmd) /写控制字lcm_wait();lcm_write_cmd_add=lcm_cmd;void lcm_write_data(uchar lcm_data) /写显示数据lcm_wait();lcm_write_data_add=lcm_data;void lcm_setxy(uchar x,uchar y) /光标定位,x定位字符位置,y为行数if(y=1) lcm_write_cmd(x|0x80); /定位第一行if(y=2) lcm_write_cmd(x|0xc0); /定位第二行void lcm_write_string(uchar *string) /字符串显示uchar i=0;while(stringi!=0)lcm_write_data(stringi);i+;void lcm_init() /LCD初始化delayms(20);lcm_write_cmd_add=0x38;delayms(4);lcm_write_cmd_add=0x38;delayms(1);lcm_write_cmd_add=0x38;lcm_write_cmd(0x38);lcm_write_cmd(0x0f);lcm_write_cmd(0x01);lcm_write_cmd(0x06);void I2C_start(void) /I2C开始信号SDA=1;SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SDA=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();void I2C_stop(void) /I2C结束SDA=0;SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();void I2C_no_ackownledge(void) /发送noack信号SDA=1;_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=0;_nop_();_nop_();_nop_();void I2C_sendB(uchar byte)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!