收藏 分享(赏)

基于单片机的电子密码锁设计.docx

上传人:精品资料 文档编号:7767775 上传时间:2019-05-25 格式:DOCX 页数:51 大小:1.02MB
下载 相关 举报
基于单片机的电子密码锁设计.docx_第1页
第1页 / 共51页
基于单片机的电子密码锁设计.docx_第2页
第2页 / 共51页
基于单片机的电子密码锁设计.docx_第3页
第3页 / 共51页
基于单片机的电子密码锁设计.docx_第4页
第4页 / 共51页
基于单片机的电子密码锁设计.docx_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、I基于单片机的电子密码锁设计摘要:锁,是指加在门、箱子、抽屉等物体上的封缄器,要用专用的钥匙才能打开。自古以来锁都是人们财产安全乃至生命安全的一种重要保障。伴随着人类历史的发展和人们对自身财产安全和人生安全的重视,各种各样的多功能的锁具也相继出现,人们使用的锁具也由传统的机械式锁逐渐发展为安全性能更好,功能更多的电子密码锁。在现代社会,电子密码锁已是一个被大家所熟识的名词。相信很多人的小区大门上的锁都用的是电子密码锁。本文中将要介绍的电子密码锁是一种通过判断密码输入是否正确来控制电路或是芯片的工作状态,进而控制锁的打开和闭合,从而完成开锁、闭锁任务的电子锁装置。本设计是基于 AT89C51 单

2、片机为控制核心的密码锁设计方案。在本次基于单片机的电子密码锁设计中,将釆用 AT89C51 单 片 机 作 为 控 制 核 心 , 配 合相应的电路和软件程序,实现密码的输入和修改、信息的显示、键盘的锁定、系统报警、开锁和闭锁等功能。在设计中,利用识别密码是否正确来开锁或报警,通过串行存储器 AT24C02 来实现密码的修改和存储。本文设计的密码锁具有安全性高、功耗低、操作简单等优点。关键词:单片机;密码锁;电子锁;矩阵键盘;掉电存储西 南 科 技 大 学 本 科 生 毕 业 论 文 2The Design Of Electronic Code Lock Based OnSingle Chip

3、 MicrocomputerAbstract: Assealeddevice, thelockaddedtosuchobjectslikedoor, box, draweretc, canbeopenedwithspecifiedkey. Sincetheancienttime, lockisakindofsecurity, guaranteeingpeople?spropertysafetyevenlifesafety. Withthedevelopmentof humanhistoryandmoreattentionpaidtopropertysafetyandlifesafety, va

4、rious multi-functionallockscanbeseenintheworld. Traditionalmechanicallockspeople useinlifearegraduallyreplacedbyelectroniccombinationlockcharacterizedwith bettersafetyperformanceandmorefunctions.Inthemodernsociety, electroniccombinationlockisanounfamiliarto everyone. Usually, thedoorofcommunityisequ

5、ippedwithelectroniccombination lock. Thispaperwillintroduceanelectroniccombinationlock. Thislockcontrolsthe electriccircuitsandtheperformanceofchipsbyidentifyingpassword. Thus, the opennessandclosenessofthelockcanbecontrolled, andthetaskofelectroniclock devicecanbecompleted.Thisdesignisaboutcombinat

6、ionlock, basedontheAT89C51 single-chip microcomputerasthecoreofcontrollinggoals. ThisdesigninwhichtheAT89C51 single-chipmicrocomputerasthecoreofthecontrollinggoalscooperatedwith relevantcircuitsandsoftwareprogramscanachievesuchfunctionslikepassword inputandmodification, informationdisplay, keyboardl

7、ocking, warningsystem, and theopennessandclosenessofthelocketc. Inthisdesign, theopennessoflockand alarmingareaccordingtoidentifyingthepassword, andpasswordrevisionand storageisachievedbythefunctionoftheAT24C02 serialstorage.Electroniccombinationlockdescribedinthispaperischaracterizedwithhigh securi

8、ty, lowpowerconsumption, andsimplicityofoperationetc.Keywords: Single-chipmicrocomputer, Combinationlock, Electroniclock, Matrix keyboard, Powerloststorage西 南 科 技 大 学 本 科 生 毕 业 论 文 3录第 1 章 绪 论 .11.1 电子密码锁简介 11.2 电子密码锁设计的背景及意义 .1.1.3 电子密码锁的现状及发展趋势 2第 2 章 总 体 设 计 3.2.1 设计分析 32.2 系统结构 4第 3 章 硬 件 电 路 设

