基于8086的电子密码锁设计与仿真

基于8086的电子密码锁设计与仿真,第1张

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。应用较广的电子密码锁是以芯片为核心,通过编程来实现的。

设计实现的功能 输入密码:

(1)、开始执行时数码管每一位都显示“米”,点输入密码数码管只有第一位显示“米”,点击数字键进行数字选择;

(2)、按下“确认”键后跳到第二个数字, *** 作同第一步;

(3)、当四个密码选中完毕,按下“确认输入”键,显示输入的密码;

(4)、按下“开锁”键,若密码正确,同时显示*YES,密码锁打开;

(5)、按下“开锁”键,若密码错误,则显示ERRO,密码锁不能打开,按下“输入密码”键,即可重新输入密码。

更改密码:

(1)、在显示*YES时,按下“更改密码”键后,输入新的四位密码;

(2)、按下“确认输入”键,显示新密码,按下“确认”键,即可设定新密码。

错误警报:

若输入错误密码超过5次,警报会自动响起,只有再次输入正确密码后方可解除警报。

硬件电路设计 相关芯片简介 1. 8255

第一片8255

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第2张

定义A.B.C口都为输出状态,A.B口控制数码管的输入口,对应相应的段码表,来显示。C口的PC0,PC1经过2-4译码器,来激活数码管1,2,3,4通道,并采用00,01,10,11,循环输出的方式,使数码管通道循环激活,实现动态显示。

第二片8255

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第3张

定义A,B,C口都为输入状态,对应输入相应的按钮状态,对应相应的程序,实现相应功能。

2. 8253

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第4张

使用0通道,方式3,对输入的始终信号分频,当输入密码次数大于5次时,初始化8253,并发出警报提示声。当输入密码正确后,激活1通道,警报提示声接触。

3. 2-4译码器

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第5张

由于8086运行速度过快,数码管动态显示出现显示不全的现象,因此PC0,PC1输出经过2-4译码器之后,再激活数码管,起到缓冲作用。

4. 16位数码管

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第6张

16位数码管的数码管,由16个引脚控制,低电平有效,其中A-H控制外圈0, K-M控制内部*

S1-s4是通道控制,高电平有效。

仿真电路总体设计

基于8086的电子密码锁设计与仿真,第7张

本实验设计中,硬件部分涉及到了8086CPU、可编程并行接口8255A,并配合74LS373锁存器、74LS245缓冲器、74LS138译码器等基本元器件,实现了设想的电子密码锁。

8255A:如图,8255A的D0~D7端口与CPU数据线ADO~AD7相接,CPU通过控制线的片选、读、写信号接口对8255A进行读、写与片选 *** 作。外设接口端的A0-A7八个开关连接245的A0-A7端口,将外设信息传送到245中,键入密码输入、密码确定、修改密码等多种功能。

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第8张

开关功能

如图,A口的PA0-PA7端口通过锁存器与数码管相连用于外圈显示,B口的PB0-PB7端口通过74LS373锁存器与数码管进行连接用于内部“米”字格的显示。

软件编程设计

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第9张

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第10张

按键控制 (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)、密码键入控制

整个过程中主要是对是否有按键信息输入进行扫描判断,并将所得信息与灯管编号进行比对,确定所选择要键入数字的灯管。当目前的灯管数字被选出后,自动跳到下一个灯管,直到四位数字全部选择完毕。

字符动态显示

四位密码选出后,显示四位选定数字,然后检测密码正确性,8255A通过端口A、B、C读取指令,根据检测结果,密码正确则输出代码显示*YES,错误则显示ERRO。

更改密码,键入“更改密码”控制字后,与输入密码的流程相同,先选择灯管,待选定数字后跳至下一个,直到四位数字全部选定,然后键入“确认更改”指令,则密码更改成功。

系统实现

proteus仿真实验

基于8086的电子密码锁设计与仿真,基于8086的电子密码锁设计与仿真,第11张

如图,为本实验的Proteus仿真模拟图,整个实验共用到8086CPU一个、74LS245一个、可编程并行接口8255A一个,74LS273锁存器三个、74LS138译码器一个、数码管一个、与非门两个、开关八个、电阻八个。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2639248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存