1、基于 STC89C52 单片机的电子密码锁学生姓名: xx 学生学号: xxxxx 院(系): 电气信息工程学院 年级专业: 2010 级电子信息工程 2 班 指导教师: 陶文英 二一三年六月摘 要随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事情屡见不鲜,电子密码锁具有安全性能高,成本低,功耗低,操作简单等优点使其作为防盗卫士的角色越来越重要。从经济实用角度出发,采用 51 系列单片机,设计一款可更改密码,LCD1602 显示,具有报警功能,该电子密码锁体积小,易于开发,成本较低,安全性高,能将其存储的现场历史数据及时上报给上位机系统,
2、实现网络实时监控,方便管理人员及时分析和处理数据。其性能和安全性已大大超过了机械锁,特点有保密性好,编码量多,远远大于弹子锁,随机开锁成功率几乎为零;密码可变, 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降;误码输入保护。当输入密码多次错误时,报警系统自动启动;电子密码锁操作简单易行,受到广大用户的亲睐。关键词 单片机, 密码锁, 更改密码, LCD1602目 录摘要I1 绪论1.1 电子密码锁简介11.2 电子密码锁的发展趋势12 设计方案33 主要元器件43.1 主控芯片 STC89C5243.2 晶体振荡器83.3 LCD 显示密码模块的设计93.3.1
3、 LCD1602 简介93.3.2 LCD1602 液晶显示模块与单片机连接电路114 硬件系统设计124.1 设计原理124.2 电源输入电路124.3 矩阵键盘134.4 复位电路144.5 晶振电路144.6 报警电路154.7 显示电路154.8 开锁电路164.9 电路总体构成165 软件程序设计185.1 主程序流程介绍185.2 键盘模块流程图19 5.3 显示模块流程图215.4 修改密码流程图225.5 开锁和报警模块流程图236 电子密码锁的系统调试及仿真256.1 硬件电路调试及结果分析256.2 软件调试及功能分析256.2.1 调试过程256.2.2 仿真结果分266
4、.3 仿真全图287 结论29参考文献30附录:3101 绪论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:1) 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不
5、会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码锁操作简单易行,一学即会。1.2 电子密码锁的发展趋势日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。由于电子器件所限,以前开发的电子密码锁,其种类不多,
6、保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于 EDA 来实现的,其电路结构复杂,电子元件繁多,也有使用早先的 20 引角的 2051 系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方1便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹
7、或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所” 。可以看出组合使用电子信息是电子密码锁以后发展的趋势。22 设计方案采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑
8、:性能、存储器、运行速度、I/O 口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机 STC89C52 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的 I/O 端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接 LCD1602 液
9、晶显示屏用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键 09 输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确则重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确开锁后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。33 主要元器件3.1 主控芯片 STC89C521)STC89C52 单片机的主要特性如下: Stc89c52 是一种带 8K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only
10、Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,stc 的 stc89c52 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,stc89c52 芯片引脚图如图 3-1所示。图 3-1 stc89c52 芯片引脚图主要特性:与 MCS-51 兼容 48K 字节可编程闪烁存储器 寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部
11、 RAM32 可编程 I/O 线两个 16 位定时器/计数器6 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2)STC89C52RC 引脚功能说明:1、主电源引脚 VSS和 VSS STC89C52 芯片引脚图VSS(40 脚)接+5V 电压;VSS(20 脚)接地。 2、外接晶体引脚 XTAL1 和 XTAL2 XTAL1(19 脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对 HMOS单片机,此引脚应接地;对 SHMOS 单片机,此引脚作为驱动端。 XTAL2(18 脚)接外晶体的另一端。在单片机
12、内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对 HMOS 单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。 3、控制或与其它电源复用引脚 RST/VPD、ALE/PROG、PSEN 和 EA/VPP RST/VPD(9 脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与 VSS 引脚之间连接一个约 8.2k 的下拉电阻,与 VSS引脚之间连接一个约 10F 的电容,以保证可靠地复位。 VSS掉电期间,此引脚可接上备用电源,以保证内部 RAM 的数据不丢失。当5VSS主电源下掉到低于
13、规定的电平,而 VPD 在其规定的电压范围(50.5V)内,VPD 就向内部 RAM 提供备用电源。 ALE/PROG(30 脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE 端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的 1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个 ALE 脉冲。ALE 端可以驱动(吸收或输出电流)8 个 LS 型的 TTL 输入电路。 对于 EPROM 单片机(如 8751) ,在 EPROM 编程期间,此引脚用于输入编程脉冲(PROG)
14、。 PSEN(29 脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次 PSEN 有效。但在此期间,每当访问外部数据存储器时,这两次有效的 PSEN 信号将不出现。PSEN 同样可以驱动(吸收或输出)8 个 LS 型的 TTL 输入。 EA/V PP( 引脚):当 EA 端保持高电平时,访问内部程序存储器,但在PS(程序计数器)值超过 0FFFH(对 851/8751/80S51)或 1FFFH(对 8052)时,将自动转向执行外部程序存储器内的程序。当 EA 保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的 803
15、1 来说,无内部程序存储器,所以 EA 脚须常接地,这样才能只选择外部程序存储器。 对于 EPROM 型的单片机(如 8751) ,在 EPROM 编程期间,此引脚也用于施加 21V 的编程电源(V PP) 。4控制或与其它电源复用引脚 RST/Vpd,ALE/PROG,PSEN 和 EA/Vpp。RST/Vpd 当振荡器运行时。在此引脚上出现两个机器同期的高电平(由低到高跳变) ,将使单片机复位。在 VSS 掉电期间,此引脚可接上备用电源,由 Vpd 向内部 RAM 提供备用电源,以保持内部 RAM 中的数据。ALE/PROG 正常操作时为 ALE 功能(允许地址钱存) ,提供把地址的低字节锁存到外部锁存器。ALE 引脚以不变的频率(振荡周期的 1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个 ALE 脉冲。 ALE 端可以驱动(吸收或输