基于STC89C52单片机的电子密码锁设计

2019-09-10 07:22汪建关邵春枫谷高明缪传付
现代信息科技 2019年22期
关键词:单片机

汪建关 邵春枫 谷高明 缪传付

摘  要:电子密码锁具有安全性高、保密性好等优点。本文基于单片机STC89C52设计了一种电子密码锁系统,由单片机控制矩阵键盘模块实现输入密码功能,LCD1602液晶模块显示密码锁相关信息,继电器模块控制开锁。具有开锁成功提示、密码错误报警、修改密码等功能,在防盗场合有着极为广泛的用途。

关键词:单片机;电子密码锁;报警系统

中图分类号:TP368.1;TN402       文献标识码:A 文章编号:2096-4706(2019)22-0038-03

Abstract:Electronic password lock has the advantages of high security and good confidentiality. This paper designs an electronic password lock system based on STC89C52 single chip computer. The input password function is realized by matrix keyboard module controlled by single chip computer. LCD1602 LCD module displays the information related to password lock. The relay module controls the unlocking. It has the functions of successful prompt for unlocking,password error alarm,password modification,etc. and has a very wide range of applications in anti-theft occasions.

Keywords:MCU;electronic code lock;alarm system.

0  引  言

智能门锁是信息技术不断发展下的新成果。通过人工输入正确的密码后才能打开门。智能门锁具有保密性好、安全可靠、生活便利等优点。本文设计基于STC89C52单片机的电子密码锁,通过输入密码实现开锁功能,可根据需要修改密码,连续输入错误密码达3次启动报警程序。

1  系统方案设计

本次设计的电子密码锁采用STC89C52单片机为核心控制器件,与复位电路加晶振电路构成单片机最小系统电路[1]。通过矩阵键盘输入开锁密码,当密码输入正确时,开锁驱动电路实现开锁功能。当开锁密码连续错误输入达3次,报警电路自动报警并锁定。存储电路采用AT24C02存储芯片储存设置的密码。本系统主要包括单片机系统、晶振电路、复位电路、电源模块、继电器模块、LCD1602液晶显示模块、4×4键盘模块、存储模块和报警模块。

2  系统硬件设计

2.1  单片机硬件电路

本设计选择的单片机型号为STC89C52单片机,这款单片机是深圳宏晶科技(STC)研发的一款低功耗、高性能的CMOS8位微控制器,使用经典的MCS-51内核,在使用上可以兼容51单片机,而且性能比51单片机更加优越,运行速度更快,接口电路更加丰富,而且功耗更低[2-3]。

这款单片机的供电低电压范围为3.8V~5.5V。内部具有8K的Flash和512字节的RAM,具有4个P0-P3端口,32个I/O端口,其中P3端口具有双重功能,除了具有普通I/O端口的功能,还具有定时器、串口、外部中断等复用端口的功能[4]。单片机在运行时最大的晶振频率可以达到35MHz。程序可以通过UASRT串口进行下载。单片机在外形上有两种封装,分为LQFP封装和DIP封装[5]。本次设计选择DIP封装。

(1)晶振电路。晶振电路又称为时钟电路,由一个晶振(11.0592MHz)和两个电容(30pF)组成,产生震荡时钟信号,驱动单片机工作。STC89C52RC采用外部时钟电路。通过单片机第18引脚XTAL1和第19引脚XTAL2引脚输入。

(2)复位电路。STC89C52单片机的复位电路分为手动复位和上电复位两种,上电复位主要由電阻和电容组成,只在通电时进行复位操作。而手动复位电路可以在必要时通过按键实现复位功能。复位电路和单片机的第9个引脚REST连接实现复位功能。

(3)单片机最小系统电路。单片机、晶振电路、复位电路组成了单片机的最小系统电路,给最小系统上电就能保证单片机的正常运行[6]。

2.2  矩阵键盘电路

本设计中的电子密码锁,通过4×4矩阵键盘输入密码,实现对门锁密码的输入和修改。矩阵按键的行控制线和单片机的P14-P17连接,矩阵按键的列控制线和单片机的P10-P13连接。通过对行、列线的扫描实现按键的是否功能。

2.3  液晶显示电路

本设计采用LCD1602液晶显示模块,显示密码锁的相关状态。液晶的RS、RW、EN引脚和单片机的P25-P27引脚连接,液晶的数据接口D0-D7和单片机的P0口连接,为了节省能源设计了液晶的节能控制端口,使用单片机的P23端口驱动三极管Q1实现对液晶背光的控制,当P23端口为低电平时,液晶背光点亮,当P23端口为高电平时,液晶背光关闭。

2.4  开锁电路

密码锁开锁控制部分主要通过单片机控制继电器实现,可以实现对密码锁的开锁和关锁控制,通过单片机的P22 I/O端口控制三极管9012导通,当三极管导通后,继电器线圈通电,此时继电器会闭合,继电器开关端子J1会导通,J1连接的开锁设备进行开锁[7]。

2.5  密码存储电路

采用AT24C02存储芯片存储密码,实现电子密码锁的密码保存功能。使用I2C通信协议与单片机通信[8]。

2.6  报警电路

当密码开锁成功或者连续输入错误密码达3次时会进行报警,报警电路是给使用者一个声音提示的功能,用单片机控制蜂鸣器实现。其中三极管Q2起到驱动作用,当单片机的P33端口为低电平时,三极管导通,此时蜂鸣器B1通电发声实现报警。当单片机的P33端口为高电平时,三极管不导通,蜂鸣器B1不通电,此时不发出报警声。

2.7  电源电路

电源为整个系统提供电能,本次设计中的器件都使用5V直流电。因此在电源设计上选择了USB接口供电的方式,USB的标准电压为5V,这样可以简化电源电路的设计。DC1可以连接USB设备,SW1是电源开关,当电源开关按下后开始供电,电源指示灯LED1点亮。