9、计 5.3.1 单片机接口分配 .5.3.2 单片机最小系统设计 .5.3.2.1 时钟电路 .5.3.2.2 复位电路 .6.3.2.3 最小系统 .6.3.3 矩阵键盘设计 .7.3.4LCD 显示模块设计 .8.3.5 掉电存储模块 1.03.5.1 I2C 总线 103.5.2 AT24C02 简介 123.6 开锁机构 133.7 报警机构 133.8 硬件综合设计 14第 4 章 软 件 设 计 154.1 软件总体设计 1.54.2 键盘扫描子程序 164.3 显示模块子程序 184.4 掉电存储子程序 204.4.1 写操作方式 214.4.2 读操作方式 224.5 定时器中

10、断子程序 23西 南 科 技 大 学 本 科 生 毕 业 论 文 44.6 密码输入子程序 254.7 报警子程序 26第 5 章 联 合 仿 真 和 臟 27第 6 章 实 物 设 计 和 制 作 29总结 31致谢 32参考文献 33附 录 1 设 计 实 物 图 34附 录 2 程 序 源 代 码 36西 南 科 技 大 学 本 科 生 毕 业 论 文1第 1 章 绪 论1.1 电子密码锁简介什么是电子密码锁?t 种通过密码输入来控制电路或者是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。 ” 一-百度百科上是这样解释的。简单来说,电子密码锁就是能够实现密码等信息的设置

11、、存贮、识别和显示,以及报警信号的接收和发送等功能的电子器件。电子密码锁相对传统机械锁有以下几个优势:(1)密码可更改。用户可以随时更改密码,以确保密码锁的安全性和可靠性。可以更改密码这一功能同时也避免了人员的更替而使锁的安全性降低,这是传统钥匙锁所不具备的功能。(2) 操作简单。无论是开锁还是更改密码,只要识字的人都能够直接使用,使用方法简单而不繁琐。(3) 能够报警。报警功能无疑更增加了锁的安全性。(4) 无法技术”破解。不知道密码就无法打开锁,即使是惯偷也只能望锁兴叹。1.2 电子密码锁设计的背景及意义在现代文明社会,虽然人们的道德素质越来越高,梁上君子”、三只手等人群相对旧社会大大减少

12、,但是像某某小区遭入室行窃,居民损失 XXX 义之类的新闻我们还是经常能够在报纸上看到的。随着人们生活水平和自身防范意识的提高,个人财产安全和人身安全的问题也越来越受到人们的重视,拥有一把能够有效保证居民财产安全和人身安全的锁具也越发的重要起来。锁具的起源可以追朔到人类社会财产私有化的出现,锁具从其出现到发展至今天的高科技化、信息化,已经有若干年的历史了。经过若干年的使用和研究,人们对锁具的结构、机理也了解得相当透彻了,因此,不使用钥匙就能将锁打开的方法也层出不穷。特别是传统的机械锁,由于其构造简单,在惯偷面前,甚至能够只用一根铁丝就直接将其打开,使其失去了保障用户个人财产安全的意义。那么,如

13、何才能提高锁具保障用户财产安全的有效性呢?在信息现代化的今天,锁具也应该向高精度、高安全性的智能化、信息化发展。自 20 世 纪 70西 南 科 技 大 学 本 科 生 毕 业 论 文2年代第一块单片机芯片 TMS-1000 于美国德克萨斯仪器公司面世以来,基于其体积小、价格低廉、个性突出等特点,越来越多的电子产品开始釆用单片机芯片作为核心控制部件。在这样的大环境下,基于单片机的电子密码锁也应运而生。这种电子密码锁是以单片机为核心,配以相应的硬件电路和软件程序,实现密码的设置、存贮、识别和显示,以及报警信号的接收和发送等功能,具有操作快、修改密码简单、安全性高、功耗低等优点。基于单片机的电子密

14、码锁的面世使人们的自身财产安全有了更多的保障,同时也促进了安全信息系统的发展,是安全信息系统的一大进步。基于单片机的电子密码锁的出现,在一定程度上解决了用户私人财产安全的问题。但是,时代在发展,社会在进步,任何事物只有不断地进步才能适应时代发展的需求。电子密码锁虽然有安全性高、操作简单等优点,但是却不如机械锁价格低廉,因此,在市场上的主流产品还是机械锁。电子密码锁要想取代机械锁成为市场上的主流,就必须不断改进,在具有更多功能的同时向更智能化和更低成本化发展。这就需要我们不断研究电子密码锁的设计方法和实现原理。因此,研究基于单片机的电子密码锁的设计是很有必要且具有现实意义的。1.3 电子密码锁的

