南江萍 郑凯 谢国坤 刘珺蕙 王娟娟 王亚亚
摘 要:本文主要研究的是基于AT89C51单片机的子琴,设计了系统的主要电路模块,并应用Proteus仿真软件和Keil软件编程软件,使用单片机C语言对单片机进行编程,实现了使电子密码锁按照需要动作的要求,一定程度上保证了财产安全。
关键词:AT89C51单片机;AT24C02记忆芯片;电子票密码锁
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。因此,锁具就成为人们防盗的最重要工具,到目前为止绝大多数人使用的仍然是传统的机械锁。然而,由于目前机械锁具的互开率较高,即使是那些质量控制严密的机械锁具,也可以通过某种特定的手段打开,而不会因紧急解锁而破坏锁具,正是由于机械锁出现的这些弊端,为出现了这种新型锁——电子密码锁,而创造了非常大的发展空间。
随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。本设计选用单片机及其外围电路元器件实现系统的设计。
1 系统总体设计
本设计采用AT89C51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现以下功能:
1)正确输入密码前提下,开锁提示;
2)错误输入密码情况下,蜂鸣器报警;
3)密码可以根据用户需要更改;
4)断电存储功能。
本设计主要由单片机、行列式键盘、LED显示器和密码存储器以及蜂鸣器组成。电子密码锁系统设计总框架如图1所示。
2 系统硬件设计
2.1 AT24C02记忆芯片
现在的AT24C02芯片,都是含有2k位串行的CMOS E2PROM,如果用8位字节来计算的话可以存储256个。CMOS技术是单片机的领域的又一重大突破,它的问世大大减少了元器件的损耗。AT24C02内部的书写缓存器可以运行16个字节,这个元器件在工作的时候会通过IIC总线的接口进入,而且为了保护这个元器件,我们写出了一个专属于它的写保护程序。
2.2 键盘电路的设计
本设计所使用的键盘为4×4的矩阵键盘,该矩阵键盘可以很有效的减少键盘和单片机接口I/O线数的占用,当按键有点多时,一般使用这种方法。其整体模框图如图2所示。
在设计时每一条水平(行线)和垂直线(列线)的交叉处不直接接通,而是选择通过一个按键来加以连接,此时只需要P条水平线和Q条垂直线来加以贯通就能够组成P×Q的矩阵键盘。
当它确认存在这种按键时,下一步那就要看到底哪个按键是被按下的。常常会有两种方法来甄别这个按键:一种方法是我们经常用的按行扫描的查询方法;另一种是更快的线反转方法。
对照图2所示的4×4矩阵键盘,说明线反转的工作原理。第一步我们先要确定键盘上是否存在按键,单片机的I/O口是不是发送了相对齐全的扫描字符到键盘,第二步我们要看一下线路的状态来进行识别。具体的操作方法为:将所有的扫描字00H输出到行线,然后将全部的列线设置为低电平,接着我们将列线的电平此时的状态读入累加器A.如果确实有按键的话,那么终究会有一根行线的电平被顺势拉到至低电平从而会让行线不全为1。
通过将列线调整为低电平来判断键盘上的哪些键被按下从而检验该行的输入状态。具体的操作方法是:逐个将低电平发送到相对应的列线,然后通过检查所有的行线此时的状态。如果都是1,则按下的键不会在这个列中;如果不都是1,则按下的键一定在这个列中,并且这个键是与零平行线的交汇处的键。具体的功能设计如上表。
2.3 显示电路模块
在这个硬件系统设计中,系统里的显示电路为了给使用的人提供提示用的。为了達到用户友好界面的目的,显示部分由LED显示器完成。插上电源后,程序自动调入初始密码,此时依次输入:123456,然后按[#](确认)键,此时锁会打开,可以看到显示true,密码锁打开。当显示出现:password,证明密码初始化完成,此时初始密码即为:123456,显示电路的原理图如下的图3所示。
2.4 开锁电路模块
在系统设计中,使用发光二极管来指示用于带动电子密码锁动作的电机是否工作,如果发光二级管点亮,说明已解锁;如果发光二级管不亮,则证明锁并没有被打开。下面的图4为开锁电路指示图。当P2.0输出为低电平时,二极管点亮,表示电子密码锁的电机动作,密码锁打开。
3 系统软件设计
3.1 系统软件设计
根据系统的软硬件需求,为硬件设计匹配相符合的软件设施,在软件设计的一开始,对程序的总框图进行了设计。图5是系统的总设计流程图。
3.2 键盘及子程序的设计
在键盘使用过程中,当按键没有被按下的时候,单片机就会自动在主程序中循坏工作。当我们随意按下其中的任何一个键时,系统立即会寻找与此相匹配的子程序来进行运行,直到运行结束后自动返回。程序流程如图6所示。键盘扫描的部分程序如下:
4 结论
本系统仿真是在Proteus软件上进行,在使用该软件进行仿真之前,首先要在Keil 软件来进行系统软件的调试。目的检测软件程序是否能够流畅、准确的运行,各个子程序的运行顺序是否正确,各子程序之间的衔接是否顺畅。系统程序调试结果能够实现系统设计要求。
通过本系统的软硬件设计,电子密码锁系统功能能够达到预计性能要求,能够实现如下内容:正确输入密码前提下,开锁提示;错误输入密码情况下,蜂鸣器报警;密码可以根据用户需要更改以及断电存储功能。
参考文献:
[1]袁轶珂.基于单片机的红外遥控电子密码锁设计[J].电子制作,2017(Z1):14-16.
[2]肖萌萌.电子密码锁控制电路设计[J].黑龙江科技信息,2017(15):38.
[3]汪国强,李尚甫,王飞,谢丽丽,王钦,孙柏.基于FPGA的四位电子密码锁设计与实现[J].无线电通信技术,2016,42(04):95-98.
[4]阮忠.基于单片机的电子密码锁设计[J].农业网络信息,2015(10):38-39.
[5]张恒坤.基于单片机的电子密码锁系统设计[J].黑龙江科技信息,2015(29):134.
[6]姜彬,居小琴.基于AT89C51单片机的电子密码锁系统设计[J].无线互联科技,2014(12):30+32.
[7]张霞.基于AT89C51单片机的电子密码锁系统设计[J].无线互联科技,2014(06):53.
[8]倪刚.基于AT89C51电子密码锁研究与设计[J].河南科技,2014(15):103-104.