电子密码锁设计及系统调试.docx
电子密码锁设计及系统调试摘要本文基于51单片机的电子密码锁设计。详细描述了电子密码锁的软件和硬件组件。该系统采用51单片机作为主控芯片。密码输入的数量通过矩阵键盘输入。输入密码后,输入的密码将与存储器中的密码匹配。如果匹配成功,则实现解锁功能。通过对系统软件的仿真和调试,证明该系统具有良好的稳定性,操作简单,安全性强,还可以实现远程监控和管理。总体应用效果良好,值得广泛推荐。关键词:电子密码锁;设计;调试目录1弓I言12系统设计22122.1.1主控芯片选型22.L2存储模块选型22.1.3显示模块选型22.L4数据传输模块选型222彳牛i-32.2.1单片机概述32.1.2单片机内部结构及功能部件42.L3单片机引脚介绍42.2.2矩阵键盘42.2.3*Li42.2.4LCD显示器52.2.5报警电路52.2.6电源电路62.2.7复位电路62.2.8日日ILL1卜72.2.9信号处理模块的设计73vl-73.1单片机程序的编制方法介绍73.2软件系统总体设计83.3tevl-84系统调试及分析105电子密码锁的硬件和软件调试125.1硬件调试过程中遇到的问题125.2软件调试过程中遇到的问题12“口*12参考文献14微型计算机包括单片机和嵌入式系统两种方式,近些年来,微型计算机发展迅速,且已经逐步淘汰了传统的计算机,并在诸多智能仪器中广泛应用,如在智能流量计,、电子密码锁、智能电表等均有所应用。微型计算机发展速度已经超过了诸多传统的计算机,并在工业、服务业均有所应用。微型计算机的诞生,并且不断的完善,现如今微型计算机开始逐步向智能化方向迈进。相对于传统的计算机来说,MeU本身具有体积小、功耗低等优势,同时生产的成本较低,应用较为广泛,尤其是在计算机和仪表一体化设计中有着更大的优越性和潜力。本次电子密码锁设计,通过MCU强大的信息处理能力,进而不断的将传统密码锁向智能化方向发展,为用户提供了较多方便的同时,也推动了相关行业的发展。因此,本文提出就基于51单片机单片机开发的电子密码锁设计,发挥MCU强大的信息处理能力,以此实现密码锁智能化、信息化、网络化发展。门禁系统是解决安全问题方案重要部分,通过门禁系统可以有效提高居家的安全性,降低财产损失,由此可知,门禁系统已经成为人们日常生活中不可或缺的重要部分。当下我国的电子信息技术发展较快,这也助推了门禁系统未来的发展。通过电子信息技术,可大大提高门禁系统的安全性,各种智能密码锁应用而生,列如键盘式电子密码锁、指纹特征识别系统、IC卡门禁系统等密码锁,其中IC卡门禁密码锁应用较为广泛,在很多的公共场所,列如图书馆、火车站等均有所应用。指纹特征识别系统主要是针对一些保密要求比较高,通过比较私人的场合,具有较高的安全性。当前,国内应用最多的电子密码锁采用的是单片机核心处理方式,无论是在系统编码和解码上均采用的是软件方式进行处理。相对于传统的机械锁具,电子密码锁比较容易操作,且使用较为方便。本设计是以51单片机为主控CPU芯片,利用矩阵键盘实现密码输入,通过将输入密码和原密码进行匹配,如匹配成功则执行开锁功能,如密码输入不正确,则LED灯闪烁,并且蜂鸣器发出警报,开锁不成功。如果连续3次或者输入密码时间过长,系统会启动自动锁定程序,用户无法再次键盘输入密码无效,只有应用管理员密码才能有效解锁,而且管理员可对该系统随时修改密码。2系统设计2.1 硬件模块选型2.1.1 主控芯片选型采用STC89C52单片机。STC89C52是STC公司推出的以MCS-51为内核的8位单片机,具有8K的FIaSh,内置4keepR0M,512字节的RAM,三个16位定时器,具有看门狗定时器,一个六向量2级中断结构,最高运行频率35MHz。在单芯片上,拥有灵巧的8位CPU和在系统可编程FlaSh,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。可直接串口下载,烧写调试也十分的方便。2.1.2 存储模块选型本次密码存储部分采用的是24C02芯片,通过IIC总线接口来操作的,是一个具备写保护功能、支持在线的编程、可以方便读写数据的串行器件。它的内部含有256个8位的字节,特点是工作电压可以在2.5V到5.5V之间,写入的速度快,可以多次擦写,有很强的抗干扰能力,而且体积小。芯片通过片内地址寄存器运用指定唯一的方法对字节进行读取,来完成对下一个存储单元的读写。每读写一个字节,寄存器自动加一。一次读写操作最多可写入8个字节的数据,大幅度地减少了写入所需的时间,方便又快捷。HC总线属于二线制,用来连接IC器件,通过串行数据线和串行时钟线为总线。2.1.3 显示模块选型本次密码锁设计的显示模块采用的是LCD12864显示屏,其分辨率为128X64,该分辨率足可以满足密码锁设计的要求。同时,该显示屏支持英汉显示,并且还支持并行串行显示,价格也比较便宜,性价比较高。因此,本次电子密码锁设计选用的是LCD12864作为系统的显示模块。2.1.4 数据传输模块选型本次电子密码锁设计的数据传输模块采用的是FC总线,FC总线由两根信号线组成,且这两根线分别为数据线和时钟线。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL±o同时I2C总线还可以允许连接多个微处理器以及各种外围设备,如可以连接存储器、LCD、A/D或者D/A转换器等等。以此能够大大提高数据运行的效率。2.2 主要硬件设计电子密码锁系统主要由51单片机控制器、4X4矩阵键盘、存储器、LCD显示器和报警电路等模块组成(见图1)。图1电子密码锁系统组成(1)把供电电源部分的电路设计和各路电源进行隔离处理。(2) 4X4矩阵键盘电路的设计以及液晶显示设计。(3)报警电路设计,利用指示灯和蜂鸣器设计本次的报警电路。(4)数据传输采用的是I2C总线设计,利用I2C总线进行密码锁数据传输。(5)电子密码锁存储器采用的是24C02存储器,通过24C02存储器用来存储电子密码锁设置的密码。2.2.1 单片机概述本次测量电路选用的是STC89C52单片机为处理核心。其中STC89C52包含8K字节的可编程Flash、32个可编程的I/O口线、三个16位的定时/计数器。STC89C52具有低功耗、成本低、具有较高的兼容性等优势,能够满足本次设计要求。如图2所示。图2STC89C52单片机2.2.2 单片机内部结构及功能部件STC89C52单片机是在一块芯片中集成了CPU,RAM,ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件。STC89C52单片机内包含下列几个部件:一个8位CPU;一个片内振荡器及时钟电路;8K字节ROM程序存储器;512字节RAM数据存储器;三个16位定时器/计数器;可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;32条可编程的I/O线(四个8位并行I/O端口);ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxDP3.0,TxDP3.1)直接下载用户程序,数秒即可完成一片;具有EEPROM功能;共内3个16位定时器/计数器,即定时器TO、Tl>T2;外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒;通用异步串行口(UART),还可用定时器软件实容现多个IJART。2.2.3 单片机引脚介绍STC89c52有40个引脚,32个为输入输出端口,同时内含有2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口。2.2.4 矩阵键盘电子密码锁系统输入模块采用4X4矩阵键盘。4X4矩阵键盘的行线为输出模式,列线为输入模式,且8个引脚均接在51单片机的IO口上,假设4排列线(输入)为DCBA,4排列线全部被设置成输入为。的模式,即DCBA=Oo00;4排行线(输出)为4位(dcba),将其设置为dcba=1111。矩阵键盘的程序设计采用的是C语言的SWITCH语句对键盘标号。通过位移循环的方式实现该功能。2.2.5 存储器电路在矩阵键盘电路的原理图中,可以看到VCC接高电平;VSS接公共地端(低电平)。其中VCC的电压为3.3V;VSS接公共地端。且WP为保护端,为了有效防止数据丢失,为此使得A0/A1/A2接低电平,并将AOH或AlH写入存储器,从而实现24C02的读写工作。图3为24C02存储器的引脚24C02存储器的模块电路。VCC 3 V图3 24C02存储器的模块电路图1.CD显示器1.CD12864液晶显示可支持英汉显示,并且操作较为简单、显示内容也较多,具有良好的兼容性。电子密码锁的显示模块采用的是串行输入模式,在该模式为高电平时,SCLK串行时钟在该模式下为高电平,则输入3个字节为指令,并显示ASCII符合周期。这3个字节输入后,显示屏会执行相应的功能和显示相应的字符。因此,为了实现51单片机电子密码锁在无操作时具有关闭背光电源的功能,需要将背光电源输出端接到三极管集电极上,并把发射集接地,51单片机的输入和输出口接基极,从而实现IO口控制LCD背光的目的,详细电路图如图4所示。9,OZr 9QCOZF98。CJF 980图4通过IO口控制LCD背光电源的电路图2.2.6 报警电路本次设计的报警电路,采用的是声光报警,声光报警是声音和光线同时报警,具有一定的同步性,报警电路的控制,是通过单片机的IO口进行控制,IO口输出高低电平从而达到控制的目的。在电子密码锁设计中,蜂鸣器的选择为声频为IOoOHZ和小功率三级管NPN3904,详细的电路图如5所示。图5声光报警模块电路图2.2.7 电源电路电子密码锁使用5V的直流电来供应核心控制需要,并且要将频率50Hz、有效值220V的单相交流电通过电源变压器来调节改变电压达到降低电压的目的;用整流电路将交流电转变为直流电,消除交流分量,减少对负载电路的影响;再通过滤波电路滤波来抑制防干扰,过滤掉电压中的纹波,使输出的电压更加平滑;最后通过稳压电路转换成稳定的5V直流电压。电源模块是相对重要的,是密码锁能够正常运作起来的动力源泉,电源模块原理图如图6所示。图6电源电路原理图2.2.8 复位电路本次设计复位电路有两部分组成,一是在复位引脚上接上一个IoUF的电容到VCC,引脚再接个IoK的电阻到地端,实现上电复位;另一个则是将开关与电容并联再接到VCC,通过电容的充放电,保持有一定时间的高电平,实现按键复位。如图7为复位电路原理图。VCC图7复位电路原理图2.2.9 振电路设计MCS-51单片机采用的是内部工作和外部工作方式两种。本研究根据实际的需要和简便,因此外接电容CI和C2,通过外接电容进而构成并联谐振电路,如图8为外部晶振时钟电路原理图。图8为外部晶振时钟电路原理图2.2.10 号处理模块的设计信号处理模块是将所收集到的数据通过滤波处理的方式进行处理,在处理之后,再将信号进行放大,在放大之后的信号通过带通滤波信号再次处理之后,可以进行二次放大,最后将二次放大的信号传入至AD转换器中,实现模拟信号转化为数字信号的目的。3软件模块设计3.1 单片机程序的编制方法介绍如何有效控制单片机,则需要通过软件的方式对单片机进行控制,一般所采用的是实时测控系统应用软件的特点对输入输出功能强的单片机控制运行,对于单片机的编程,主要采用的是两种编程方式,一是C语言编程;二是汇编语言编程。汇编语言编程与硬件环境关系较为密切,同时占用的内存容量较少,程序执行速度较C语言更快,比较容易实现,通过汇编语言所产生的文档,也较容易理解,通过C语言进行编程,可以大大提高调试工作效率,同时也能够方便编程人员进行C语言的编程。本次软件的设计步骤主要分为以下几点:模块划分、框图设计、程序编制等。对于模块程序设计,可以把题目划分为相对独立的功能块,根据不同的功能的时间顺序以及功能块之间的相互关系,绘出本次设计的流程图,通过将流程图进行细化,细化到每个字程序和模块程序。进而使得模块化程序结构层次更加加清晰,便于编制、阅读、扩充等。利于模块之间资源共享,可有效节省内存空间。实时测控程序的组成部分主要包括:I.初始化部分:初始化部分是对硬件部分的初始化操作;2.参数设置部分:可以通过周期采样的方式对参数进行有效的控制;3.中断请求管理:单片机在接受外部中断请求时,可以将程序转向键盘服务,否则显示故障信息。4.终端管理模块:对于终端管理模块主要采用的是修改参数、重新初始化、中止程序等等。程序框图完成后,要对硬件资源进行分配,如CPU操作时间短,指令较多,且编程较为容易。在程序汇总要设置RAM操作功能空间20H-2FH,这种方法不仅可以使得控制更加的方便,还能充分发挥单片机内部的存储器的功能,若再指定用户堆栈区,应留有余地。3.2 软件系统总体设计在本次设计中,软件调试所应用的是KEILC5LKElLC51开发环境具有编辑、编译、下载代码等一系列功能,可有效方便单片机的开发和使用。在电子密码锁控制系统的系统中,整个电子密码锁控制系统的程序采用的是两大模块设计,一是子程序模块;二是循环子程序模块。在子程序模块中主要包括显示部分的初始化。在主程序模块中,主要是循环子程序,通过不间断的循环子程序,从而完成子程序的部分功能,实现程序的测量和数据的计算。3.3 系统流程设计在实际的运行过程中,电子密码锁可能会遇到长时间无人操作的情况,这就需要电子密码锁系统能够自动的进入待机模式,在待机模式下,可以有效减少电子密码锁的功耗,如图10所示为电子密码锁的系统流程图。开始图10电子密码锁的系统流程系统密码输入错误的流程处理图,如图11所示。图11系统密码错误处理流程4系统调试及分析在系统调试过程中,因存储器24C02中的数据量超过了字节,而24C02的存储量为256字节,地址范围是OOHFFH,所以需将输入地址对255取余(假设输入地址是add,即add%255),以保证数据不丢失。软件仿真调试的结果证明,系统运行效果较好,符合设计要求。且系统开机界面效果如图12所示。*八牛米图12系统的开机界面效果在用户第一次使用该产品时,需要先设定密码,因此在本次设计中,设计了用户第一次使用该产品时.,所进行的系统初始界面的设计工作,界面详情如图13所示。,盛速用设置设置管理员部:务办牢记管理书?(1)设置管理员密码(2)牢记管理员密码图13系统初次设置的界面在正常使用的开锁界面中按下M键,就会进入系统菜单,按上、下键可进行相应的功能选择,系统菜单界面如图14所示。码码白 宙忠信 里典王 管开户图14系统的菜单界面电子密码锁系统的菜单显示功能仅显示4行字符,如果有更多层的菜单内容,只要在显示代码处将XX对4取余即可,即DiSPIayChar(xx%4,L"J")。开锁成功后,显示特有的文字,开锁指示绿灯亮,系统菜单界面如图15所示。图15开锁成功的界面效果5电子密码锁的硬件和软件调试在单片机系统中,如何检验系统的实用性,这就需要对单片机系统进行硬件和软件的调试工作。对于当下硬件中出现的错误很多是在软件调试的过程中被发现,但在此之前首先排除的硬件故障,在排除相关的硬件故障之后,然后在通过软件和硬件相结合的方式对整个单片机系统进行调试。5.1 硬件调试过程中遇到的问题在硬件调试的过程中可能会遇到以下几点问题:1.电源故障,电源故障是硬件设计中常见的故障之一,常见的电源故障有电源插座不良,焊接不牢固等,造成的接触不良问题。2.程序下载线插座故障,在下载线出现故障的时候,在下载程序的时候,系统会提示无法找到下载线。这就需要对下载线线序进行重新配置,再次下载程序。3.LCD显示不稳定:程序正常运行的时候,LCD虽然能够正常的显示,但市时常会出现黑屏。出现黑屏的可能是电阻虚焊造成的,用烙铁补焊电阻两个焊盘后LCD显示稳定,故障解决。5.2 软件调试过程中遇到的问题在软件调试的过程中,可能会遇到以下几点问题:LLCD显示故障:LCD虽然能够显示数据,但无法正常的刷新数据,对数据进行动态显示。解决这个问题,就需要对中断服务程序进行检查,并且查阅单片机的实用手册。在实际的调试过程中,其产生LCD无法正常动态刷新数据的原因是定时器中断使能没有及时的置位,这造成了定时器无法向单片机申请中断,进而造成定时器无法向单片机申请中断。2.按键消抖问题:当设定按键按下的时候,功能菜单就会由所变化,每按下一次按键,功能菜单作出相应的变换。但在实际的功能菜单中,菜单变化较快,且菜单选项较不稳定。造成这种现象的原因主要是因为,在设计工作时缺乏必要的按键消抖。虽然可以通过在软件中添加必要的延时程序,但延时程序所起到的防抖效比较有限,无法真正的取到必要的防抖作用。因此,在本次设计中采用了按键旁并联一个104电容可以消除抖动。于是在实验板上焊上一个104电容,适当减小了软件延时,按键抖动消除。结论本文通过对电子密码锁的研究分析,并对不同的密码锁所采用的芯片进行对比,通过综合分析,最终选择了51单片机芯片作为本次电子密码锁的核心结构,并对相关的硬件和软件的设计工作进行了详细的介绍,并完成了电子密码锁的设计。对于传统密码锁而言,本次设计的电子密码锁智能化程度较高,且在实际的操作过程中,电子密码锁使用较为方便,可以通过输入密码进行开锁。本文主要是通过51单片机单片机为核心,并结合C语言实现了本次电子密码锁的设计工作,并且完成了本次硬件设计工作,实现了人机交互、报警、数据存储等功能。实践表明,该系统能够满足相应的要求,具有良好的保密性,同时51单片机功耗较低,有第二次开发和功能扩展的特点,可以在该系统IO上设计无线收发模块,这样可以实现远程监控管理,以此增强电子密码锁的功能,进一步的提高电子密码锁的安全性。参考文献1王海军.一种基于单片机的教室用电子密码锁设计J.电子世界,2020(02):166-167.2汪建关,邵春枫,谷高明,缪传付.基于STC89C52单片机的电子密码锁设计J.现代信息科技,2019,3(22):38-40.3周明理.基于PLC的四位密码锁设计JL电子技术与软件工程,2019(20):100-101.4高皑琼.一种新型安全的电子锁的设计J.电子世界,2019(18):140.5王俊博.关于FPGA的电子密码锁系统的设计J.科学技术创新,2019(26):89-90.6项东,石存金,王宪磊.基于单片机的指纹识别在行李箱上的应用研究JL电子制作,2019(17):35-37+43.7徐金荣,高磊.多功能生物识别智能锁系统设计与实现J.电子技术与软件工程,2019(16):78-81.8潘达.智能门锁,开启智慧生活之门JL上海信息化,2019(06):24-28.9苏莎莎.基于HIBE的认证方案的研究与设计D.山西大学,2019.10雷鸣,宣秋宇,李鹏,鲁望周.电子寄存柜智能控制器的设计与实现J数字技术与应用,2019,37(05):21-23.11解翔宇,项远辉,林健谊,朱尚胜,孙薇,张昊,纪娟娟.智能电子密码锁设计JL电脑知识与技术,2019,15(12):176-180.12龙志.基于GSM与单片机智能电子密码锁的硬件设计浅析J.电子制作,2019(08):39-40+8.