15、现状及发展趋势目前,和西方发达国家相比,我国的电子密码锁技术还相对落后。在西方发达国家,电子密码锁的种类已经很齐全,技术也比较先进,且在各个领域得到了广泛应用。在我国,电子密码锁技术却才相当于国际上七十年代的水平,相对来说还很落后。20 世纪 80 年代以来,随着各种电子集成电路的出现,特别是单片机的面世,电子密码锁得到了很大的发展。相对于笨重而构造简单的传统机械锁来说,电子密码锁具有体积小,可靠性高的优势。但是就目前而言,电子密码锁的价格相对较高且需要有电源提供能量,使得其使用还局限在一定范围,特别是在国内,各种条件的制约使得电子密码锁暂时难以普及。尽管电子密码锁还存在着一些缺陷,但是其安全

16、性高、方便易用、能够智能报警的优势却是传统钥匙锁取代不了的,而且随着电子信息技术的发展和各种电子器件的价格的不断降低,电子密码锁也将往低成本、多功能的方向发展。西 南 科 技 大 学 本 科 生 毕 业 论 文3第 2 章 总 体 设 计2.1 设计分析一个电子密码锁,应该能实现以下功能:(1) 能够从键盘中输入密码,并相应地在显示器上显示,*?;(2) 能够判断密码是否正确,正确则开锁,错误则输出相应信息;(3) 能够实现密码的修改;(4) 断电或者单片机复位后能够保存之前的操作,比如密码的修改;(5) 在操作错误达到一定次数后能够报警;(6)在一定时间内没有任何按键操作则关闭显示器,并锁定

17、键盘,禁止键盘输入(单片机复位后锁定取消);(7)设置一个备用密码。为了防止用户忘记密码而开不了锁,应该在经常使用的密码外再设置一个备用密码以防万一。此备用密码应该只有少数人知道,比如小区管理员。根据以上分析,本次电子密码锁设计的主要重点是以下几个部分:4x4 矩阵键盘设计、LCD 信息显示、密码的掉电存储和密码的比较和处理。当然,除了这几个部分外还有定时器/计数器计时中断和报警等功能模块。本设计应该按以下步骤去实现:第一步:选择材料和器件。第二步:根据单片机原理和模拟电子技术基础等理论知识在 PROTEUS中画出仿真图。第三步:检查仿真图,确保其能够实现所有功能。第四步:根据需要实现的功能逻

18、辑画出程序流程图。第五步:根据程序流程图和 PROTEUS 仿真图,使用 KEIL 软件进行程序的编写和调试。第六步:将 KEIL 和 PROTEUS 联合仿真、调试,查看是否实现所有功能。第七步:根据 PROTEUS 仿真图焊接器件。第八步:实物调试。基于实际情况,在设计中,用发光二极管代替电磁锁,二极管亮则代表锁开,二极管不亮则代表锁关。西 南 科 技 大 学 本 科 生 毕 业 论 文42.2 系统结构本设计系统主要由单片机芯片、矩阵键盘、LCD 显示模块、掉电存储模块、报警机构和开锁机构组成。如图 2-1 所示。图 2-1 系 统 总 体 设 计 结 构 图时钟电路给单片机提供晶振频率

19、,复位电路不但使单片机上电复位,还能在使用过程中通过需要通过按键再次手动复位,矩阵键盘提供按键的输入,LCD 模块显示信息,掉电存储负责密码的存储,开锁机构和报警机构分别负责开锁和报警功能。设计中,单片机选用 AT89C51,LCD 显示模块选用 LCD1602 液晶显示器,串行存储器选用电可擦除存储器 AT24C02,开锁机构用发光二极管代替,报警机构选用蜂鸣器。第 3 章 硬 件 电 路 设 计3.1 单片机接口分配AT89C51 单片机在一块芯片上集成了 CPU、RAM、ROM 、定时器/计数器和多种 I/O 功能部件,具有一台微型计算机的基本结构,按功能可以将其分成八 个 组 成部 分

