《基于8086的电子密码锁设计与仿真.doc》由会员分享,可在线阅读,更多相关《基于8086的电子密码锁设计与仿真.doc(3页珍藏版)》请在三一文库上搜索。
1、基于8086的电子密码锁设计与仿真电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。应用较广的电子密码锁是以芯片为核心,通过编程来实现的。设计实现的功能输入密码:(1)、开始执行时数码管每一位都显示米,点输入密码数码管只有第一位显示米,点击数字键进行数字选择;(2)、按下确认键后跳到第二个数字,操作同第一步;(3)、当四个密码选中完毕,按下确认输入键,显示输入的密码;(4)、按下开锁键,若密码正确,同时显示*YES,密码锁打开;(5)、按下开锁键,若密码错误,则显示ERRO,
2、密码锁不能打开,按下输入密码键,即可重新输入密码。更改密码:(1)、在显示*YES时,按下更改密码键后,输入新的四位密码;(2)、按下确认输入键,显示新密码,按下确认键,即可设定新密码。错误警报:若输入错误密码超过5次,警报会自动响起,只有再次输入正确密码后方可解除警报。硬件电路设计相关芯片简介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口都为输入状
3、态,对应输入相应的按钮状态,对应相应的程序,实现相应功能。2. 8253使用0通道,方式3,对输入的始终信号分频,当输入密码次数大于5次时,初始化8253,并发出警报提示声。当输入密码正确后,激活1通道,警报提示声接触。3. 2-4译码器由于8086运行速度过快,数码管动态显示出现显示不全的现象,因此PC0,PC1输出经过2-4译码器之后,再激活数码管,起到缓冲作用。4. 16位数码管16位数码管的数码管,由16个引脚控制,低电平有效,其中A-H控制外圈0, K-M控制内部*S1-s4是通道控制,高电平有效。仿真电路总体设计本实验设计中,硬件部分涉及到了8086CPU、可编程并行接口8255A
4、,并配合74LS373锁存器、74LS245缓冲器、74LS138译码器等基本元器件,实现了设想的电子密码锁。8255A:如图,8255A的D0D7端口与CPU数据线ADOAD7相接,CPU通过控制线的片选、读、写信号接口对8255A进行读、写与片选操作。外设接口端的A0-A7八个开关连接245的A0-A7端口,将外设信息传送到245中,键入密码输入、密码确定、修改密码等多种功能。开关功能如图,A口的PA0-PA7端口通过锁存器与数码管相连用于外圈显示,B口的PB0-PB7端口通过74LS373锁存器与数码管进行连接用于内部米字格的显示。软件编程设计按键控制(1)、控制字给8255A输入端口控
5、制字: void fun82531()_asmmov dx, 0x8006mov al, 0x37out dx, aloutp(GATE0,0x02);outp(GATE0,0x00);void fun82532()_asmmov dx, 0x8006mov al, 0x77out dx, aloutp(GATE0,0x99); outp(GATE0,0x99); (2)、密码键入控制整个过程中主要是对是否有按键信息输入进行扫描判断,并将所得信息与灯管编号进行比对,确定所选择要键入数字的灯管。当目前的灯管数字被选出后,自动跳到下一个灯管,直到四位数字全部选择完毕。字符动态显示四位密码选出后,显示四位选定数字,然后检测密码正确性,8255A通过端口A、B、C读取指令,根据检测结果,密码正确则输出代码显示*YES,错误则显示ERRO。更改密码,键入更改密码控制字后,与输入密码的流程相同,先选择灯管,待选定数字后跳至下一个,直到四位数字全部选定,然后键入确认更改指令,则密码更改成功。系统实现proteus仿真实验如图,为本实验的Proteus仿真模拟图,整个实验共用到8086CPU一个、74LS245一个、可编程并行接口8255A一个,74LS273锁存器三个、74LS138译码器一个、数码管一个、与非门两个、开关八个、电阻八个。
链接地址:https://www.31doc.com/p-3409047.html