多功能密码锁的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、目的 (3)
二、内容 (3)
三、设计任务 (3)
四、方案选择及原理 (3)
五、所用器件 (3)
主要器件简介 (4)
六、原理图 (6)
1、8086和存储器连接 (6)
2、CPU与8255A连接 (6)
8255A的A口与键盘连接 (7)
4、8255A的B、C口 (7)
5、完整电路图 (8)
七、软件设计思路 (8)
八、流程图 (9)
1、主程序 (9)
2、子程序 (10)
九、程序代码 (10)
十、设计中的难点 (12)
十一、收获及体会 (13)
十二、参考文献 (14)
多功能密码锁
一、目的
1、了解和掌握8086,8255,等接口芯片以及LED显示器的原理和功能;
2、能用这些接口芯片构建一个简单的系统控制对象,
3、掌握接口电路的综合设计与使用;
4、通过自己动手,进一步了解计算机得工作原理,接口技术,提高计算机硬件,
软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。
二、内容
密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同
显示00字样。当输入密码错误时,发出错误警告声音,同时显示FF字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。
三、设计任务
1、选用8086和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
7、完成设计说明书(列出参考文献,所用器件型号)。
四、方案选择及原理
这次的设计要求是在密码输入正确时输出开锁电平和显示“00”,密码错误时显示“FF”和蜂鸣器发出报警声音等,我们采用8255A的B口作为显示器的输出,c口为选管和接蜂鸣器,开锁及报警电平。对于6次密码错误输入,刚开始用8253计数器,后来发觉可以直接用软件控制,线路简单,程序也很易实现。用蜂鸣器发声次数来区分确认和警告声音,一声表示确认,三声表示警告。键盘上的按键用SW-PB共12个,0-9为数字键,连接到8255A的A口对应二进制数,还有确认键和密码修改键,按下表示A口接收到低电平信号。
五、所用器件
CPU8086、并行接口8255A、存储器27c513、地址锁存器8282、74LS138、石英晶振,8284A、共阴极数码管、非门74LS04、蜂鸣器,电阻、开关等。
主要器件简介
CPU8086
8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB.
并行接口8255
Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、
可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
地址锁存器74LS138
74LS138 为3 线-8 线译码器,共有54/74S138和54/74LS138 两种线路结构型式,其工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用G1、/(G2A)和/(G2B)可级联扩展成24 线译码器;若外接一个反相器还可级联扩展成32 线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
六、原理图
1、8086和存储器连接
存储器地址:0000H~3FFFH
2、CPU与8255A连接
8255A地址分配:PA800H PB802H PC804H 控制寄存器806H
为了满足8255A的四个端口地址必须为偶地址这一要求,将8255A的A1、A0分别与8086系统地址总线的A2、A1相连,并且,CPU在对8255A的端口进行访问时,总是将地址中的A0设置为0.
3、8255A的A口与键盘连接
共12个按键,0-9为数字键,每个十进制数对应PA3~PA0四位二进制数,确认键和修改密码键按下时,PA4和PA5为低电平。
4、8255A的B、C口
C口低四位用了低三位,都是输出高电平有效,高四位用了两位,输出低电平有效。
5、完整电路图
七、软件设计思路
由于我们的硬件设计部分没有用到8259和8253,主要器件是8086和8255,所以使得我们的设计简单很多。程序也主要解决如何利用8255来实现所要求的功能这个问题。首先需要初始化8255,A口作为输入,B、C口作为输出。一开始纵观设计内容及要求,可以大致知道需要三个子程序,修改密码程序、开锁程序、闭锁程序。由A口输入的数据决定调用哪个子程序,而相关子程序需要具有所要求的功能,比如修改密码程序需要在修改成功后发出蜂鸣声,开锁程序需要输出开锁电平和显示00字样,等等。为方便程序编写,采用输入数据逐位与正确密码相比的方法,只要有一位不相同即转入闭锁程序,而在闭锁程序中需要设置计数值,当转入闭锁程序六次也即输入错误密码六次则输出报警电平报警。这样则能完成所需的所有功能。程序设计思路基本如此。按此思路画完流程图之后则进入程序设计阶段。大框架已经确定下来,现在需要决定一些重要的细节。比如如何安排计数值的位置,子程序的返回处,等等。经过多次试探与检验,最终将这些细节确定下来。最后将程序开始的初始化、退出程序补充完整,整体再检查一遍,查漏补缺,即可完成设计。