20、 : 微 处 理 器 ( CPU)、 数 据 存 储 器 ( RAM)、 程 序 存 储 器 (ROM/EPROM)、特殊功能寄存器(SFR)、I/O 口、串行口、定时器/计数器及中断系统。在本设计中,单片机的各个接口我是这样分配的:P0 口接一个上拉电阻后西 南 科 技 大 学 本 科 生 毕 业 论 文5与 LCD1602 的 8 位双向数据端 D0D7 相 接 , P1 口用作矩阵键盘接口,P2口的 P2.0P 2.2 和 LCD1602 的 4 6 引 脚 相 接 , P2.5 和 P2.6 接串行存储器AT24C02,P3 口用作开锁电路和报警电路的接口。3.2 单片机最小系统设计单

21、片机最小系统就是指能使单片机工作的最少的器件构成的系统。因为单片机已经包含了数据存储器和程序存储器,所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。3.2.1 时钟电路单片机工作需要晶振给 CPU 提供频率,时钟电路就是给单片机提供晶振频率的电路。图 3-1 是时钟电路的 PROTEUS 仿真图。03 :30pF,XTAL1 XTAL2图 3-1 时 钟 电 路单片机允许的振荡晶体可在 1.224MHz 之间选择,一般为 11.0592MHz,电容 C2, C3 的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定 的 影 响 ,可 在 20 100pF 之 间 选 择

22、, 典 型 值 位 30pF。3.2.2 复位电路计算机每次开始工作,CPU 和系统中的其他部件都必须要有一个确定的初值,即复位状态。图 3-2 是单片机复位电路仿真图。 S r1 脅 R2 C8 2k|:1 RSTR1 . 10UVI丨 | S.3K西 南 科 技 大 学 本 科 生 毕 业 论 文6图 3-2 复 位 电 路单片机 RST 引脚是高电平有效。单片机在上电瞬间 C1 充 电 , RST 引脚端出现正脉冲,只要 RST 断 保 持 两 个 机 械 周 期 ( 大 约 10ms)以上的高电平,单片机就能复位。在单片机工作后,如果还想再次复位,只需按下开关,单片机就能重新变成复位状

23、态。当 晶 体 振 荡 频 率 为 12MHz 时,RC 的典型值为 C=10pF,R=8.2KQ。3.2.3 最小系统单片机加上时钟电路和复位电路就构成了能使其正常工作的最小系统。单片机最小系统是单片机正常工作的基础,任何一个单片机系统设计都是基于单片机最小系统的基础上来完成的,而在单片机系统实物设计中,最应该首先解决的也应该是单片机最小系统问题,只有保证了单片机最小系统的正确性,才能保证接下来的其他模块的正确设计。图 3-3 是单片机最小系统的完整仿真图。西 南 科 技 大 学 本 科 生 毕 业 论 文73.3 矩阵键HV.ATe9C51 s BU1.04.2.3.4.S巵.7P1P1P

24、1P1P1P1P1P1XTAL1XTAL2RSTPSEM“ALEEKPO.Q/ADOiPO.I/ADIPD.2/AD2P0.3/AD3P s4/AD4P0.S/AD5P0.6/AD6P0.7/AD7P2.D/A0P2.1/A9P2.2/A1DP2.3.TA11P2.4/A12P2.5/A13P2.6/A14P2.7/A1SP3.GWRXDP3.1/TXDP3.2WTQ_P3.3J1NT1P3.4/I0P3.5/T1P3.6AWP3-7iRD图 3-3 单片机最小系统盘 :通过接口电路和 CPU 相连接,CPU 可以釆用查被按下,并检查是哪个键被按下。无论是I/O 口。由于单片机 I/O 口较少

25、的原询接口或者中断的方式了解;查询方式还是中断方式都要用到单片机的当系统中需要用到较多按键时,为了能够更合理更有效地利用单片机的 I/Oa 的方式来实现多按键的功能。大口图 3-4 是 4x4 矩阵键盘在 PROTEUS 中的电路原理仿真图图 3-4 4x4 矩阵键盘西 南 科 技 大 学 本 科 生 毕 业 论 文8矩阵键盘又叫做行列式键盘。行列式键盘的硬件结构比较简单,由行输出口和列输出口构成行列式键盘,按键设置在行、列交点上。图 3-4 中 , P1.0P1.3 是行输出口,P 1.4P1.7 是列输出口。行输出口和列输出口不相交,只有当键被按下时相应的行和列才能相连。如此,只要检测行和

