机械设计与制造 40 文章编号:1001=3997(2012)08—0040—03 Machinery Design&Manufacture 第8期 2012年8月 基于单片机系统的密码锁电路设计 术 王涛张喜瑞刘汉侃马庆芬李粤 (海南大学机电工程学院,海口570228) Design of Password Lock Circuit Based on Microcontroller WANG Tao。ZHANG Xi—rui,LIU Han-kan,MA Qing-fen,LI Yue (College of Electircal Mechanical Engineering,Hainan University,Haikou 570228,China) 。 _、t一 、.斤^玉 l,二、.—^", t一 十.、 "、. ・ " l一"、.— N H、| ‘ N H、.— t十 、- 事十 N H、.— 十 十 "、.— H 'I ^ N 呻 ’、 ’ 【摘要】用电子密码锁代替传统的机械式密码锁,能克服机械式密码锁密码量少、安全性能差的 缺点。因此研究和开发保密性能高的电子密码锁电路就成为现实的迫切需求。为此设计了门禁系统密 码锁控制电路,采用单片机STC89C52与E2PROM AT24C02作为控制芯片与密码存储器,结合键盘输 入电路、LCD12864显示模块、声光报警电路、开锁控制等电路,用C语言编写主控芯片的控制程序,完 成密码的写入与存储修改功能。该电路能够多次更改密码并具有报警功能。试验结果表明该电路能够 满足密码锁控制要求,并具有系统功能实用,成本较低等特点,有一定的实际应用价值。 关键词:密码锁:门禁系统 【Abstract l To replace the traditional mechanical cipher lock with electronic password lock COlt o'uer— come less code of the mechanical lock and poor confidentiliaty.Therefore,the research and development of high security electronic password lock circuit is the urgent need ofthe reality.1n order to design ccessa control circuit s ̄tem ofpassword lock.microcontroller STC89C52 and E2PROM AT24C02 are used as the master c ip and the data emory unimt,combined with the external keyboard input circuit,LCD12864 display,扎od— ule,sound and light alarm circuit sa well sa unlock circuit,the controlprogram ftohe master crop is compiled with C lnguaage to complete the function fwriotingpassword,storing nd modiafying.The circuit can change the password several times and has an laarmfunction.The experientmla results show that the circuit c吼s — sify the password lock control requirements with characteristics ofpractical application and low cost. Key Words:Password Lock;Access Control System 中图分类号:TH16;TS914.211+.7文献标识码:A l引言 传统的机械锁通常具有机械结构复杂,密码数量少,安全性 能差的缺点_lI。电子密码锁通过控制电路的设计再配以密码设计 片机的外围电路外接输入键盘用于密码的输入和功能的控制,外 接AT24C02芯片用于密码的存储,外接LCD12864显示器用于状 态显示。STC89C52接收到原始密码数据后,将数据传送给 STC89C52接收到新的输入密码数据后,将数 软件,能够根据实际情况增加密码的数量,并且具有便于修改密 AT24C04进行存储,据与AT24C04里存储的数据进行对比,若两者完全相同,则进行开 码的优点,因此,保密效果更好。目前门禁系统能够保证小区的安 若不相同,则不开门。用户通过显示界面的提示信息进行操 全,采用电子密码锁门禁系统作为防盗卫士较为普遍[2t。设计良好 门操作;才能将继电器开关关闭,开锁电路接通, 的密码锁控制电路是提高密码锁安全眭能的关键。许多学者对此 作,只有密码输入正确时,实现开门。硬件电路总图(图略)。包括 展开了多方面研究,文献目通过ST89C52单片机结合存储芯片设 从而将控制锁体的电机转动,LCD12864 计密码锁电路,应用电路设计软件Protet对电子密码锁的实现过 单片机STC89C52作为控制器的核心单元,键盘电路,时钟电路,控制电路等模块。 程进行仿真。文献 采用AT89—51单片机作为主控芯片结合外围 汉字图形点阵液晶显示模块,1键盘电路 显示,控制,报警等电路设计电子密码锁。文献【5J运用VHDL程序 2.实现数字密码锁的上锁,密码输入,密码校对,密码修改等功能并 键盘与单片机相连接时,每个按键都需要单片机的一 分别进行了MAX+PLLSII时序仿真,对整体电路进行了模拟仿 个I/O口,电路系统中一共需要12个按键,采用的是4x3矩阵键 真,能够满足密码锁功能要求。设计制作具有本机开锁和远程控 盘。在矩阵键盘中希望电源输出为高电平,这时候需要在电源输 制的电子密码锁电路,该电路能够进行用户密码设置,密码修改, 出端加上拉电阻使之输出稳定。综合考虑节约功耗与足够的驱动 密码显示等基本功能。具有简单实用的特点。 电流,选用上拉电阻为10Ko通过键盘输入密码,并根据输入密码 2系统总体设计 存储电路,复位电路,用户显示电路,报警电路及开锁电路等组 的有效性做相应的操作。 2显示电路 电子密码锁控制电路由密码输入电路,串口通信模 密码 2_戏 l2酾 汉字图形点阵液晶显示模块,可显示汉字及图 成。利用STC89C52单片机作为整个控制系统的核心元件,在单 形 在电路中实施显示人机交互信息。工作电压为3.3 ̄'5V,并且 ★来稿日期:2011-10—16★基金项目:海南省教育厅项目一‘三位一体’的农机化人才综合能力和创新意识培养模式的研究(20o7—11)。 海南大学校基金项目—海南大学农业机械化工程学科研究生创新能力的研究(2011-7) 第8期 王涛等:基于单片机系统的密码锁电路设计 41 具有字符对比度调节和背光功能。初始化状态下显示用户指定的 信息,STC89C52接收到数据后,将数据与AT24C04里存储的数 据进行对比,若两者完全相同,则液晶显示正确的信息;若不相 同,则液晶显示错误的信息。 2.3时钟电路 时钟电路中D31、D32用来切换电源供电和电池供电。当 VCC有电时,VDD端电压为5V-0.7V--4.3V,而BT1电池电压为 图1硬件电路PCB板图 图2实际硬件电路实物 3软件模块功能设计 主程序模块实现系统的初始化、时间显示、键盘的扫描、检 1主程序模块设计 3V。所以D62二极管截止;当VCC无电时,VDD端瞬间电压降到 3.3V一下,而BT1电池电压为3V。所以D62二极管导通,则电池 给PCF8563供电。确保芯片时钟一直处于工作状态。因为 32768Hz=2的l5次方,即分频15次后为1Hz,周期=Is。所以用 这个32.768KHz的晶振话时间比较准确,一般晶振的匹配频率 15PF-21PF。在本电路设计中采用的是15PF的电容。 2.4声光报警电路 STC89C52接收到数据后,将数据与AT24C04里存储的数 据进行对比,若不相同则报警。本设计中报警电路当出现输入的 密码不正确时,就会进行报警。发光二极管具有单向导电性,通过 5mA左右的电流即可发光,电流越大,它的亮度越强,但若电流 过大,则会烧毁二极管。电源供电V =5V,可以算出限流电阻R= 5v,5mA=10o0r lK,所以在发光二极管中加上阻值为1K的限流 电阻能保证发光二极管的正常发光。发光二极管的 。、 :接单片 机的P1.0口、P1.1口,通过P1.0、P1.1输出高低电平使发光二极 管发光。在本电路中,使用的是ULN2003驱动芯片增大电流驱动 蜂鸣器发声。要使蜂鸣器发声,至少要有20mA的电流通过,限流 电阻R=5V/20mA=250I' ̄。所以在这电路中限流电阻可选1OOQ。 2.5控制电路 控制模块电路由74LS373、ULN2003和继电器组成,控制模 块电路中74LS373实现I/O端口的复位,ULN2003增大驱动电 流,继电器控制锁体的打开与关闭。 2.6串行通信电路 串行通信电路由MAX232电平转换芯片与RS一9标准接头 组成。该电路主要完成RS一232电平与11'L电平之间的转换和单 片机与PC机之间的通信,系统通过串行口接收用户输入的命 令,然后执行相应的操作。 2_7稳压电源电路 门禁系统主控制部分电源需要用5V直流电源供电,其电路 中LM2575芯片为开关型稳压芯片,它内部集成了一个固定的振 荡器,只须极少外围器件便可构成一种高效的稳压电路,可大大 减小散热片的体积,而在大多数情况下不需散热片;内部有完善 的保护电路,包括电流及热关断电路等;其作用是把DC12V 电压转换为的DC5V电压。其主要原理是将稳压芯片输出的电压 接到反馈输入端,然后同内部电压基准比较,若电压偏低,则用放 大器来控制内部振荡器以提高输出占空比,从而提高输出电压。 2.8硬件电路PCB板图 整个硬件电路PCB板,如图1所示。焊接好的硬件电路实 物,如图2所示。 测是否接收到计算机发送过来的命令。主程序设计流程图,如图 3所示。 量 匝压蛰壅 图3主程序流程图 图4密码修改程序流程图 3.2键盘扫描程序模块设计 当程序运行时,会一直判断是否有按键被按下,当有按键被 按下时。系统会确定键值,再将键值存入到密码数组里,然后将输 入的密码与本身的密码做比较,若相同,则执行开门和显示正确 信息的操作;若不相同,则执行报警和显示错误信息的操作嘲。 3.3密码修改程序模块设计 当系统接收到用户输修改密码命令后,系统会一直判断有 无新密码输入,当第一次新密码输入完成后,将新密码存入新密 码数组中,然后等待第二新密码输入,再将第一次输入的密码与 第二次输入的密码比较。如果相同,则将新密码替换原来旧密码; 如果不同,则修改密码失败。密码修改程序流程图,如图4所示。 3.4读取键值程序模块设计 读取键值程序首先要初始化P2口,如图5所示。然后系统 一直检测是否有键按下,为防止抖动引起的按键合,需要延时流 程lOms后再次检测是否有键按下。如果确实有按键按下,则检 测是否按下的键已松开。如果检测到键已经松开,则P2口的状态 已经改变,通过读取P2口的状态就可确定按下的键。 3.5串口功能程序模块设计 执行程序之前,首先要设置串口波特率等相关串口参数,然 后上位机通过串口向下位机发送命令,并进入串口中断。下位机 根据接收SBUF的值做相应的处理。串El功能程可确定按下的 键。读取键值程序流程图,如图6所示。 3.6存储子程序模块设计 设计中数据的存储芯片选用的是AT24C04,该芯片是串行的 E2PROM,支持I2C总线数据传送协议。首先对AT24co4进行初始 化。并写入原始的数据进行存储,以便于以后新的密码与之比对。 NO.8 42 机械设计与制造 Aug.2012 入新密码,第一次新密码输入完成后,系统提示新密码确认,只有第 一次输入密码和第二次输入密码相同才能修改密码,系统会提示密 码修改成功,否则系统提示密码修改失败;用户按下3,系统返回开 始界面。管理员可通过指令对门禁系统进行管理,管理员在上位机 中输入o#,上位机返匣l—个操作菜单;输入1挣,返回实时时刻;输入 图5读取键值程序流程图 图6串口功能程序流程图 3.7显示子程序模块设计 显示子程序的主要功能是对当前的门控状态进行显示,显示 函数首先判断是写命令操作还是写数据操作,若是写命令操作,则 根据命令进行相应的操作,如清屏、设置显示模式等;若是写数据操 作,则在显示器上显示相应数据。程序流程图,如图7所示。 4试验及结果 4.1调试过程及电路功能 调试程序需要用到KEILC51、焊接好的样板、下载烧录软件、 上位机软件。首先打开KEILC51主程序,新建工程,新建文本框写 入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成 5 1单片机可执行的HEX文件。然后用5 1开发板相匹配的烧录软 件把HEX文件写入单片机。软件和硬件调试完成完成后,通过实 验对电路功能检验程序在KEILC51上调试,采用模块程序设计技 术,则逐个模块调好后再进行系统程序总调。将各个部分的硬件模 块合并成一个整体,把软件各个部分程亭合并到—个主程序中。软 件部分通过keil调试软件始整体调试,硬件部分用万用表来测试 硬件每部分的接通性。软件部分的测试主要方法是通过设置断点、 单步执行等方法来测试程序的正确性。在确定软硬件无问题后,将 程序通过烧写器把程序烧到单片机中。将程序烧写到控制芯片,打 开电路板电源,电源指示灯亮,整个系统启动。当通过键盘输入密码 后,系统会判断密码的有效性,若是有效密码则开门并在液晶上显 示正确信息;若无效则报警并显示错误信息。运行上位机,向下位机 发送命令,下位机接收到命令后,执行相应的操作并向上位机返回 提示信息同时改变液晶上的显示信息。整个系统调试完成。 密码锁电路在门关闭状态液晶屏第一行显示“欢迎光临”、第 二行显示“请输入密码”、第三行显示“实时时刻”。如图8所示,初始 状态下设置了1O个用户,管理员可根据需要添加用户,每个用户给 定一个初始密码。用户按下ENT进行密码的输入,每输入一个数 字,在液晶屏上显示一个“ ,密码输入过程中按下ESC键清除已 经输入的密码,按下ENT键确定密码输入完成。系统进行密码比 对,如果密码正确,液晶屏进入子界面;密码比对错误,门禁机的蜂 鸣器响6声,灯闪烁6次,液晶屏显示返回初始状态。子界面第一行 显示“欢迎光临”,第二行显示“1.开门”,第三行显示“2.修改密码”, 第四行显示“返回”。如果用户按下l,锁被打开,并且蜂鸣器一声长 响,灯闪烁一次;用户按下2,进入修改密码状态,系统提示用户输 ,将门打开;输入3#,提示修改时间;输入4#,提示修改密码。 图7显示子程序流程图 图8实际硬件电路初始状态 4.2试验结果及分析 密码锁电路通电之后状态,按下输入键进入密码输入状态, 按下清除键将密码清除,重新输入密码,如果密码输入不正确,提 示密码输入错误,第二个灯闪烁,同时报警。初始密码为ooo00 ̄ 999999。密码是222222进入的。此时进入第二级界面,如果按下1, 则开门。将继电器打开,同时第一个灯闪烁一下,同时蜂鸣器响一 声,并返回主界面。再次用222222进入同时按下2键进入密码修 改界面提示输入新密码,按下输入键进行新密码的输入。第一次输 入密码完成提示再次输入新密码确认密码的。如果第一次输入新密 码和第二次密码不同,则提示密码修改失败并进^第二级界面。第 一次密码和第二次输入密码相同,则密码修改成功。按键不灵,输入 3返回主界面,用修改后的密码进^了二级界面。这时候修改之前 的密码已经不能用了。一共有10个用户,每—个用户提供—个原始 密码,用户可以通过门禁机和上位机两种方式去修改密码。当密 码成功后将继电器关闭,从而开锁电路导通,将门打开。 5结论 基于STC89C52单片机研制了一套可以多次更改密码具有报 警功能密码锁电路。使用单片机制作的系统具有软硬件设计简单, 易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办 公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。 参考文献 【1]曹建林,孙捷,孙学颖.电子密码锁设计[J].成都信息工程学院学报, 2010,2s(2):133—134. [2]张云,周明辉,周海林.基于AT89S51的多功能密码锁设计[J].电子设 计工程,2010,18(6):23—24. (3]金柱,向国梁.基于c语言STC89C52单片机电子密码锁设计与仿真 [J].电子技术,2010(6):176-177. [4]高海,郭红霞.基于AT89S51的密码锁设计[J].元器件与应用,2010,19 (5):170-171. [5]张雪,殷昌贵.基于VHDL的数字密码锁设计与实现[J].东华大学学 报,2007,33(3):350—351. [6]李朝青.基于单片机原理及接口技术[M].北京:北京航空航天大学出 版社,l999.