基于8086微机的多功能密码锁项目分析
2017-02-23熊佩轩万在红贾宇琪胡伟倩
熊佩轩,万在红,贾宇琪,胡伟倩
(南昌航空大学 信息工程学院,江西 南昌 330000)
基于8086微机的多功能密码锁项目分析
熊佩轩,万在红*,贾宇琪,胡伟倩
(南昌航空大学 信息工程学院,江西 南昌 330000)
本课题以8086微处理器为基础,设计了一个简单的低成本的多功能密码锁,旨在解决人们日常生活和工作当中遇到安全问题。在Proteus仿真软件中利用8086微处理器可编程的特点[1],以汇编语言为媒介[2],最后通过矩阵键盘输入和LCD1602液晶显示实现了多功能密码锁的开启、关闭和报警以及密码修改、液晶显示密码等一系列功能,成功地担任了防盗卫士的角色。
多功能密码锁;Proteus仿真;8086微处理器;矩阵键盘;LCD1602液晶屏
随着科学技术的高速发展和高新技术的广泛应用,电子技术在人们的日常生活中所起的作用越来越大,并深深地渗透到了人们的生活,工作和学习的各个方面[3]。人们生活水平的不断提高以及工业领域专业性的提高,如何实现家庭防盗和加密的机械控制这一问题也变得尤为突出。传统的机械锁构造简单,被撬的事件屡有报道,电子密码锁由于其安全性较高,成本低廉,简单实用,开发性好等优点受到了广大用户的青睐,得到了广泛的应用,本课题便是基于8086微处理器的多功能密码锁。
微电子技术的高速发展,出现了磁控锁,声控锁,超声波锁,红外线锁,指纹锁,遥控锁等,这些锁具有机械锁无可比拟的高保密性能,特别是可以在特定的环境系统中,按照指定的逻辑关系实现系统的程序控制。但是由于成本较高,而且保密性超高,一般供给个人的箱,柜等等,这在一定程度上也影响了这一类型产品的大范围推广应用。
此多功能密码锁是一款成本低廉,性价比高的密码锁,可以通过以此为基础拓展更为丰富多样的解锁方式,例如当下流行的指纹和虹膜解锁,为了达到密码锁所需实现的基本要求,采用了8086微处理器作为核心,矩阵键盘作为输入设备,LCD液晶显示作为输出设备,同时也是该产品和用户的一个交互窗口,该锁还提供了密码修改功能和报警功能,当使用该产品时,液晶显示屏会显示PLEASE INPUT PASSWORD的提示信息,当密码输入正确指示灯亮起,同时显示OPEN字样,当密码输入错误时发出错误警告声音,同时显示ERROR字样,还可以实现对密码的修改,修改成功之后,LCD会提示修改成功并提示新密码。基于此多功能密码锁也可以与各类防盗报警电路配合达成更为强大的防盗报警功能。
1 硬件系统设计
1.1 系统硬件设计总体框架
系统硬件模块包含:微处理器控制模块,采用8086芯片;LCD液晶显示模块,采用LCD1602液晶屏;键盘输入模块,采用4×4矩阵键盘;开锁报警模块,采用蜂鸣器,LED以及电机构成。系统总框架如图1所示。
图1 系统总框架
1.2 8086系统模块
微处理器控制模块使用8086作为CPU,74LS373作为地址锁存器,可编程并行I/O接口芯片8255A作为并行I/O接口电路,如图2所示。8086CPU由于引脚数目的限制,数据地址信号等引脚是分时复用的,构成微型计算机系统必须外接总线配置芯片将复用的信号加以分离。利用74LS373将总线上的地址码暂存起来。在CPU与外部通信时,必须先发送存储器或I/O端口的地址才能正确地发送数据[4]。通过74LS245实现8086与8255A芯片的双向数据传输,并行接口具有传送数据速度快、要求传输线较多的特点[5]。本系统中8255A选择的是A组,以工作方式0输出;B组以工作方式0输出;C组端口高半字节输入,低半字节输出。A组连接LCD液晶显示器8位数据线,B组连接低3位连接LCD液晶显示器的控制引脚,同时控制报警器和开锁指示灯以及电机。C口连接矩阵键盘[6]。
图2 微处理器控制模块
1.3 LCD液晶显示模块
LCD液晶显示模块使用LCD1602液晶屏,实物如图3所示,受8255A的PA及PB口的低三位控制,电路如图4所示,它是一种专门用来显示字母、数字、符号的点阵型液晶模块,显示能容为16×2即可以显示两行,每行16个字符液晶显示方阵[7]。LCD1602为16脚,1,2脚分别为电源地(VSS)和电源正极(VDD),3,4,5脚是控制引脚分别为数据/命令选择端(RS)、读/写选择端(R/W)、使能信号(E),7—14脚为8位的数据传输引脚,15,16脚为背光LED的电源的正极(LED+)和负极(LED-),若要向LCD中写入命令则使RS=0,RW=0,E=1,D0-D7=指令码。写入数据则使RS=1,RW=0,E=1,D0-D7=数据。常用指令码有初始化指令码0011 1000。
图3 LCD1602实物
图4 LCD液晶显示模块
LCD1602的第一行字符起始显示方阵地址为80 H,该行其余的显示方阵可以通过80 H加上偏移地址来得到地址码,先使RS=0,RW=0,E=1通过D0-D7写入地址码,再使RS=1,RW=0,E=1通过D0-D7写入字符对应的表格数据码,即可在LCD指定位置上显示一个指定的字符。
1.4 矩阵键盘模块
矩阵键盘模块采用四脚开关组成4×4键盘,实物如图5所示,它与8255A芯片的PC端口相连,电路如图6所示,本系统中使用了其中的12个键,包括数字键0-9和输入键input和修改密码键write。矩阵键盘是通过软件实现对4×4的按键进行动态逐行扫描,并实现按键的单次点击识别。通过使用8255A芯片PC端口低半字节输出、高半字节输入,再将键盘状态读取至8086中,接着对数据进行处理并识别被点击的按键,最终将输入保存的六位数据进行密码核对或密码修改。
图5 矩阵键盘实物
1.5 开锁报警模块
开锁报警模块分为3个部分,如图7所示,由8255A芯片的PB口的高四位和低四位分别进行控制,当输入密码核对正确时,控制PB4口输出低电平,使开锁指示灯亮起,同时带铁芯的电感线圈由于电流产生磁性,将密码锁的锁芯吸起使密码锁得以打开。当程序识别输入密码错误时,通过8086控制8255A芯片的低四位输出低电平,通过与非门使蜂鸣器发出报警,通过增加外围电路可以实现多种报警方式,例如添加蓝牙通信模块可进行近距离无线报警。
2 软件系统设计
本系统的软件设计分为3个部分,主要包括驱动LCD1602液晶显示程序设计、矩阵键盘程序设计以及密码存储核对及修改程序设计,系统主程序流程如图8所示。
3 结语
本系统设计以8086作为多功能密码锁监控装置的检测与控制核心,通过编程实现对密码锁开关的控制。其特点是使用灵活性好,用户可以随时修改密码,防止由于钥匙丢失而引起的安全性下降。而不像机械锁必须佩戴钥匙才能开锁。随着科技发展和人们生活需求的提高,磁卡型、遥控型、指纹型电子锁已成为现在的发展趋势,并且此密码锁基于8086编程灵活,能够以此为基础增加外围模块,拓展出更为强大的功能,拥有较为广泛的市场前景。
图7 开锁报警模块
图8 主程序流程
[1]谢龙汉,莫衍.Proteus电子电路设计与仿真[M].北京:电子工业出版社,2012.
[2]王庆生.汇编语言程序设计教程[M].北京:人民邮电出版社,2013.
[3]阎石.数字电路技术基础[M].北京:高等教育出版社,2006.
[4]尹建华.微型计算机原理与接口技术[M].2版.北京:高等教育出版社,2008.
[5]顾晖,梁惺彦.微机原理与接口技术—基于8086和Proteus仿真[M].北京:电子工业出版社,2011.
[6]何宏.微机原理与接口技术—基于Proteus仿真的8086微机系统设计及应用[M].北京:清华大学出版社,2015.
[7]郭天祥.新概念51单片机C语言教程—入门、提高、开发[M].北京:电子工业出版社,2009.
Analysis on multi-function combination lock project based on 8086 microcomputer
Xiong Peixuan,Wan Zaihong*, Jia Yuqi, Hu Weiqian
(Information Engineering College of Nanchang Hangkong University , Nanchang 330000, China)
This topic is based on 8086 microprocessor, and designs a simple low cost of multi-function combination lock, aiming at solving safety problems of people’s daily life and work. Take advantage of the characteristics of 8086 microprocessor programmable[1]in the Proteus simulation software, with assembly language as the medium[2], at last, through matrix keyboard input and LCD1602 display to realize the multi-functional combination lock’s a series of functions of open, close and alarm, and password revision, and liquid crystal display password, successful serving as the role of security guards.
multi-function combination lock; Proteus simulation; 8086 microprocessor; matrix keyboard; LCD 1602
熊佩轩(1995— ),男,江西樟树,本科。
*通讯作者:万在红(1970— ),女,江西南昌,硕士,副教授;研究方向:工艺过程控制。