26、列是否相连就可以知道是否有键按下。由于按键设置在行、列线交点上,行、列分别连接到按键开关的两端,平时无键按下时,行线处于高电平,假设列线为低电平,当有键按下时,按下的键就会将相应的行和列连通,使得对应的行线被列线拉低,也变为低电平。这就是识别矩阵键盘是否有键被按下的关键。当 确 定 有 键 被 按 下 时 , 通 过 逐 行 扫 描 , 读 出 丨 /0 口的值可以知道哪一行的值被改变了,被改变了的行即是被按下的按键所在行。同时,由于每个键都有它的行值和列值,行值和列值得组合就是这个按键的编码,当算法一定时,每个按键的编码是固定的,且各个按键的编码互不相同,所有通过读丨/0 的值还能具体知道是

27、哪一个键被按下,这样就实现了键盘的识别。3.4 LCD 显示模块设计在单片机应用系统中,常用的显示设备有单个发光二极管、八段 LED显示器、液晶显示器(LCD)、屏幕显示器(CRT )等。在本次设计中,基于设计所要实现的功能和节约成本等实际情况,我釆用 LCD1602 作 为 本 次设计的显示器。LCD1602 是一种字符型液晶显示器,是一种专门用于显示字母、数字、符号等的点阵式液晶显示器。LCD1 602 的 显 示 容 量 为 16x2 个 字 符 ( 可 以显 示 2 行 , 每 行 显 示 16 个 字 符 ) , 芯 片 工 作 电 压 为 4.5 5.5V,工作电流为2.0mA (

28、5.0V),模块最佳工作电压是 5.0V。LCD1602 具 有 16 个 引 脚 , 如 表 3-1 所 示 。 在 LCD1602 的有关设计中,主要是通过编写程序控制 LCD1602 的 4、5、6 引脚来实现数据或者指令的写入和执行,再通过数据或者指令的写入和执行来进一步实现 LCD1602的显示功能。表 3-1 是 LCD1602 的 16 个 引 脚 和 引 脚 对 应 功 能 。西 南 科 技 大 学 本 科 生 毕 业 论 文9作为一个字符型液晶显示器,LCD1602 内部自带有一个字符发生存储器,此字符发生存储器就相当于一个字符集。LCD1 602 的 字 符 集 中 存 有

29、 160个不同的字符,这些字符包括了英文大小写字母、阿拉伯数字、标点符号等 一 些 经 常 用到 的 字 符 。 字 符 集 中 的 每 一 个 字 符 都 对 应 有 一 个 固 定 的 ASCII 码值,通过显示ASCII 码对应的字符图像就能够实现对应字符的显示。图 3-5 是 PROTEUS 中显示模块的仿真图。由于 LCD 要正常工作必须提供足够的电流,因此在实际应用为了保证显示器能够正常工作,应在数据端口接一上拉电阻。图 3-5 中 RP1 同 时 还是 P0 口的上拉电阻。表 3-1 LCD1602 引脚说明引 脚 号 引 脚 名 功 能1 VSS 电 源 地2 VCC 电 源

30、( +5V)3 VEE 对比调整电压4 RS 0:输 入 指 令 ; 1:输 入 数 据5 R/W 0:向 LCD 写 指 令 或 者 数 据 ; 1:从 LCD 读取信息6 E 使 能 信 号 , 1:读 取 信 息 , 10:执 行 命 令7 DB0 数据总线(最低位)8 DB1 数据总线9 DB2 数据总线10 DB3 数据总线11 DB4 数据总线12 DB5 数据总线13 DB6 数据总线14 DB7 数据总线(最高位)15 A LCD 背光电源正极16 K LCD 背光电源负极西 南 科 技 大 学 本 科 生 毕 业 论 文103.5 掉电存储模块3.5.1 I2C 总线I2C

31、总线为同步串行数据传输总线,用于单片机的外围扩展。I2C 总线上所有的外围器件都有规范的器件地址,器件地址有 7 位 组 成 , 它 和 1 位方向为构成了 I2C 总线器件的寻址字节。寻址字节格式如下:而不同,接地则相应位为 0,接电源则相应位为 1。R /W 位为 I2C 总线的数据方向位,决定 I2C 总线的数据传送方向,高电平为接收,低电平为发送。图 3-5 LCD 模块仿真图表 3-2 I2C 寻址格式D7 D6 D5 D4 A2 A1 A0 R/WD7D4 是 I2C 总线的器件尹 地 址 ,由3 厂家在器件 丰 出 厂 时 给 定 , 对 于 AT24C系 列 固 定 为 101

