




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文) 课 题 名 称 单片机密码锁的设计 学 生 姓 名 王 帆 学 号 系、年级专业 机电一体化 指 导 教 师 谢 聪 2011 年 11 月 2 日 I 摘摘 要要 在现代社会,电子密码锁已不是一个陌生的名词。本文中将要介绍的电子密码 锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成 开锁、闭锁任务的电子锁装置。 本设计是基于AT89C51单片机为控制核心的密码锁设计方案,它是一种通过 密码输入来控制电路或是芯片工作,运用键盘输入、密码修改、密码检测、开锁电 路、执行电路、报警电路、键盘输入次数锁定电路来完成开锁、闭锁等任务。利用 识别密码是否正确来开锁或报警。通过键盘输入次数记录来实现键盘的锁定。本文 设计的密码锁具有安全性高、成本低、功耗低、易操作等优点。 关键词:AT89C51;电子密码锁;控制电路;识别密码 II Abstract In modern society, the electronic lock has not a strange noun. This will introduce an electronic lock that is an electronic products can password to control circuit and control work, or chip mechanical switch, complete the task of unlock and lock. The design is based on AT89C51 as control core design scheme of locks, it is a password to control circuit through work, or chip keyboard input, password revision, password lock circuit, detection and alarm circuit, keyboard input frequency lock, to complete the circuit, etc. Using the correct password recognition to replace or alarm. Through the keyboard input frequency to lock the keyboard recording. In this design with high security locks, low cost, low power consumption, easy operation, etc. Keywords: AT89C51;electronic locks;control circuit;identify the password III 目录 摘要I ABSTRACT .II 1.1 引言.1 1.2 课题来源.1 1.3 国内外研究现状.2 第 2 章 方案设计与论证.3 2.1 设计思路.3 2.2 系统方案一.3 2.3 系统方案二.4 2.4 方案论证.4 第 3 章 硬件电路设计.5 3.1 AT89C51 单片机硬件结构 5 3.2 键盘电路设计.9 3.3 开锁电路设计.10 3.4 显示电路设计.12 3.5 AT24C02 掉电存储单元的设计 12 3.6 电源电路设计.13 3.7 设计总体电路图.15 第 4 章 软件设计.16 4.1 程序设计.16 4.2 主程序设计.16 4.3 键盘扫描及识别子程序设计.19 4.4 显示子程序设计.23 第 5 章 系统仿真与调试.26 5.1 PROTEUS仿真平台 .26 5.2 部分模块电路仿真.26 5.3 仿真结果分析及问题解决方案.29 结束语.30 参考文献.31 致 谢.32 附录 I 总体原理图33 附录 II 程序主要原代码34 1 第 1 章 绪论 1.1 引言 在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以 及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人 们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技 术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对 锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安 全性高、成本低、功耗低、易操作等优点。 根据本设计要求,通过密码输入来控制电路或是芯片工作,从而控制机械开关 的闭合,完成开锁、闭锁等任务。它的种类很多,有简易的电路产品,也有基于芯 片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来 实现的。其性能和安全性已大大超过了机械锁。 其主要优点有: (1)保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 (2)密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员 的更替而使锁的密级下降。 (3)误码输入保护。当输入密码多次错误时,报警系统自动启动。 (4)操作简单易行,一学即会。 1.2 课题来源 目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使 用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙 上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙 齿牙相同或类似,故安全性低。根据国外的统计资料,装有电子防盗装置的商业区或 居民区盗窃犯罪率平均下降30%左右。二是钥匙一旦丢失,无论谁捡到都可以将锁 打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于 复制,不适于诸如宾馆等公共场所使用。出于安全、方便等方面的需要,许多智能 锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有 效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式 的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推 2 广。根据单片机技术及相关原理,设计一个以单片机为控制核心,采用程序控制方法, 能实现对电子产品安全保护的电路。 1.3 国内外研究现状 当今电子密码锁的发展已经到了非常高的境界,由于电子元件特别是单片机应 用在这几年得到空前发展,无论功能性,稳定性都比较全面,在保密方面已做到人 眼识别,指纹识别,人声识别基本上电影上有的现实也有。在国外发展比较早,所 以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多,在国内 这方面发展也较快,不管自己开发或是引进都有,在重要地方应用也较多,由于价 钱比普通弹子锁较贵,早几年应用较少,现在越来越普及到平常化,未来的发展也 会越来越被大众采用,由于它的功能、安全是弹子锁无法相比的。发展前境是非常 大的。 3 第 2 章 方案设计与论证 2.1 设计思路 根据本设计的要求,构思如下: (1)输入密码用矩形键盘,包括数字键和功能键。 (2)LED数码管显示输入密码,但是只是输出显示符号-。采用动态扫描输出。 (3)用发光二极管模拟锁的情况,锁关时发光二极管灭,打开时发光二极管亮。 (4)输入密码错误或操作错误时报警。 软件的设计主要包括矩形键盘键值的读取、LED动态扫描输出程序、密码判断 程序和报警程序。 2.2 系统方案一 用以74LS112双JK触发器构成的数字逻辑电路控制方案。密码锁电路包含: 键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数 锁定电路。其总体方框图如图2.1所示。 4 密码修改电路 键盘输入 密码校正电路 开锁电路 执行电路 开门 限 时 报 警 消除报 警信号 虎 开始 计时 国 锁定 脉冲 国 报警信号检测 锁定 5 分 钟 市电供电路 电子切换开关 蓄电池 6V 220V 断电检测 充电电路 电源 VCC 图 2.1 数字电路控制电子密码锁总体方框图 2.3 系统方案二 采用一种是用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程 设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能 添加调电存储、声光提示甚至添加遥控控制功能。其原理如图2.2所示。 AT89C50 单片机 键 盘 控 制 AT24C02 掉电存储 串口显示电路 延时报警控制电路 开锁控制电路 图 2.2 单片机控制电子密码锁总体方框图 5 2.4 方案论证 考虑到数字电路方案原理简单,造价低廉,但是不能满足现在的安全需求,而 单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大的程度上 扩展功能及方便地对系统进行升级,实现基本的密码锁功能,添加掉电存储、声光 提示甚至添加遥控控制功能。所以我们采用后一种方案。 第 3 章 硬件电路设计 单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。 它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、 定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。 随着SCM在技术上、体系上不断扩展其控制功能,国际上已经采用 MCU(Microcontroller Unit)代替单片机的名词。它的最大优点是体积小,可 放在仪表内部。但存储量小,输入输出适配器简单,功能较低。目前,单片机在民 用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。近年来, AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的闪烁 ROM,并且闪烁ROM可以直接用编程器来擦写,使用起来比较方便。 一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单 片机内部的功能单元,如ROMRAMI/O口定时/记数器中断系统等能量不 能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电 路。二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器打印机 A/D和D/A转换器等,又要设计合适的接口电路。 6 3.1 AT89C51 单片机硬件结构 AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个 4KB的FLASH可编程可擦除只读存储器(FPEROMFlash Programmable a nd Erasable Read Only Memory),它采用了CMOS工艺和ATMEL公司 的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC51兼容。 片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在 系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51是一种功能强 、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。 3.1.1 主要特性 (1)与MCS-51产品指令系统兼容 (2)4K字节可编程闪烁存储器 (3)寿命:1000写/擦循环 (4)数据保留时间:10年 (5)全静态工作:0Hz-24Hz (6)三级程序存储器锁定 (7)128*8位内部RAM (8)32可编程I/O线 (9)两个16位定时器/计数器 (10)6个中断源 (11)可编程串行通道 (12)低功耗的闲置和掉电模式 (13)片内振荡器和时钟电路 另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到零并提供两种 软件的省电方式-空闲方式和掉电方式。在空闲方式中,CPU停止工作。在掉电方 式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片 内RAM中的内容,直到下次硬件复位为止。 3.1.2 管脚说明 VCC(40):供电电压,其工作电压为5V。 GND(20):接地。 P0端口(P0.0-P0.7):P0口为一个8位漏级开路双向I/O口,每脚可吸收 8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外 7 部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉 高。 P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口, P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平, 可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在FLASH编程和校验时,P1口作为第八位地址接收。 P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2 口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上 拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电 流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据 存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上 拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的 内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向 I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉 为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流 (ILL)。 P3口也可作为AT89C51的一些特殊功能口,如表3.1所示。 表 3.1 P3 端口引脚兼用功能表 端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD(串行输入口) TXD(串行输出口) (外中断0) T1(定时/计数1) (外部数据存储器写选通) (外部数据存储器读选通) (外中断1) T0(定时/计数0) _ 1INT _ 0INT _ WR _ RD P3口同时为闪烁编程和编程校验接收一些控制信号。 复位RST(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期) 以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片 便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊 功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的 00H处开始运行程序。复位操作不会对内部RAM有所影响。 ALE/(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存PROG 地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作 对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时, 将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, 8 ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微 拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 (29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,PSEN 每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的PSEN 信号将不出现。PSEN EA/VPP(31):当保持低电平时,则在此期间外部程序存储器 _ EA _ EA (0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将 _ EA 内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH _ EA 编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。其引脚图如图3.1所示。 图 3.1 AT89C51 引脚图 3.1.3 振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置 为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTA L2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信 号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 3.1.4 芯片擦除 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且 9 在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持 两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计 数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡 器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.1.5 AT89C51最小系统 AT89C51最小系统接线如图3.2所示,在XTAL1、XTAL2端接上晶振及 两个谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键 即可组成一个最小系统,按要求通电后,系统就可以工作了。 图 3.2 AT89C51 最小系统 3.2 键盘电路设计 (1)键盘命令及执行过程 FFH:复位键盘。系统通过此软件复位命令使键盘进入程序复位和内部自 测试,称为基本保证测试(BAT) 。复位键盘的过程如下: a键盘收到FFH后立即回送ACK(FAH)作答; b键盘接口收到ACK后,将键盘时钟和数据线置为高电平; c键盘检测到此状态后开始BAT操作; d如果BAT正确完成,键盘发送AAH以表示结束,否则以FDH(或其它 10 任何值)表示诊断有误。 FEH:重新发送。当系统检测到从键盘送来的任何传输错误时,它便向键 盘发送 FEH 命令。键盘接收到此命令后,将重新送出原来的内容。 FDHF7H:空操作(保留未用) 。 F6H:设置缺省值。此命令使键盘所有条件复位到电源接通时的缺省状态, 键盘继续扫描。 F5H:设置缺省值和停止键盘。此命令使键盘所有条件复位到电源接通时 的缺省状态,并停止键盘扫描,等待下一个键盘命令。 F4H:启动键盘。键盘接收到此命令后,用ACK(FAH)作答,清除输 出缓冲器,并启动键盘开始扫描。 F3H:设置拍发速率和延时参数。每当按下任一键时,键盘以拍发速率连 续送出键的接通码,直到键被释放为止。延时参数是指按下一键后,键盘输出的响 应时间。 按键原理电路图如图3.3所示。共计数字键10个,功能键2个,采用43 行列式键盘。 图 3.3 按键原理电路图 3.3 开锁电路设计 单片机密码信号送给开锁执行机构,通过校正密码的正确性来开锁或报警。其 示意图如图3.4所示。 11 单片机控制 系统 AT89C51 报警 输入密码 校正密码 灯亮开锁 正确 图 3.4 密码锁开锁机构示意图 当用户输入的密码正确而且是在规定的时间输入的话,单片机便输出开门信号, 送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图3.5所示。 由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管。D5作 为开锁的提示,由D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能 产生的反向高电压以及可能产生的电磁干扰。 在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管 亮,表示开锁;没亮而且报警,表示密码错误或输入有误! 图 3.5 开锁装置图 错误 12 3.4 显示电路设计 电子密码锁中需要显示的信息比较少,一般密码设计为6位。本设计采用的是 8位数码显示管,前面用6位是用来存储密码的,后面两位是来识别是否按下 Enter 键,具体连接方式如图3.6所示。 图 3.6 显示电路连接图 3.5 AT24C02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。 AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总 线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流 10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚 的DIP封装,使用方便。其电路如图3.7所示。 13 图 3.7 掉电存储电路原理图 图3.7中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于 AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根 线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。 3.6 电源电路设计 为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路, 停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。市电供电路图 如图3.8所示。 图 3.8 电源电路原理图 220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到 5V送往电由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+V- IC14输 出高电平,由T3,T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和 电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容 量而定持续时间)。其电路图如图3.9所示: 14 R8 50K R9 40K R7 30K R6 20K T3 9018 R10 5.1K T4 9014 1 2 3 IC14 741 5V A1 A2 5V A1 A2 VCC 图 3.9 蓄电池电路原理图 T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中 D1亮为正在充电,D2为工作指示。由R4,R5,T1构成电压检测电路,蓄电池 电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同 时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如图3.10所示: 图 3.10 蓄电池自动充电原理图 15 3.7 总体原理图 图 3.11 总体电路原理图 16 第 4 章 软件设计 4.1 程序设计 程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标 明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作 就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制 系统设计中占重要地位。对于本系统,软件也占有重要的地位。 在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据 处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按 一定的方法进行计算,然后再输出,以便控制生产。 为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每 一部分叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、 调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化 程序设计。所谓“模块” ,实质上就是能完成一定功能,并相对独立的程序段,这种 程序设计方法称为模块程序设计法。 模块程序设计法的主要优点是: (1)单个模块比起一个完整的程序易编写、调试及修改。 (2)程序的易读性好。 (3)程序的修改可局部化。 (4)模块可以共存,一个模块可以被多个任务在不同条件下调用。 (5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 本系统软件采用模块化结构,由主程序模块,键盘扫描及识别子程序,调电存 储服务程序,显示子程序。 4.2 主程序设计 (1)主程序模块 主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等 等。当初始化就会自动等待输入密码,若操作有误便会报警提示并对各位进行清零, 等待密码的再次输入;若输入密码正确,在输完之后等待你按下Enter 键,再判断 密码是否正确,若错误便报警并再次将各位密码清零;若输入密码正确就会自动开 锁并亮灯。主程序的流程图如图4.1所示。 17 开 始 初 始 化 等待密码的输入 有键按下? 操作有误? 各位清零并 报警提示 继续输入密码 密码正确? 开锁并亮灯 N Y Y N Y N 图 4.1 主程序流程图 在系统的程序设计中,主控模块只负责根据消息调用相应模块的处理函数,具 体如何处理这些消息由各功能模块中的对应程序决定。 主程序 LED_BIT_1 EQU30H LED_BIT_2 EQU31H LED_BIT_3 EQU32H LED_BIT_4 EQU33H 18 LED_BIT_5 EQU34H LED_BIT_6 EQU35H LED_BIT_7 EQU36H LED_BIT_8 EQU37H ;以下 6 个字节存放初始密码 WORD_1EQU38H WORD_2EQU39H WORD_3EQU3AH WORD_4EQU3BH WORD_5EQU3CH WORD_6EQU3DH ;以下 6 个字节存放用户输入的 6 位密码 KEY_1EQU3EH KEY_2EQU3FH KEY_3EQU40H KEY_4EQU41H KEY_5EQU42H KEY_6EQU43H CNT_A EQU44H CNT_BEQU45H KEY_CNTEQU46H;已输出的密码位数 LINE EQU47H;按键行号 ROW EQU48H;按键列号 VAL EQU49H;键值 ORG00H SJMP START ORG0BH LJMP INT_T0 START:MOVCNT_A,#00H ;程序初始化 MOVCNT_B,#00H MOVKEY_CNT,#00H 19 MOVLINE,#00H MOVROW,#00H MOVVAL,#00H SETB P1.0 MOVLED_BIT_1,#00H;段码存储区清 0 MOVLED_BIT_2,#00H MOVLED_BIT_3,#00H MOVLED_BIT_4,#00H MOVLED_BIT_5,#00H MOVLED_BIT_6,#00H MOVLED_BIT_7,#79H MOVLED_BIT_8,#73H MOVKEY_1,#00H ;输入密码存储区清 0 MOVKEY_2,#00H MOVKEY_3,#00H MOVKEY_4,#00H MOVKEY_5,#00H MOVKEY_6,#00H MOVWORD_1,#6 ;设置初始密码为“123456“ MOVWORD_2,#5 MOVWORD_3,#4 MOVWORD_4,#3 MOVWORD_5,#2 MOVWORD_6,#1 MOVTMOD,#01H MOVTH0,#(65536-700)/256 MOVTL0,#(65536-700)MOD 256 MOVIE,#82H A0:LCALLDISP 4.3 键盘扫描及识别子程序设计 20 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主 程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程 如图4.2所示。 中 断 保护现场 报警器提示 清中断 结束 图 4.2 键盘扫描及识别子程序流程图 LSCAN:MOVP3,#0F0H;扫描行码 L1:JNBP3.0,L2 LCALLDLY_S JNBP3.0,L2 MOVLINE,#00H LJMP RSCAN L2:JNBP3.1,L3 LCALLDLY_S JNBP3.1,L3 MOVLINE,#01H LJMP RSCAN L3:JNBP3.2,L4 LCALLDLY_S JNBP3.2,L4 21 MOVLINE,#02H LJMP RSCAN L4:JNBP3.3,A0 LCALLDLY_S JNBP3.3,A0 MOVLINE,#03H RSCAN:MOVP3,#0FH;扫描列码 C1:JNBP3.4,C2 MOVROW,#00H LJMP CALCU C2:JNBP3.5,C3 MOVROW,#01H LJMP CALCU C3:JNBP3.6,C1 MOVROW,#02H CALCU:MOVA,LINE;计算键值 MOVB,#03H MULAB ADDA,ROW MOVVAL,A CJNE A,#0AH,J1;是否为“CLR“键 MOVR1,KEY_CNT CJNE R1,#00H,J2 LCALL ALARM_1 LJMP START J2:LCALL SHIFTR DECKEY_CNT W00:LCALLDISP;等待按键抬起 MOVA,P3 CJNE A,#0FH,W01 LJMP A0 22 W01:MOVA,P3 CJNE A,#0F0H,W02 LJMP A0 W02:SJMP W00 J1: MOVA,VAL CJNE A,#0BH,J3;判断是否为“ENTER“键 MOVR1,KEY_CNT CJNE R1,#06H,J4 MOVA,WORD_1;比较密码 CJNE A,3EH,J5 MOVA,WORD_2 CJNE A,3FH,J5 MOVA,WORD_3 CJNE A,40H,J5 MOVA,WORD_4 CJNE A,41H,J5 MOV A,WORD_5 CJNE A,42H,J5 MOV A,WORD_6 CJNE A,43H,J5 CLRP1.0 LCALLDLY_L LJMP FINI J5: LCALLALARM_2 LJMP START J4: LCALLALARM_1 LJMP START J3: INCKEY_CNT;按下数字键 MOVA,KEY_CNT CJNE A,#07H,K1 LCALLALARM_1 23 W10:LCALL DISP;等待按键抬起 MOVA,P3 CJNE A,#0FH,W11 LJMP START W11:MOV A,P3 CJNE A, #0F0H,W12 LJMP START W12:SJMP W10 LJMP START LJMP START K1:LCALL SHIFTL W20:LCALL DISP;等待按键抬起 MOVA,P3 CJNE A,#0FH,W21 LJMP A0 W21:MOVA,P3 CJNE A,#0F0H,W22 LJMP A0 W22:SJMP W20 LJMP A0 ALARM_1:SETBTR0;操作错误报警 JB TR0,$ RET ALARM_2:SETBTR0;密码错误报警 JB TR0,$ LCALLDLY_L RET 4.4 显示子程序设计 由于是分屏显示数据,所以就要用到4个显示子程序,分别是:关闭状态显示 子程序(DIS_A)、开锁状态显示子程序(DIS_B)、密码输入及修改状态显示子 程序(DIS_C)、密码输入错误后的提示子程序(DIS_D)。此模块程序如下: 24 DISP: CLRP2.7 MOVP0,LED_BIT_8 LCALLDLY_S SETB P2.7 CLRP2.6 MOVP0,LED_BIT_7 LCALLDLY_S SETB P2.6 CLRP2.5 MOVP0,LED_BIT_6 LCALLDLY_S SETB P2.5 CLRP2.4 MOVP0,LED_BIT_5 LCALLDLY_S SETB P2.4 CLRP2.3 MOVP0,LED_BIT_4 LCALLDLY_S SETB P2.3 CLRP2.2 MOVP0,LED_BIT_3 LCALLDLY_S SETB P2.2 CLRP2.1 MOVP0,LED_BIT_2 LCALLDLY_S SETB P2.1 CLRP2.0 MOVP0,LED_BIT_1 LCALLDLY_S 25 SETB P2.0 RET DLY_S:MOVR6,#10 D1:MOVR7,#250 DJNZ R7,$ DJNZ R6,D1 RET DLY_L:MOVR5,#100 D2:MOVR6,#100 D3:MOVR7,#248 DJNZ R7,$ DJNZ R6,D3 DJNZ R5,D2 RET FINI: NOP END 26 第 5 章 系统仿真与调试 5.1 Proteus 仿真平台 在该设计中,利用Proteus软件进行仿真。Proteus是英国Labcenter公司开 发的电路分析与仿真软件。运行于Windows操作系统上,可以仿真、分析(SPICE)数 字电路、模拟电路、数模混合电路,是目前唯一能实现对 51、PIC、AVR、HC11、ARM等处理器的仿真软件。该软件的特点是: (1)集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整 开发工具。 (2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿 真,是独一无二的支持处理器与外围电路的协同仿真电路设计软件。 (3)具有全速、单步、设置断点等多种形式的调试功能。 (4)具有各种信号源和电路分析所需的虚拟仪表、是电类教学实验与创新的最 侍平台。 (5)支持Keil C51 uVision2、MTLAB等第三方的软件编译和调试环境。 (6)具有强大的原理图到PCB板设计功能,可输出多种格式的电路设计报表。 5.2 部分模块电路仿真 PROTEUS软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是: 新建源文件:点菜单SourceAdd/Remove source Files在出现的对话框 中,选择ASEM51编辑器,新建JIE.asm 源文件。 程序设计:点菜单SourceJIE.asm打开源文件编辑器,将将附录程序输 入到文本中。 源程序编译:点菜单SourceBuild ALL编译汇编源程序,生成目标代码 文件 PMD.HEX,若编译失败,可对程序进行修改调试直至编译成功。 目标代码加载:在PROTEUS编辑环境双击AT89C51,弹出如图5.1所 示的对话框,在PROGRAM FILE一栏中单击打开按钮,选中JIE.HEX文件。 在CLOCK FREQUENCY栏中设置系统工作频率为12MHz,单击OK完成目 标代码加载。 27 图 5.1 程序代码加载 最后,点击运行按钮,启动系统仿真,图中定时器、电机处于初始化状态。仿 真结果如图5.2所示。 图 5.2 仿真结果 1 28 为了保护密码的隐蔽,当密码输入时不显示数字而是显示一横线。仿真结果如 图5.3所示。 图 5.3 仿真结果 2 当开锁后,灯并会亮,仿真结果如图5.4所示 图 5.4 仿真结果 3 29 5.3 仿真结果分析及问题解决方案 通过上述仿真,可以看出基于单片机控制的电子密码锁在PROTEUS软件上 可以很好的实现显示模块的仿真。 在仿真的过程中因自己操作的粗心及对本软件相关知识的掌握程度还不够使得 一些问题涌现了出来。如(1)系统工作频率应设置为12MHz及程序代码加载时 后缀名应改为.hex,可我因没有考虑全面,在一开始总是出不了仿真结果;(2)因 没有及时发现程序中的一些小细节错误,使得程序的编译和执行一直无法通过; (3)因仿真时操作不当,造成屏幕锁定等。后来经过自己慢慢摸索及老师和同学的 帮助,这些问题都得到了一一的解决。 当仿真开始运行时,各个模块处于初始状态。当从按键输入正确密码后,灯亮。 当从按键输入错误密码后,报警器报警。因此,从仿真结果可以看出,本设计可以 得到预期的仿真效果。 30 结束语 为了能够更好地完成这次的毕业设计的任务,我通过不同的渠道学习了本课题 相关的一些知识,这些是我在课堂上无法学到的。三个月的时间里不仅让我对学过 的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣并让 我对专业知识有了更深的理解。 在搞毕业设计的这段时间里,我学会了在网络上查找有关本设计的各硬件的资 源,其中包括:电子密码锁国内外发展现状、AT89C51单片机及其引脚说明等, 为本次课程设计提供了一定的资料。在做毕业设计的初期阶段,难度很大,没有头 绪。通过求助于呙老师、胡晗同学理清了思路。同时,在图书馆里、网上查阅资料, 攻克了毕业设计中的道道难题。最后经过呙老师的耐心指点和连续的奋战才算基本 合格。本次设计我能独立完成,算是有了很大的收获。总的感受有以下几方面: (1)巩固了课本上的知识。通过本次设计,我不但对单片机有了更为深入的了 解,对一个课题如何画流程图,编程序等,有了一定的认识。 (2)在本次毕业设计中,我进一步加强了自己的动手能力和运用专业知识的能 力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案; 特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。 (3)通过本次毕业设计,让我了解到电子技术和软件编程对当今人们生活的重 要性。同时这次做毕业设计的经历也使我受益匪浅。让我知道做任何事情都应脚踏 实地,刻苦努力地去做。 在这次毕业设计中,我既巩固了专业知识,又学到了在电子密码锁设计过程中 的许多流程和该注意的事项,增强了电子产品设计和开发的意识。本次经历将是我 在大学时期很好的一次实践和锻炼机会。 31 参考文献 1胡汉才单片机原理及接口技术清华大学出版社.2004 年. 2何立民.单片机与嵌入式系统应用J.基于单片机电子密码锁系统设计.2007. 3/forum/thread/view/99_22334448_1.html. 4http//n1524c38.aspx. 5刘湘涛,江世明.单片机原理与应用M.北京:电子工业出版社,2006:1-4. 6何立民.单片机初级教程M.北京:北京航空航天大学出版社,1999:25-32. 7周航慈.单片机程序设计基础M.北京:北京航空航天大学出版社,2004,260. 8潘新民王燕芳微型计算机控制技术实用教程M北京:电子工业出版社,2007:75- 76,118-119 9张世生 科技情报开发与经济J怎样分析单片机程序.2006,(3):25-27 10李朝清编著.单片机原理及接口技术.北京航空航天大学出版社 2004. 32 致 谢 三个月的毕业设计已经告一段落。经过自己不断的搜索努力以及同学和指导老 师的耐心指导和热情帮助,本设计已经基本完成。 在这段时间里,谢老师在我毕业论文的撰写过程中,给我提供了极大的帮助和 指导。从开始选题到中期修正,再到最终定稿,他的指导使我受益匪浅。他严谨的 治学态度和热忱的工作作风令我十分钦佩。他的循循善诱的教导、不拘一格的思路 和为人处世的坦荡也给予我无尽的启迪。他的严谨细致、一丝不苟的作风将一直是 我工作、学习中的榜样。除此之外,他还教了我一些做人的道理。这些都将成为宝 贵的财富让我受用终身。在此对谢老师以及帮助过我的同学表示深深的感谢。 感谢教导过我的每一位老师,他们的人格魅力永记我心间。 感谢09级机电2班的各位同窗好友,他们的关心和爱护让我在这个集体里倍感温 暖,一起走过的日子将成为我人生的美好回忆。 最后,感谢我的家人,他们的支持与鼓励,永远是支撑我前进的最大动力。 在此对他们表示衷心的感谢,他们的名字我一直铭记在心!最后,衷心感谢在百忙 之中抽出时间审阅本论文的专家教授。 王帆 33 附录 I 总体原理图 总体电路原理图 34 附录 II 程序主要原代码 LED_BIT_1EQU30H LED_BIT_2EQU31H LED_BIT_3EQU32H LED_BIT_4EQU33H LED_BIT_5EQU34H LED_BIT_6EQU35H LED_BIT_7EQU36H LED_BIT_8EQU37H ;以下 6 个字节存放初始密码 WORD_1EQU38H WORD_2EQU39H WORD_3EQU3AH WORD_4EQU3BH WORD_5EQU3CH WORD_6EQU3DH ;以下 6 个字节存放用户输入的 6 位密码 KEY_1EQU3EH KEY_2EQU3FH KEY_3EQU40H KEY_4EQU41H KEY_5EQU42H KEY_6EQU43H CNT_AEQU44H CNT_BEQU45H KEY_CNTEQU46H;已输出的密码位数 LINE EQU47H;按键行号 ROWEQU48H;按键列号 VALEQU49H;键值 ;以下为初始化程序,包括数据存储空间初始化,设置初始密码 ORG00H 35 SJMP START ORG0BH LJMP INT_T0 START:MOVCNT_A,#00H;程序初始化 MOVCNT_B,#00H MOVKEY_CNT,#00H MOVLINE,#00H MOVROW,#00H MOVVAL,#00H SETB P1.0 MOVLED_BIT_1,#00H;段码存储区清 0 MOVLED_BIT_2,#00H MOVLED_BIT_3,#00H MOVLED_BIT_4,#00H MOVLED_BIT_5,#00H MOVLED_BIT_6,#00H MOVLED_BIT_7,#79H MOVLED_BIT_8,#73H MOVKEY_1,#00H;输入密码存储区清 0 MOVKEY_2,#00H MOVKEY_3,#00H MOVKEY_4,#00H MOVKEY_5,#00H MOVKEY_6,#00H MOVWORD_1,#6;设置初始密码为“123456“ MOVWORD_2,#5 MOVWORD_3,#4 MOVWORD_4,#3 MOVWORD_5,#2 MOVWORD_6,#1 MOVTMOD,#01H 36 MOVTH0,#(65536-700)/256 MOVTL0,#(65536-700)MOD 256 MOVIE,#82H A0:LCALLDISP ;以下为键盘扫描程序,计算键值并存入 VAL LSCAN:MOVP3,#0F0H;扫描行码 L1:JNBP3.0,L2 LCALLDLY_S JNBP3.0,L2 MOVLINE,#00H LJMP RSCAN L2:JNBP3.1,L3 LCALLDLY_S JNBP3.1,L3 MOVLINE,#01H LJMP RSCAN L3:JNBP3.2,L4 LCALLDLY_S JNBP3.2,L4 MOVLINE,#02H LJMP RSCAN L4:JNBP3.3,A0 LCALLDLY_S JNBP3.3,A0 MOVLINE,#03H RSCAN:MOVP3,#0FH;扫描列码 C1:JNBP3.4,C2 MOVROW,#00H LJMP CALCU C2:JNBP3.5,C3 MOVROW,#01H 37 LJMP CALCU C3:JNBP3.6,C1 MOVROW,#02H CALCU:MOVA,LINE;计算键值 MOVB,#03H MULAB ADDA,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年秋新北师大版数学一年级上册课件 我上学啦 我上学啦 1.可爱的校园
- 2024年秋新北师大版数学一年级上册教学课件 第二单元 5以内数加与减 综合实践 介绍我的教室
- 水表基本知识培训
- 混凝土施工后的初期强度检测方案
- 养猪场食品安全管理体系
- 糖尿病性骨病46课件
- 智算中心大规模数据计算与存储方案
- 水的各种形态课件
- 知识点3.2从心理层面感知色彩设计构成设计色彩45课件
- 水电工安全知识培训课件意义
- 医院食堂管理方案计划书
- 大客户营销管理策略对提高客户满意度和忠诚度的影响
- 《螺纹的种类和应用》课件
- 医学一等奖《白血病》课件
- 高空作业车专项应急预案
- 发现普洱茶的第一个医学实验报告
- 全自动血液细胞分析仪参数
- (完整版)过去完成时ppt
- 1输变电工程施工质量验收统一表式(线路工程)
- 养老护理员(技师、高级技师)知识考试复习题库(含答案)
- 学校安全“日管控、周排查、月总结”工作制度
评论
0/150
提交评论