《基于8086的电子密码锁技术报告》由会员分享,可在线阅读,更多相关《基于8086的电子密码锁技术报告(32页珍藏版)》请在金锄头文库上搜索。
1、目 录第1章 实验简介11.1课题背景11.2 研究意义11.3 本文主要内容1第2章 硬件电路设计12.1相关芯片简介32.2 仿真电路总体设计5第3章 软件编程设计63.1系统概述63.2 程序流程图设计73.3 按键控制93.4 字符动态显示10第4章 系统实现10第5章 与军事方面的联系11第6章 结论116.1 设计总结116.2 收获与体会116.3 缺点与不足11第1章 实验简介1.1课题背景在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以锁的办法来解决。这种办法不仅给不法分子带来了可乘之机,而且传统的机械式开锁也给人们的出行带来了不
2、便,最重要的是一旦钥匙丢失后安全性也大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用需要,增加其安全性,用电子密码锁代替钥匙锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。1.2 研究意义在安全技术防范领域,具有防盗换码功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差等缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着人们对安全的重视和科技的发展,许多电子智能锁。但是这些产品的特点是针对特定的指纹和有效磁卡的,只能适用于保密要求的箱、柜、门等。而且指纹识别器若在公共场所使用存在容易机械损
3、坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广,鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。此外,可以通过编写汇编语言程序以及硬件电路仿真设计来提高我们分析问题、解决问题的能力。1.3 本文主要内容本文介绍电子密码锁的软硬件设计,下面简单介绍成品的功能与操作。实现的功能:电子密码锁主要由一片8086CPU,一片74LS138译码器,三片74LS373,一片74LS245缓冲器,一片8255A及数码管构成,通过软件编程以及硬件链接可以实现四位密码的设定、更改以及显示,通过判断密码的正确与否来控制锁的开关。具体操作:输入密码:
4、(1)、开始执行时数码管每一位都显示“米”,点输入密码数码管只有第一位显示“米”,点击数字键进行数字选择;(2)、按下“确认”键后跳到第二个数字,操作同第一步;(3)、当四个密码选中完毕,按下“确认输入”键,显示输入的密码; (4)、按下“开锁”键,若密码正确,同时显示*YES,密码锁打开;(5)、按下“开锁”键,若密码错误,则显示ERRO,密码锁不能打开,按下“输入密码”键,即可重新输入密码。更改密码: (1)、在显示*YES时,按下“更改密码”键后,输入新的四位密码; (2)、按下“确认输入”键,显示新密码,按下“确认”键,即可设定新密码。错误警报: 若输入错误密码超过5次,警报会自动响起
5、,只有再次输入正确密码后方可解除警报。第2章 硬件电路设计2.1相关芯片简介1. 8255第一片8255定义A.B.C口都为输出状态,A.B口控制数码管的输入口,对应相应的段码表,来显示。C口的PC0,PC1经过2-4译码器,来激活数码管1,2,3,4通道,并采用00,01,10,11,循环输出的方式,使数码管通道循环激活,实现动态显示。第二片8255定义A,B,C口都为输入状态,对应输入相应的按钮状态,对应相应的程序,实现相应功能。2. 8253使用0通道,方式3,对输入的始终信号分频,当输入密码次数大于5次时,初始化8253,并发出警报提示声。当输入密码正确后,激活1通道,警报提示声接触。
6、3. 2-4译码器由于8086运行速度过快,数码管动态显示出现显示不全的现象,因此PC0,PC1输出经过2-4译码器之后,再激活数码管,起到缓冲作用。4. 16位数码管16位数码管的数码管,由16个引脚控制,低电平有效,其中A-H控制外圈0,K-M控制内部* S1-s4是通道控制,高电平有效。2.2 仿真电路总体设计 8086CPU输出可编程并行接口8255A总线连接数码管控制连接警报器控制按钮本实验设计中,硬件部分涉及到了8086CPU、可编程并行接口8255A,并配合74LS373锁存器、74LS245缓冲器、74LS138译码器等基本元器件,实现了设想的电子密码锁。8255A:如图2-6
7、,8255A的D0D7端口与CPU数据线ADOAD7相接,CPU通过控制线的片选、读、写信号接口对8255A进行读、写与片选操作。外设接口端的A0-A7八个开关连接245的A0-A7端口,将外设信息传送到245中,键入密码输入、密码确定、修改密码等多种功能。图2-6 开关功能如图2-7,A口的PA0-PA7端口通过锁存器与数码管相连用于外圈显示,B口的PB0-PB7端口通过74LS373锁存器与数码管进行连接用于内部“米”字格的显示。第3章 软件编程设计3.1系统概述密码锁是一种通过密码输入来控制电路或芯片工作,从而控制机械的开关和闭合,完成开锁闭锁任务的电子产品。它的种类很多,有简易的电路产
8、品,也有基于芯片的性价比较高的产品。现在运用较广的电子密码锁是以芯片为核心,通过编程来实现的,其性能和安全性已大大超过机械锁。其特点是保密性好,随机开锁成功率几乎为零。密码可变,用户可随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。无活动零件,不会磨损,寿命长。使用灵活性好,不像机械锁必须佩带钥匙才能开锁。3.2 程序流程图设计密码的输入与判定初始化更改密码按数字按钮确定 换位 位数+1 位数=4重新输入 N Y显示E R R O判定 N Y* Y E S开锁图3-1 密码的输入与判定密码的更改更改密码按数字按钮确定 换位 位数+1 位数=4重新输入 N Y显示E R
9、R O判定 N Y* Y E S开锁图3-2 密码的更改3.3 按键控制(1)、控制字 给8255A输入端口控制字:void fun82531() _asm mov dx, 0x8006 mov al, 0x37 out dx, al outp(GATE0,0x02); outp(GATE0,0x00); void fun82532() _asm mov dx, 0x8006 mov al, 0x77 out dx, al outp(GATE0,0x99); outp(GATE0,0x99); (2)、密码键入控制整个过程中主要是对是否有按键信息输入进行扫描判断,并将所得信息与灯管编号进行比对
10、,确定所选择要键入数字的灯管。当目前的灯管数字被选出后,自动跳到下一个灯管,直到四位数字全部选择完毕。 3.4 字符动态显示四位密码选出后,显示四位选定数字,然后检测密码正确性,8255A通过端口A、B、C读取指令,根据检测结果,密码正确则输出代码显示*YES,错误则显示ERRO。 见附录:检测密码正确性更改密码,键入“更改密码”控制字后,与输入密码的流程相同,先选择灯管,待选定数字后跳至下一个,直到四位数字全部选定,然后键入“确认更改”指令,则密码更改成功。见附录:密码更改第4章 系统实现4.1 proteus仿真实验图4-1 Proteus仿真图如图4-1,为本实验的Proteus仿真模拟
11、图,整个实验共用到8086CPU一个、74LS245一个、可编程并行接口8255A一个,74LS273锁存器三个、74LS138译码器一个、数码管一个、与非门两个、开关八个、电阻八个。第5章 与军事方面的联系电子密码锁对于军事方面有很大意义,应用也十分广泛。部队的许多地方都比较重要,比如弹药库、武器库,和一些存放有关于军事机密的地方等,除了要有人看管以外,还要上锁,而对于普通的锁来说,电子密码锁无疑是较为便捷和安全的。用钥匙解锁的话,钥匙可能丢失,也可能被人偷去复制,安全性较低,而电子密码锁不用携带钥匙,只需要记住密码,也不用担心丢失和被他人窃取,在更换密码上电子密码比较方便;在外面的只有密码
12、输入装置,遇到暴力破解时也能保证物品的安全。第6章 结论6.1 设计总结通过对电子密码锁的设计,从设计硬件电路到编写代码,再到对程序的调试,在整个的设计过程中学到了很多。例如,我们用到了8255A的并行接口,将二进制的控制信息传入8086CPU中处理,选择对密码是否正确进行调整。与此同时,我们又通过这次产品的设计加深了对硬件知识的理解以及常用芯片功能的掌握。在使用8255A和8253的时候,要对其进行初始化,这初始化程序的编写,有助于对这些接口芯片的工作原理的理解。总之,在实验中自己动手,把理论知识用于实践,从中能够学到很多。6.2 收获与体会通过这一个多月以来对电子密码锁的硬件电路的设计,以及对软件程序的编写,我们又对计算机硬件技术基础这门课程有了更深一层的理解。与此同时,我们还有如下收获:首先,我们能熟练掌握计算机硬件技术知识,其中包括硬件电路设计和软件编程设计等内容。计算机硬件技术基础是比较难学的科目,尤其是对那些没有过编程基础的学员来说,刚开始接触时感觉力不从心。但是,通过设计这个电子密码锁,我组成员都能对硬件设计以及软件编程熟练掌握,并且能实现原计划的功能,效果比较显著。其次,增强了我们组员之间的团结协作的能力。通过实验,我们明白了团队力量的强大,只有一个团队能够齐心协力、合理分工,工作才能有条不