32、0。 A2 A0 根 据 电 路 中 A2,A1, A0 弓丨脚接电源或者接地西 南 科 技 大 学 本 科 生 毕 业 论 文11图 3-6 为 I2C 总线的数据传送时序图 3-6 I2C 总线数据传送时序起始信号:时钟线 SCL 为高电平,数据线 SDA 出现由高向低的负跳变时,启动 I2C 总线。停止信号:时钟线 SCL 为高电平,数据线 SDA 出现由低向高的正跳变时,停止 I2C 总线。应答信号位 ACK:I 2C 总线进行数据传送时,每成功传送一个字节的数据后,接收器件都必然产生一个应答信号,即 在 第 9 个 时 钟 周 期 时 将 SDA线拉低,表示其已经成功接收到一个 8

33、个 数 据 。 图 3-6 中 的 第 9 个 时 钟 脉冲对应于应答位。应答位对应的数据线 SDA 上 是 低 电 平 时 为 应 答 信 号 , 是 高电平则为非应答信号。为非应答信号时,证明器件没有成功接收到一个 8 位 数 据 。数据传送位:图 3-6 中 的 第 1 8 个 时 钟 脉 冲 为 一 个 字 节 的 8 位数据传送位。脉冲为高电平时,串行传送数据;脉冲为低电平时,不传送数据,允许总线上数据线 SDA 的 电 平 发 生 变 化 。 在 I2C 数 据 传 输 过 程 中 , 只 有 当 SCL 为低电平时才允许 SDA 变化,当 SCL 为高电平时,不允许 SDA 电平

34、改变。当然,起始信号和停止信号是例外。因此,当 SCL 为高电平时,SDA的变化被看成是起始信号或者停止信号。3.5.2 AT24C02 简介AT24C02 是 Atmel 公司生产的 AT24CXX 系列串行 E2PR0M 中的一种,SDA西 南 科 技 大 学 本 科 生 毕 业 论 文12I2C 有一个专门的写保护功能个字节,通过 时 即 为 与 保 护 ) 。图 3-7 是 AT24C02 的 引 脚 排 列 图其引脚功能如下:A0A2 :器件地址输入端。在本设计中,A0 A2 都 接 地 ,故 其 值 都 为 0。Vcc: +1.86.0V 工作电压。Vss:地 或 电 源 负 极

35、。SCL:串行时钟输入端。数据发送 J SDA :串行/数据地址线。用于传送地址和发送或者接收 传送端口。WP=1A0A1A2Vss1 52 6AT24C013 74 8图 3-7 AT24C02 引脚接收的时钟从此引脚输入。据,是双向VccWPSCLSDAWP:常的读写操作1端。WP=1 时,只能读出,不能: WP=0 时 , 允 许 正冬10k -R110kP2.6 . 57SCL AO SDA A1 WP A2P3.4/T0P3.5/T1P3.6/WRP3.7/RD14互Id17LED-BIRGR31K.+5V:具有 I2C 总线接口功能的电可擦除串行存储器。AT24C02 内 部 含

36、有 256图 3-8 为 PROTEUS 中 E2PROM 的 仿 ;:R2 :U2iAT.24C02图 3-8 AT24C02 仿 真 图P2.5 为串行时钟输入线接口,P 2.6 为数据线接口。A0, A1, A 2 接 地 ,所 以 单 片 机 在 读 AT24C02 时 , 器 件 地 址 为 : 10100001B=0A1H;在 写AT24C02 时 , 器 件 地 址 为 : 10100000B=0A0H。WP=0,允许单片机进行读3.6 开锁机构在基于单片机的电子密码锁设计中,用户需要输入密码,密码正确则发出开锁信号开锁。因为在设计中是以发光二极管代替电磁锁,二极管亮代表锁开,因

37、此可以设西 南 科 技 大 学 本 科 生 毕 业 论 文13当用户输入密 ;i 器发出报警计一个简单的可以点亮二极管的电路系统代替电磁锁开锁机构。如图 3-9 所 示 。图 3-9 二 极 管 电 路由于单片机 I/O 口 默 认 为 高 电 平 , 故 初 始 时 二 极 管 不亮 , 代 表 锁 是 闭 着 的。当用户输入密码并验证正确时,发出开锁信号(使 P3.6=0)。3.7 报警机构在这次基于单片机的电子密码锁设计中,通过控制蜂鸣器的发音来实现系统的报警功能。蜂鸣器是一种釆用直流电压供电的电子讯响器。图 3-10 是用蜂鸣器模拟的报警机构仿真图。当 P3.7 口有脉冲信号输入时,蜂