3  软件设计

3.1  主程序

根据主程序的流程图来设计电子密码锁子程序,进入主程序后系统会初始化。初始化完成后会循环检测按键是否按下,判断输入信号,密码输入正确,开锁电路控制开锁;密码输入错误,报警电路进行报警提示。

3.2  开锁子程序

开锁子程序用来实现开锁密码错误的报警功能。系统会将输入的密码与系统密码对比,密码输入正确,开锁电路控制开锁,同时显示开锁成功。密码输入错误,系统对错误次数计数,次数达到3次时报警。

3.3  修改密码子程序

系统首先检测是否为开锁状态,然后检测修改密码按键是否按下,按下后进入密码修改程序。新密码需连续输入两次,当两次输入的新密码相同,显示“修改密码成功”;两次输入的新密码不同,需重新验证旧密码。

3.4  液晶显示子程序

本次设计采用LCD1602液晶显示器件。显示密码锁的工作过程。LCD1602可以同时显示两行,每行16个字符。每行都有固定的地址。写数据时地址自动加[9]。

4  系统的整体测试

4.1  程序调试

在本次的程序设计中,使用单片机C语言进行系统程序的编写,选择Keil4编译环境,在Keil4编译环境下可以实现对系统代码的调试,生成单片机可执行的程序文件。在进行程序编写前,首先要在Keil4中新建项目工程,在项目工程中新建程序文件,选择本次设计中使用的单片机型号STC89C52,将单片机的库文件下载到工程下,之后在编写程序的时候就可以引用该单片机的头文件[10]。程序编译完,可以对程序进行编译,查看是否有误。

4.2  硬件调试

硬件调试主要是对整个硬件电路原理图的调试。硬件调试需要按照如下步骤进行:

(1)检查原理图。根据设计的原理图,对应每个器件的手册,仔细地检查原理图的设计是否正确、每个芯片的各个引脚连接是否正确,确保每个器件连接正确;

(2)通过电路仿真的方式对电路的功能进行仿真,在仿真中可以发现电路是否有错误的地方。

4.3  仿真设计

仿真设计的主要功能是对设计硬件和软件进行调试,并验证硬件和软件功能是否满足设计要求。Proteus仿真软件是一种功能强大的电子设计自动化软件,可以提供单片机应用系统的仿真实验[11]。使用Proteus仿真软件对电子密码锁的密码输入功能、密码错误报警功能进行了仿真。整机Proteus原理图如图1所示,液晶上提示Input:**此时代表可以输入密码。

根据上面液晶的提示,通过按键输入六位开锁密码,输完密码后点击“确认”按钮,如果密码正确,驱动继电器开锁电路,开锁指示灯点亮,开锁成功。

根据上面液晶的提示,通过按键输入六位开锁密碼,输完密码后点击“确认”按钮,如果密码错误,则门锁不会打开,继电器开锁电路不工作,门锁开锁指示灯不会点亮,蜂鸣器发出“滴滴”声提示密码错误,LCD1602液晶显示屏幕上会显示Password error cishu:01,代表输入错误密码1次,为密码输入错误界面。

4.4  实物制作

制作实物主要按如下步骤进行:

(1)根据硬件原理图购买器件,下载每个器件的使用手册;

(2)使用电烙铁按照电路图结合器件的使用手册进行焊接,将器件焊接到电路板上;

(3)对焊接的电路板进行检测,确保焊接正确;

(4)烧录程序并运行,检测其功能。经检验,达到了预定的设计目标。

5  结  论

本文实现通过按键输入密码开锁的功能,同时具有错误报警功能。使用STC89C52作为控制核心,4×4矩阵键盘实现密码输入,AT24C02存储芯片对设置的密码进行存储,通过继电器来控制门锁开锁设备,通过LCD1602液晶显示门锁的状态。在开锁的过程中,当输入开锁密码连续错误达3次时自动报警,同时密码输入功能会被锁死。本次设计的电子密码锁还存在一些不完善的地方,如可以增加指纹识别开锁、电话报警等功能,以提高安全性能。

参考文献:

[1] 李建忠.单片机原理与应用 [M].西安:西安电子科技大学出版社,2011.

[2] 靳达.单片机应用系统开发实例导航 [M].北京:人民邮电出版社,2012.

[3] 沈红卫.单片机应用系统设计实例 [M].北京:北京航空航天大学出版社,2016.

[4] 潘永雄.新编单片机原理与应用 [M].西安:西安电子科技大学出版社,2013.

[5] 刘瑞新.单片机原理及应用教程 [M].北京:机械工业出版社,2015.

[6] 童师白,华成英.模拟电子技术基础 [M].北京:高等教育出版社,2012.

[7] 华成英.数字电子技术基础 [M].北京:高等教育出版社,2012.

[8] 张红润,张亚凡,邓洪.传感器原理与应用 [M].北京:清华大学出版社,2017.

[9] 陈杰,黄鸿.传感器监测与技术 [M].北京:高等教育出版社,2012.

[10] 谭浩强.C语言程序设计:第3版 [M].北京:清华大学出版社,2017.

[11] 周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真 [M].北京:北京航空航天大学出版社,2016.

作者简介:汪建关(1998.01-),男,汉族,安徽安庆人,本科在读,研究方向:通信系统、网络的设计。

猜你喜欢
单片机
基于单片机MCU的IPMI健康管理系统设计与实现
浅析51单片机的特点与应用
单片机在智能控制中的应用
C8051F020与80C51单片机的异同点
MCS—51单片机多串口通讯技术应用分析
一种单片机虚拟实验室的建立方法
点阵式液晶显示器lMl2864与51单片机的接口设计
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器