为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

门禁系统密码锁设计

2017-10-21 50页 doc 97KB 29阅读

用户头像

is_337177

暂无简介

举报
门禁系统密码锁设计门禁系统密码锁设计 门禁密码锁设计 摘 要 摘要:安全是现代居民最关心的问题之一,人们对锁的要求甚高,既要安全可靠 地防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子产品向智能 化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。本 文介绍了一种应用STC89C52单片机设计的防盗自动报警的智能密码锁,本系统 由单片机系统、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、超时 报警、超次锁定、修改用户密码的功能。该系统具有软硬件设计简单,易于开发, 成本较低,安全可靠,操作方便等特点,可应...
门禁系统密码锁设计
门禁系统密码锁设计 门禁密码锁设计 摘 要 摘要:安全是现代居民最关心的问题之一,人们对锁的要求甚高,既要安全可靠 地防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子产品向智能 化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。本 文介绍了一种应用STC89C52单片机设计的防盗自动报警的智能密码锁,本系统 由单片机系统、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、超时 报警、超次锁定、修改用户密码的功能。该系统具有软硬件设计简单,易于开发, 成本较低,安全可靠,操作方便等特点,可应用于家庭门锁,有比较强的实用性。 关键词 密码锁 单片机 报警 LCD显示 Lock Access Control System Design Abstract:One of the problem that many people pay much attention to is the security. people want to have a lock that is not only safe but also convenient to use.More and more people spend a long time to develop a safe and easy lock. With the development of progress of the exploiture of products in teligentization and micromation, SCM has becom the preferred controller in the exploiture of products. In the context, I introduce a electronic coded lock based in the STC89C52 SCM that could guard against theft and give a alarm automately. The system is composed of singlechip system ,matriks keyboard, LCD and alarm modules. The system can open the lock ,give an alarm overtime, lock using to excess and modification the user password. In the process of design, the software and hardware are very easy , so the cost of the system is small. However the security is good and the the operation is easy. It can be equipped in hurse door. This proves its pracaticality. . Key Words: Password lock; MCU; Alarm; LCD Display 目 录 摘要 第一章 绪论 1.1门禁密码锁简介„„„„„„„„„„„„„„„„„„„„„„„„1 1.2门禁密码锁的发展趋势和前景展望„„„„„„„„„„„„„„„„„1 1.3本课题的主要内容和要求„„„„„„„„„„„„„„„„„„„„„2 第二章 总体方案选择 第三章 硬件系统构成 3.1设计原理„„„„„„„„„„„„„„„„„„„„„„„„„„„10 3.2电路总体构成„„„„„„„„„„„„„„„„„„„„„„„„„10 3.3电源输入电路„„„„„„„„„„„„„„„„„„„„„„„„„11 3.4键盘输入电路„„„„„„„„„„„„„„„„„„„„„„„„„12 3.5密码存储电路„„„„„„„„„„„„„„„„„„„„„„„„„12 3.6复位和晶振电路„„„„„„„„„„„„„„„„„„„„„„„„13 3.7显示电路„„„„„„„„„„„„„„„„„„„„„„„„„„„14 „„„„„„„„„„„„„„„„„„„„„„„„„15 3.8报警电路„„ 3.9开锁电路 „„„„„„„„„„„„„„„„„„„„„„„„„„15 第四章 软件系统设计 4.1主程序流程图„„„„„„„„„„„„„„„„„„„„„„„„„17 4.2按键软件设计„„„„„„„„„„„„„„„„„„„„„„„„„18 4.3密码设置软件设计„„„„„„„„„„„„„„„„„„„„„„„19 4.4开锁软件设计„„„„„„„„„„„„„„„„„„„„„„„„„20 第五章 调试与实现 5.1硬件调试 „„„„„„„„„„„„„„„„„„„„„„„„„„„21 5.2软件调试 „„„„„„„„„„„„„„„„„„„„„„„„„„„21 5.3 Pruteus仿真„„„„„„„„„„„„„„„„„„„„„„„„„22 结论与展望 致谢 参考文献 附录 第一章 绪 论 1.1 电子密码锁简介 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下: 1) 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因 人员的更替而使锁的密级下降。 3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。 4) 无活动零件,不会磨损,寿命长。 5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。 6) 电子密码锁操作简单易行,一学即会。 1.2 电子密码锁的发展趋势和前景展望 日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹 1 或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。 1.3 本课题的主要内容和要求 本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以有用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。 在初始状态下,会预设一个密码,用户也可以根据自己的需要设置密码.无论是预设的还是用户自己设定的,都存入24c04存储器中,以备用户开锁和修改密码时输入的密码作比较。 在告知系统准备开锁时,数码管上显示“------”。接着通过矩阵键盘输入密码,然后与存储在24C04存储器中的密码进行比较,若比较通过,驱动继电器动作,数码管上显示“--GOOD”。若不正确,数码管上显示:“1ERROR”若在三次之内输入密码正确,比较通过,警报不会响起。若三次之后,输入密码仍然错误。警报响起,键盘锁定,短时间内不可对密码锁进行操作。 2 第二章 总体方案的选择 本设计有多种方案选择,如:可以采用数字电路控制:用以74LS112双JK触发器构成的数字逻辑电路作为密码控制系统的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作 。采用数字电路设计方案时设计虽然简单,但控制的准确性和灵活性差。故不采用。由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素 。另外,我们对单片比较熟悉也很重要。基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LED数码管用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0,9输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘修改键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。可以看出此方案的控制灵活,准确性好,且保密性强还具有扩展功能,因此此次设计采用此方案。 1 第三章 硬件系统设计 3.1 设计原理 本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。 本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。 键盘输入 电源输入 显示电路 复位电路 AT89C51 报警电路 存储电路 开锁电路 晶振电路 图3-1 密码锁原理框图 1 3.2 电路总体构成 在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择LED晶体数码管,密码存储部分选用AT24C02芯片来完成。 3.3 电源输入电路 密码锁主要控制部分电源需要用5V直流电源供电,其电路如图3-3所示,而5V电源输入时往往伴有杂波,所以加一个2.2uF的电容滤波。这样输出的电压一般能满足要求。 VCCC4 2.2uF 2 1 POWER图3-3 电源输入电路原理图 2PIN3.4 键盘输入电路 由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置 。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图3-4所示: 2 S1S2S3S4 S5S6S7S8 S9S10S11S12 P1.0 P1.1S13S14S15S16 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 R1R2R3R4R5R6R7R8 10k10k10k10k10k10k10k10k图3-4 键盘输入原理图 VCC 3.5 密码存储电路 AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路如图3-5所示。 U3VCC 15P3.5A0VCC26P3.6A1WP37P3.7A2SCL48GNDSDL R9AT24C02 5.1kR10 5.1k VCC 图3-5 密码存储电路原理图 图中1、2、3脚是三条地址线,用于确定芯片的硬件地址,在AT89S51上它们都能接地,第5脚和第8脚分别为正、负电源。AT24C02中带有片内地址寄存器,每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个储存单元的读写,所有字节均以单一操作方式读取。 3.6 复位和晶振电路 单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC,0000H,使单片机从第—个单元取指令。 3 无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1,P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图2-8所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R15放电。当电容C1放电结束后,RST端的电位由R11与R15分压比决定。由于R11<3, 确, Y Y 报警程序 Y 开锁程序 开锁, N Y 修改程序 修改密码 锁码, N 返回 图4-1主程序流程图 4.2 按键软件设计 如图4-2按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。 8 开始 Y 键值,‘输入’, 密码输入程 序 N Y 开锁程序 键值,‘开锁’, Y N 键值,‘清除’, 清除程序 N Y 设置程序 键值,‘设置’, N Y 键值,‘确确认程序 认’, N 返回 图4-2 按键功能流程图 4.3 密码设置软件设计 如图4-3为密码设置流程图,开始按下设置键,输入旧密码,如果错误累计三次,进行报警程序。如果输入正确,可以修改密码,确认后再次输入新密码,如果两次输入一样,则输入成功。如果两次输入的新密码不一样,则修改密码失败,重新返回设置新密码。 9 开始 按下设置 键 输入旧密码 N 所输入旧密输入次数加1 码正确, N Y 次数>3? 输新密码 Y 报警程序 再次输新密 码 返回 N 两次新密码输 入相同, Y 设置成功 图4-3 密码设置流程图 4.4 开锁软件设计 如图4-4开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开 锁成功。如果输入错误累计达到三次,则执行报警程序。 10 开始 初始化 按开锁键 输入密码 输入次数加1 按确认键 N 次数>3? 所输入密码N Y 正确, 报警程序 Y 开锁 返回 图4-4 开锁流程图 第五章 调试与实现 5.1 硬件调试 单片机应用系统的硬件调试和软件调试是分不开的(许多硬件故障只有通 过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软 件一起联调。 11 常见的硬件故障: (1)逻辑错误 硬件的逻辑错误是由于设计错误和焊接过程中的工艺错误而造成的,包括错线、开路、短路等,其中最常见的是短路故障。 (2)元器件错误 元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。 (3)可靠性差 应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。另外,走线和布置的不合理也会造成系统可靠性差。 (4)电源故障 电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。 硬件调试办法 脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别焊接时有无走线之间相互短路等。 5.2 软件调试 程序在KEIL C51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统程序总调。 对于模块结构程序(要一个个子程序分别调试。调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和I,O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。 各程序模块通过后,则可以把相关功能块连在一起进行总调。这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正 12 常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连续调试,用以确定定时精度、CPU的实时响应等问题。 当全部调试和修改完成后,将程序固化到AT89S51中。进行整机调试。各功能实现则调试完成。 5.3 Proteus仿真 在硬件和软件都能实现的条件下,利用Proteus进行仿真,通过不停的调试与改正,最后终于实现了密码锁的功能,Proteus仿真结果如图4-1所示 当连好各个模块电路的导线后,导入芯片程序,运行该密码锁仿真电路,通过按键可以进行密码锁的开锁,修改密码,错误密码3次以上报警的操作,LED显示屏显示相应的操作现象,密码正确可以开锁,进而可以修改密码,密码错误三次以上由喇叭发出报警声,如果系统出现错误还可以通过复位电路进行复位。 总之,在原有的理论基础上,通过Proteus能够成功的进行密码锁基本操作 1VSS2的仿真,实现了相关的功能。 VDD3VEE4RS5RW6ELCD17D0LM10628D19SW17D210D311C1D4SW-SPST12D513D6C330pF14R11D7X1U1CRYSTAL10k1939XTAL1P0.0/AD01nF38C2P0.1/AD137P0.2/AD21836XTAL2P0.3/AD330pF35P0.4/AD434P0.5/AD533P0.6/AD6932RSTP0.7/AD721P2.0/A822P2.1/A9R1R2R3R4R5R6R7R823P2.2/A1010k10k10k10k10k10k10k10k2924PSENP2.3/A113025ALEP2.4/A123126EAP2.5/A1327P2.6/A1428P2.7/A15R21R22R23R24R25R26R27R28110P1.0P3.0/RXD10k10k10k10k10k10k10k10k211P1.1P3.1/TXD312P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1AT89C51716P1.6P3.6/WR817LS1P1.7P3.7/RD SPEAKERQ1PNP R91k 结论与展望 以上为毕业期间所作的毕业---基于单片机的电子密码锁设计,它经过多次修改和整理,可以满足设计的基本要求。输入密码时,如三次输入错误,则进行报警,在输入时,LCD显示为“*”,在修改密码时,则显示数字。次设计 13 还具有防盗功能,如对密码控制系统进行破坏,有报警功能。 通过对该课题的研究,加深对所学知识的理解,提高对课外知识的学习能力, 增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。积累实践经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下基础,并能够在这方面培养自己的兴趣。 在设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口技术及相关外围芯片的外特性,控制方法。以单片机核心的电路设计的基本方法和技术了解表关电路参数的计算方法。单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。随着单片机的广泛应用,将大大促进各领域的技术更新,向自动化、小型化、智能化方向迈进。而对于我们来说,我们这代人的目标和任务是把这些高科技产品更升一个层次。 毕业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 通过这次毕业设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为 14 社会服务,从而提高自己的实际动手能力和独立思考的能力。 致 谢 四年的大学生活不知不觉中就要结束了,在这段难忘的生活中,有许多美好的回忆,在毕业论文设计之中,我的老师和我的同学都不吝的指导我,我需要感谢的人太多太多,首先要感谢我的学校,感谢在这四年中让我领悟到诚实做人,踏实做事,扎实做学问的深刻道理,让我从一个懵懂得高中生变成一个成熟的大学生,其次我要感谢的是我的导师王老师。虽然王老师平日里工作繁多,但在我做毕业设计的每个阶段,都给予我悉心的指导和帮助,关心我们每个阶段所做的工作,当然,还要感谢寝室的兄弟们在我完成论文的过程中给予我的帮助和鼓励,也是他们陪我度过了这四年的生活,感谢能有这段美好的记忆。 现在即将挥别我的学校、老师、同学,还有我四年的大学生活,虽然依依不舍,但是对未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的所有人,有你们的陪伴,才有我大学生活的绚丽多彩。 作者: 2011年5月25日 参考文献 [1] 童诗白,华成英. 模拟电子技术基础[第四版]. 高等教育出版社,2000 [2] 阎 石. 数字电子技术基础[第五版].高等教育出版社.1998.11 [3] 张毅刚. 单片机原理及应用. 高等教育出版社.2003 15 [4] 楼苗然,李光飞. 单片机课程设计指导. 北京航空航天大学出版社2007 [5] 蔡朝洋. 单片机控制实习与专题制作. 北京航空航天大学出版社2006 [6] 陈连坤. 单片机原理及接口技术. 北京交通大学出版社2010 [7] 李学海. 标准8051单片机基础教程. 北京航空航天大学出版,2006 [8] 何立民. 单片机高级教程. 北京航空航天大学出版社, 2006 [9] 周立功. 单片机实验与实践教程. 北京航空航天大学出版社, 2006 [10] 江志红. 51单片机技术与应用系统开发. 清华大学出版社, 2008 [11] 祖龙起. 一种新型可编程密码锁. 大连轻工业学院学报,2002,(01); [12] 李明喜. 新型电子密码锁的设计. 机电产品开发与创新,2004,(03) [13] 王宽仁. 可靠安全的智能密码锁.电子技术应用.2001年第2期 [14] 董继成. 一种新型安全的单片机密码锁. 电子技术,2004,(03) [15] 任艳艳. 基于AT89C51单片机多功能密码锁的研究. 重庆职业技术学院学 报.2008.5 [16] 周鑫,何建新, 刘琥. 基于单片机的电子密码锁控制电路设计. 成都信息 工程学院学报. 2009,(08) [17] 王金国.采用单片机的电子密码锁控制电路.山东煤炭科技 ,2000 ,(3) :30 - 33. [18] 宁爱民. 应用AT89C2051 单片机设计电子密码锁. 淮海工学院学报 2003 ,6 16 附 录 程序清单: 显示缓冲区 LED1 EQU 6FH BUFF EQU 6EH TIMERS1 EQU 6DH ;输入回车的次数 TIMERS2 EQU 6CH ;报警的次数 LED6 EQU 6AH 密码缓冲区 PS1 EQU 69H PS2 EQU 78H PS3 EQU 67H PS4 EQU 66H PS5 EQU 65H PS6 EQU 64H PS7 EQU 63H PS8 EQU 62H AT24C02读取缓冲区 AT1 EQU 61H AT2 EQU 60H AT3 EQU 5FH AT4 EQU 5EH AT5 EQU 5DH AT6 EQU 5CH AT7 EQU 5BH AT8 EQU 5AH 按键标志位 F_0 BIT 20H F_1 BIT 21H F_2 BIT 22H F_3 BIT 23H F_4 BIT 24H F_5 BIT 25H F_6 BIT 26H F_7 BIT 27H F_8 BIT 28H F_9 BIT 29H CH_STATE BIT 2AH ;系统更改的状态标志位,为1表示busy FLAG1 BIT 2BH ;功能键标志位,为1表示功能按键。 F_F1 BIT 2CH F_F2 BIT 2DH PSW_F BIT 2EH ;密码是否正确的标志位 口资源定义 SPK BIT P2.1 WP BIT P3.5 SDA BIT P3.6 ;定义串口数据端 SCL BIT P3.7 ORG 0000H AJMP MAIN ORG 000BH ;AJMP TIMER0 ORG 001BH ;AJMP TIMER1 ORG 0030H MAIN:MOV SP, #70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H CLR F_0 ;清除标志位 CLR F_1 CLR F_2 CLR F_3 CLR F_4 CLR F_5 CLR F_6 CLR F_7 CLR F_8 CLR F_9 CLR BUF_FULL CLR CH_STATE CLR FLAG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;调用 LCALL INITPS ;初始化环境 LCALL INITAT LCALL XSA ;调用默认显示 MOV TIMERS1,#00H NOP MOV PS1, #11H ;初始化密码830620 MOV PS2, #0AH MOV PS3, #02H MOV PS4, #13H MOV PS5, #0BH MOV PS6, #02H START:NOP ;程序开始 LCALL CH_KEY ;检查键盘 AJMP START ;返回 CH_KEY:LCALL KS ;检查有没有按键按下 JNZ LK1 AJMP CH_KEY LK1: LCALL T12MS ACALL KS JNZ LK2 RET LK2: NOP LCALL SBIE ;按键识别子程序 MOV BUFF, A ;送缓冲区以识别是数字键还是功能键, LCALL CH_KF ;判断按键功能。 JB FLAG1 ,KEY_FUN ;标志为1,则为功能键 ***********数字按键输入并且存放到缓冲区内等待比较****************** KEY_DIG:NOP ;设一标志,辨别输入是否满 ;SETB TR0 INC TIMERS ;输入数字的位数 MOV A, TIMERS CLR C SUBB A, #01H JNZ PS_2 MOV PS1, BUFF ;依照顺序存放密码 AJMP NEXT PS_2:MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3 MOV PS2, BUFF AJMP NEXT PS_3:MOV A, TIMERS CLR C SUBB A, #03H JNZ PS_4 MOV PS3, BUFF AJMP NEXT PS_4:MOV A, TIMERS CLR C SUBB A, #04 JNZ PS_5 MOV PS4, BUFF AJMP NEXT PS_5:MOV A, TIMERS CLR C SUBB A, #05 JNZ PS_6 MOV PS5, BUFF AJMP NEXT PS_6:MOV A, TIMERS CLR C SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT:LCALL XSC MOV R7, TIMERS ;比较输入的次数。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MOV TIMERS,#06H CLR L3 NOP CLR P2.1 LCALL T100MSD SETB P2.1 NOP AJMP CH_KEY NEXT9:CLR P2.1 ;密码输入一位,鸣叫一声。 CLR L3 LCALL T100MSD ;延时100ms SETB L3 SETB P2.1 AJMP CH_KEY ***************开门子程序 ****************************************** CL:NOP SETB L3 MOV BUFF, #00H ;消密码缓冲 MOV TIMERS,#00H LCALL INITPS ;消除AT缓冲,调电存储后一定要加上 LCALL XSC LCALL BP LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU3:NOP LCALL BP LCALL T100MSD LCALL BP LCALL KILLXS ;关闭显示 CLR FLAG1 AJMP CH_KEY FU1:NOP LCALL XSC JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEY NEXT_F1:SETB L1 LCALL BP CLR F_F1 ;LCALL CH_STATE ;查看现在的状态以防误按 ;SETB TR1 ;报警限制暂时不开 ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP JB F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEY NEXT_F2:SETB L2 LCALL BP CLR F_F2 CLR FLAG1 AJMP CH_KEY **************各类子程序******************************** 注意清楚缓冲区时AT1...AT8不应在初始化中执行,以 防两缓冲区都为0,相同开锁 ******************************************************** CLR_BUF:MOV R7, #06H MOV R0, #6FH LOOP1:MOV A, #00H MOV @R0, A DEC R0 DJNZ R7,LOOP1 RET *************初始化显示缓冲区以及其他缓冲区************** INITPS:PUSH ACC PUSH PSW MOV R7, #06H MOV R1, #PS1 MOV A, #00H INIT_PS:MOV @R1, A DEC R1 DJNZ R7, INIT_PS POP PSW POP ACC NOP RET INITAT:PUSH ACC PUSH PSW MOV R7,#06H MOV R1,#AT1 MOV A, #00H INIT_AT:MOV @R1, A DEC R1 DJNZ R7, INIT_AT MOV TIMERS,#00H ;密码输入的次数清零。 POP PSW POP ACC RET ****************检验密码正误****************************** C_PSW:PUSH PSW PUSH ACC MOV R2,#06H MOV R0,#PS1 MOV R1,#AT1 C_P:CLR C MOV A,@R0 SUBB A,@R1 JNZ RETURN DEC R0 DEC R1 DJNZ R2,C_P NOP SETB PSW_F AJMP EXIT7 RETURN:CLR PSW_F EXIT7:NOP POP ACC POP PSW RET ***************************锁定,鸣笛程序********************** LOCK_1M:MOV R4,#3CH ;锁定1分钟 M1_LOOP:LCALL SEC DJNZ R4,M1_LOOP NOP RET WARN2S:PUSH PSW PUSH ACC MOV R5, #14H ;调用20次BP,报警2s WARN:LCALL BP DJNZ R5,WARN NOP POP ACC POP PSW NOP RET BP:CLR SPK ;鸣笛子程序 LCALL T100MSD SETB SPK NOP RET *************************** ***** 显示子程序 ******** *************************** 锁定状态显示。 XSA:PUSH ACC PUSH PSW MOV A, TIMERS1 MOV DPTR, #TAB MOVC A, @A+DPTR MOV SBUF, A ;送已经输入密码的次数 JNB TI, $ CLR TI MOV SBUF, #0FEH ;送短线 JNB TI, $ CLR TI MOV SBUF, #0FEH ;送短线 JNB TI, $ CLR TI ;送F MOV SBUF, #78H JNB TI, $ CLR TI MOV SBUF, #78H JNB TI, $ CLR TI MOV SBUF, #11H JNB TI, $ CLR TI POP PSW POP ACC RET 成功开锁状态显示 XSB:PUSH ACC PUSH PSW MOV A, TIMERS1 MOV DPTR, #TAB MOVC A, @A+DPTR MOV SBUF, A JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI POP PSW POP ACC RET 密码输入及修改状态 XSC:PUSH ACC PUSH PSW LCALL KILLXS SETB RS1 ;切换到第三组寄存器。防止操作数读取错误。 MOV R6, TIMERS MOV A, R6 SUBB A, #01H JNC SC0 JZ SC1 SC0:MOV SBUF, #0FEH JNB TI, $ CLR TI SC1:MOV A, R6 SUBB A, #02H JNC SC11 JNZ SC2 SC11:MOV SBUF,#0FEH JNB TI, $ CLR TI SC2:MOV A, R6 SUBB A, #03H JNC SC22 JNZ SC3 SC22:MOV SBUF, #0FEH JNB TI, $ CLR TI SC3:MOV A, R6 SUBB A, #04H JNC SC33 JNZ SC4 SC33:MOV SBUF, #0FEH JNB TI, $ CLR TI SC4:MOV A, R6 SUBB A, #05H JNC SC44 JNZ SC5 SC44:MOV SBUF, #0FEH JNB TI, $ CLR TI SC5:MOV A, R6 SUBB A, #06H JNC SC55 JNZ SC6 SC55:MOV SBUF, #0FEH JNB TI, $ CLR TI SC6:MOV A, R6 SUBB A, #07H JNC SC66 JNZ EXIT_C SC66:MOV SBUF, #0FEH JNB TI, $ CLR TI NOP NOP EXIT_C:NOP CLR RS1 POP PSW POP ACC NOP RET 密码输入错误的提示 XSD:PUSH ACC PUSH PSW MOV SBUF, #98H JNB TI, $ CLR TI MOV SBUF, #79H JNB TI, $ CLR TI MOV SBUF, #11H JNB TI, $ CLR TI MOV SBUF, #79H JNB TI, $ CLR TI MOV SBUF, #79H JNB TI, $ CLR TI MOV SBUF, #38H JNB TI, $ CLR TI POP PSW POP ACC RET 锁定状态显示 XSE:PUSH ACC PUSH PSW MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #54H JNB TI, $ CLR TI MOV SBUF, #39H JNB TI, $ CLR TI MOV SBUF, #11H JNB TI, $ CLR TI MOV SBUF, #3DH JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI POP PSW POP ACC RET XSF:PUSH ACC PUSH PSW MOV SBUF, #98H JNB TI, $ CLR TI MOV SBUF, #38H JNB TI, $ CLR TI MOV SBUF, #39H JNB TI, $ CLR TI MOV SBUF, #39H JNB TI, $ CLR TI MOV SBUF, #3DH ;U JNB TI, $ CLR TI MOV SBUF, #98H JNB TI, $ CLR TI POP PSW POP ACC RET KILLXS:PUSH ACC PUSH PSW MOV R7, #06H LOOP_XS:MOV SBUF, #0FFH JNB TI, $ CLR TI DJNZ R7,LOOP_XS NOP POP PSW POP ACC RET TAB: DB 11H,0D7H,32H,92H,0D4H,98H,18H,0D1H,10H,90H ,0FFH **************************************************************** ******* 24C02读写程序 *********** **************************************************************** AT_RADE:PUSH PSW PUSH ACC MOV R0,#AT1 ;CPU首地址 MOV R6,#06H ;8字节 MOV R5,#08H ;8位 MOV R7,#00H ;24C02首地址 LCALL READ ;读数据 NOP NOP POP ACC POP PSW RET AT_WR: PUSH PSW PUSH ACC MOV R0,#PS1 ;CPU RAM首地址 MOV R6,#06H ;8字节 MOV R5,#08H ;8 BIT MOV R7,#00H ;24C02 RAM 首地址 LCALL WRT ;先写进 NOP NOP POP ACC POP PSW RET **************************************************************** 读串行器件 R0:RAM的起始地址,R5:位计数器, R6:读的字节数,R7:读的起始地址 READ: NOP NOP LCALL START0 MOV A,#0A0H LCALL WRB LCALL ACK JB F0,RD_FAIL MOV A,R7 LCALL WRB LCALL CHK JB F0,RD_FAIL LCALL START0 MOV A,#0A1H LCALL WRB LCALL CHK JB F0,RD_FAIL RD_N: NOP NOP LCALL RDB MOV @R0,A DJNZ R6,GO_ACK LCALL N_ACK RD_FAIL:NOP LCALL STOP MOV A,#0FFH RET *************read GO_ACK: NOP NOP DEC R0 LCALL ACK JMP RD_N , 写串行器件 R0:RAM的起始地址,R5:位计数器R6:写的字节数(页),R7:写的起始地址 WRT: NOP NOP LCALL START0 MOV A,#0A0H LCALL WRBYT LCALL CHK JB F0,WR_FAIL MOV A,R7 LCALL WRBYT LCALL CHK JB F0,WR_FAIL WR_N: NOP NOP MOV A,@R0 LCALL WRBYT LCALL CHK JB F0,WR_FAIL DEC R0 DJNZ R6,WR_N WR_FAIL:NOP LCALL STOP MOV A,#0FFH RET ;*********wrt ;-------------------- START0: NOP NOP SETB SDA SETB SCL NOP NOP CLR SDA NOP NOP CLR SCL NOP RET ;------------------- STOP: NOP NOP CLR SDA SETB SCL NOP NOP SETB SDA NOP NOP CLR SCL NOP RET ;-------------------- ACK: NOP NOP CLR SDA SETB SCL NOP NOP CLR SCL SETB SDA NOP RET ;-------------------- N_ACK: NOP NOP SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA NOP RET ;-------------------- CHK: NOP NOP SETB SDA NOP NOP SETB SCL NOP NOP MOV C,SDA MOV F0,C CLR SCL NOP NOP RET --------------------- RDB: NOP NOP SETB SDA MOV R5,#8 RD_B: NOP NOP CLR SCL NOP NOP SETB SCL NOP NOP MOV C,SDA RLC A NOP NOP SETB SDA CLR SCL DJNZ R5,RD_B NOP RET 一字节数据发送子程序 WRBYT: MOV R5,#8 WLP: RLC A JC WR1 CLR SDA SETB SCL NOP NOP CLR SCL DJNZ R5,WLP RET WR1: SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA DJNZ R5,WLP RET -------------------- WRB: NOP NOP MOV R5,#8 WR_B: NOP NOP SETB SDA RLC A JC WR_1 CLR SDA NOP WR_1: SETB SCL NOP NOP CLR SCL NOP CLR SDA NOP DJNZ R5,WR_B NOP RET ********************************************************************* ********** 毫秒延时程序 ************* ******************************************************************** T10MSD:SETB RS0 MOV R4, #12 TM:MOV R3, #128 TM6:DJNZ R3, TM6 DJNZ R4, TM CLR RS0 RET T100MSD:MOV R3, #200 D11:MOV R4, #125 D12:DJNZ R4, D12 DJNZ R3, D11 RET T500MSD:LCALL T100MSD LCALL T100MSD LCALL T100MSD LCALL T100MSD LCALL T100MSD NOP RET SEC:SETB RS1 MOV R7, #0AH SEC_LP:LCALL T100MSD DJNZ R7,SEC_LP NOP CLR RS1 RET END
/
本文档为【门禁系统密码锁设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索