38、鸣器 SPEAKER 即会发首。通过控制输入脉冲的频率还能控制蜂鸣器的发音频率。:数达到预设警告次数时,系统调用报警子程序,同时禁止键盘输入。3.8 硬件综合设计根据电路原理,在 PROTEUS 中画出各功能模块的仿真图,各个功能模块验证正确后,将所有模块集合到一个电路设计图中,画出具有所有功能的总体硬件仿真图。图 3-11 即为本设计的硬件综I 1-rA/:-RJ:PEAKERP3 R3 i H JLJTI I, , - ,10k K:B -一 1图 3-10 报 警 机 构 模 拟 仿 真 图西 南 科 技 大 学 本 科 生 毕 业 论 文14C2. R2tv,:s U1mu .!#.

39、aPDUHKRP 口 JVWP3 PD 納*6Rpr:丨-*丨 一 nJ1. 卜 :工 JgL#* =1 1“m . 卜 二_tLfiPV 1=0 = -B-4 j=0 c- _ |=0 * P1;3i =!PI o =鹼 p *j=0 = i C r“, 1;3. MT rji FlJ pi.*2.WP3.IDPZ.4W.I2PZi13rzaniBFZTftlSPlIfTXiPJJfHTT?P3.-WTDpaarriFUSfliFP3.W1CF U3aW _-_z運:.匕 R3A.RA iBiBiMK - C.TEKT _LS1!(IJf:un 故图 3-11 基 于 单 片 机 的 电 子

40、 密 码 锁 设 计 仿 真 图待程序编写好后,将 KEIL 和 PROTEUS 联调,观察此电路设计图可以知道各个功能模块和器件的工作情况。届时,根据实际情况可以适当修改电路图或者程序,以达到设计的目的。第 4 章 软 件 设 计4.1 软件总体设计根据电子密码锁的实际应用要求和其应该具有的功能,本次设计的主程序流程图如图4-1 所示。西 南 科 技 大 学 本 科 生 毕 业 论 文15此次基于单片机的电子密码锁设计的软件设计方面的主要问题是如何实现键盘输入、信息显示、密码的掉电存储以及密码的比较和处理。本设计接下来将分步解决这几个问题。4.2 键盘扫描子程序矩阵键盘扫描子程序应该具有以下

41、 2 个基本的功能:(1)能判断是否有键按下;(2)能确定是哪个键被按下。其软件管理主要分为以下三步来完成:(1) 判断整个键盘是否有键按下。让所有的行为 0,然后读列的数值。如果列的数值全部为 1,说 明 没 有键被按下,否则说明有键被按下。(2) 识别被按下的键的位置。釆用一行一行的扫描方法,逐行输出 0,然后读列的值。如果列的数值全部为 1,说明不是这一行的按键被按下,扫描下一行,如果列的数值不全为 1 ,则说明被按下的按键时在这一行。(3) 查键值表,返回键值对应信息,以便确定各按键应该完成的功能。釆用某种算法,将被按下的键所在的行和列的信息合并成为一个信息,该信息即为此键的键值。用相

42、同的方法给每一个键确定键值。在给按键确定键值时必须釆用同一种算法,并且计算出来的键值应该是互不相同的。本设计中各按键对应键值如表 3 所示。键盘扫描子程序的流程图如图 4-2 所示:表 4-1 按键 1 键值表按键名称 键值 按键名称 键值1 0x7e 9 0x7d2 0xbe 0 0xbb3 0xde A 0xdb4 0xee B 0xeb5 0x7d C 0x776 0xbd D 0xb77 0xdd E 0xd78 0xed F 0xe7西 南 科 技 大 学 本 科 生 毕 业 论 文16图 4-2 键 盘 扫 描 程 序 流 程 图从流程图可以看出,此键盘识别程序是通过逐行扫描来确定

43、是否有键按下,当确定某一行有键按下时,再在该行中确定被按下的是哪一个按键。在本设计中,P1.0 P 1.3 为行输出口, P1.4P1.7 为列输出口。初始时将 P1.0P1.3值 赋 为 0, P1.4P1.7 赋 为 1, CPU 始终扫描 P1 端 口 , 当 P1 值 不 为 0xf0 时,有按键被按下,否责没有按键被按下。在实际应用中,为了防止因为按键的抖动而使得一次按键按下被当做 2次或者 2 次以上处理,应该进行按键消抖程序设计,只要方法是当有键闭合时,延时一段时间再确定是否还有键闭合,若有,则为键有效闭合,若无则为键无效闭合,返回重新扫描。图 4-3 为 CPU 扫描第一行键盘

