《毕业设计(论文)基于单片机的电子密码锁设计2.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的电子密码锁设计2.doc(47页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)基于单片机的电子密码锁设计The Design of Electronic Password-lock with SCM学生姓名: XXX 所在院系: XXXX 所学专业: 电子信息工程 所在班级: XXXXX 指导教师: XXXX 完成时间: 摘 要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。本文从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51与低功耗CMOS型E2PROM AT24C02作
2、为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁。经实验证明,该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅、办公室用锁要求,具有推广价值。关键词:单片机 密码锁 报警ABSTRACT As electronic products are developing towards intelligence and minimization,single-chip computer(SCM) have become the first choice for controll
3、ers 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 parcticali
4、ty,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 La
5、nguage 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
6、 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 密码存储部分1
7、24.5 复位电路134.6 晶振部分144.7 显示电路154.8 报警电路155 系统软件设计166 仿真调试206.1 程序调试206.2 Proteus仿真207 实物设计和调试218 结论24谢 辞25参考文献:26附录一:28附录二:291 引言1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1) 保密性好,编码量多,远远大于弹子锁。随机
8、开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码锁操作简单易行,一学即会。1.2 电子密码锁的发展趋势在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙
9、丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密
10、码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样
11、化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。1.3 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。2 设计方案的选择2.1 方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其
12、它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。2.2 方案二:采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、
13、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之
14、后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误并发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。3 主要元器件介绍3.1 主控芯片AT89S51AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATM
15、EL公司的高密度、非易失性存储技术制造,兼容标准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设计和配置了振荡频
16、率可为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串行中断口
17、线、128x8 bit内部RAM、2个外部中断源、低功耗空闲和省电模式、中断唤醒省电模式、3级加密位、看门狗(WDT)电路、软件设置空闲和省电功能、灵活的ISP字节和分页编程、双数据寄存器指针。可以看出AT89S51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时, AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方
18、式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。3.1.2 AT89S51引角功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)
19、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。在访问位地址的外部数据存储
20、器(如执行: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(
21、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输出的正脉
22、冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:第当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位禁位后,只有一条MOVX 和MOVC指令ALE才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU公访问外部程序存储器(地址
23、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)、抗干扰能力强、数据不易丢失、体积小等特点。而且
24、他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发
25、送器状态。主机产生串行时钟信号(通过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
26、为串行数据输入/输出,数据通过这条双向I2C总线串行传送,在AT89S51试验开发板上和单片机的P3.5连接。第6脚SCL为串行时钟输入线,在AT89C51试验开发板上和单片机的P3.6连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地。图3-5 AT24C02的电路接线图AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。3.3 1602LCD液晶显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。
27、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
28、 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 晶体振
29、荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。 石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频
30、率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑
31、料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。4 系统硬件设计4.1 设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由发光二极管换成电子密码锁的电磁铁吸合线圈即可,当然也可以用
32、继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。其原理框图如图4-1所示:AT89S51键盘输入复位电路密码存储电路晶振电路电源输入显示电路报警电路开锁电路图4-1 电子密码锁原理框图4.2 电路总体构成在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括键盘输入部分、密码存储部分、复位部分、晶振部分、显
33、示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择44矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成,其原理图见附录一。4.3 键盘输入部分矩阵式键盘(也称行列式键盘)适用于按键数目较多的场合,它由行线和列线组成,按键位于行列的交点上,一个33的行列结构可以构成一个有9个按键的键盘。同理,一个44的行列结构可以构成一个16键的键盘,很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多I/O口线。按键设置在行列线交点上,行列线分别接到按键开关两端。行线通过上拉电阻接到+5V上。平时无按键按下时,行线处于高电平状态,而当有按键
34、按下时,行线电平状态将由于此行线相连的该列线电平决定。该列线电平如果为低电平,则行线电平为低电平,该列线电平如果为高电平,则行线电平为高电平。这是识别矩阵键盘按键是否按下的关键所在。由于矩阵键盘中行列线为多键公用,各按键均影响该键所在的行列的电平。因此个按键彼此将相互发生影响,所以必须将行列信号配合起来比做适当的处理,才能确定闭合键的位置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4-2所示:图4-2 键盘输入原理图4.4 密码存储部分用E2PROM芯片AT24C02存储密码。AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含2568位存储空间,具有工作电压宽(
35、2.55.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且它是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件
36、。AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。其接线如图4-3所示:图4-3 密码存储电路原理图4.5 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第
37、个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图4-4所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻RRST上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端的电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复
38、位按键是为了避免死机时无法可靠复位。当复位按键按下后电容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及片内与非门(作为反馈、放大元件)构成了
39、电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为20pF。图4-5 晶振部分原理图4.7 显示电路为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD 1602取代普通的数码管来完成。接通电源后显示器处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话
40、, LCD子显示“correct”,电子密码锁被打开;如果密码不正确,LCD显示屏会显示“error”,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口如图4-6所示:图4-6 显示电路连接图4.8 报警电路报警电路由蜂鸣器及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次;密码正确时,发声并接开锁;当密码输入错误小于三次时,蜂鸣器发一长声;当密码连续输入错误三次时,蜂鸣器连续发出短而急促的噪鸣声报警。如图4-7所示:图4-7 报警电路5 系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码
41、设置程序、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)给工
42、程项目取名为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 窗口
43、中,选择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出品的电路分析仿真系统,可仿真各种电路和
44、IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。 该软件的特点; 1 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 2 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS-232动态仿真、1C调试器、SPI调试器、键盘和LCD系统仿真的功能:有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 3 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 4 支持大量的存储器和外围芯片。总之该软件是一款集单片机和S
45、PICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。 本系统的仿真使用的是Proteus7.5版本。启动Proteus软件,选择所需要的元件,值得指出的是由于proteus的元件库里无1602LCD液晶,我们选取了他的待用品LM016L液晶,但必须在D0-D7上接入排阻,而1602LCD由于内部已接排阻,所以不必再接。选取好元件后,按照电路图连接好电路图,选择单片机,载入已编译无误的hex文件,然后运行,如果无错误提示并且显示正常,说明仿真通过,此时已完成了对电子密码锁的仿真。7 实物设计和调试仿真通过后就要进行实物的设计、焊接、调试。首先要按照仿真电路在电路板上合理的安排
46、元器件,使电路板上的元器件尽可能显得美观并且焊接方便,此处需要指出的是在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作为主控芯片与数据