44、的程序流程图。单行键盘扫描能够准确确定被按下键所在的位置。西 南 科 技 大 学 本 科 生 毕 业 论 文17r开 始_JI/O 口初始化图 4-3 单 行 键 盘 扫 描 流 程 图在本设计中,数字键 0 9 对 应 输 入 数 字 0 9,功 能 键 A 键是确定键,B 键是取消键,C 键是改密码键, D 键位闭锁键, E 键和 F 键闲置不用。4.3 显示模块子程序由于设计中要求能够显示密码输入界面、密码输入信息、密码正确后提示界面、密码错误后提示界面和修改密码相关界面等信息,故要用到很多个显示子程序来显示不同的内容。虽然显示子程序很多,但是由于其显示原理都一样,所以我就不一一介绍各个

45、子程序了,只要能够熟练使用 LCD1602 各个指令,这些大同小异的子程序也就不在话下了。下面为 LCD1602 写命令子函数和写数据子函数。/函数:写命令函数II 功能:调用该函数可能定义 1602 液晶显示器的各种命令I/*voidwrite 一 1602com(ucharcom)while(lcdbusy(); IIlcdbusy()为检测 LCD 忙标志函数,Icdbusy( )返 回 值 e=0;II 为 1,扫描端口查表确定按 安键V返回按钥 酿结束西 南 科 技 大 学 本 科 生 毕 业 论 文18则 说 明 LCD 正在工作rw=0;rs=0;IIrs=0 时为写命令P0=c

46、om;II 待写命令赋 P0delay(1);e=1;IIe 由 10 跳 变 时 为 执 行 命 令delay(1);e=0;II*II 函数:写数据函数II 功能:调入该函数可以向 1602 液晶显示器输入数据II*voidwrite 一 1602dat(uchardat)while(lcdbusy();e=0;rw=0;rs=1;IIrs=1 时 为 写 数 据P0=dat;delay(1);e=1;delay(1);e=0;西 南 科 技 大 学 本 科 生 毕 业 论 文19N (0定时周期晶 振 频 率 为 12MHz 时,定时/计数器的定时周期为 1 降 , 所 以 定 时 50

47、ms的定时/计数器初值为:计 数 初 值 =216500004.6 密码输入子程序当从键盘输入密码时,应当将输入的密码存放,以便用做密码的相关操作(判断,修改和保存等),同时每输入一位密码应相应地在显示器上显 示 一 个 “*号 。 图 4-8 是 密 码 输 入 子 程 序 的 流 程 图 。西 南 科 技 大 学 本 科 生 毕 业 论 文24输入密码时,当输入的密码位数小于 6 位的时候,每按下一次数字键,就将此数字存入数组。当输入的密码位数不小于 6 位时,再次按下数字键,程序就不进行任何处理,继续扫描键盘,此时只有按下确定键或者取消键程序才做出相应反应。取消键的功能是退格。当不小心输

48、错密码时,可以退格将输错的位清除,退格一次密码的位数减一位,同时显示器上的 “个数也减 1。当输入的密码位数变为 0 时,取消键不再起作用。开 始西 南 科 技 大 学 本 科 生 毕 业 论 文254.7 报警子程序报警子程序的原理很简单,即当输入密码错误次数超过规定的最高允许次数时,不断给蜂鸣器脉冲,使其不断发音。同时,由于 CPU直在给蜂鸣器提供脉冲,故无暇处理诸如密码扫描等事件,也就是说,在蜂鸣器报警的同时也屏蔽了键盘的输入。本次设计中,密码输入错误次数不得高于 3 次 。 图 4-9 为 报 警 子 程 序 流程 图 。第 5 章 联 合 仿 真 和 调 试在 PROTEUS 中画出仿真电路图和在 KEIL 中编写出程序后,需要验证其正确性和可行性,最好的办法就是就它们联合起来仿真和调试。K 曰 L 和 PROTEUS 都是单片机爱好者和单片机相关工作者经常用到的具有相当好的辅助功能的软件工具。KEIL 是 一 款 具 有 强 悍 功 能 的 51 系 列 兼容单片机 C 语言软件开发系统,为用户提供丰富的库函数和功能强大的集成开发调试工具,其生成目标代码的效率非常之高,且多数语句生成的汇编代码很紧凑,容易理解。PROTEUS 是目前世界上唯一一款将电路仿真软图 4-9 报 警 子 程 序 流 程 图西 南 科 技 大 学 本 科 生 毕 业 论

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报