APP下载

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

2020-11-10马花萍

机电信息 2020年30期
关键词:单片机

摘要:电子密码锁具有安全性高、保密性好等优点。现利用YL-236单片机控制装置安装与调试实训平台,在STC15F2K60S2单片机的基础上设计一种电子密码锁系统,由单片机控制矩阵键盘模块实现密码输入功能,数码管显示模块显示密码锁相关信息,继电器模块控制开锁。

关键词:单片机;电子密码锁;报警装置

1    系统方案设计

本次设计的电子密码锁采用STC15F2K60S2单片机为核心控制器件,利用实训台上键盘输入模块——4×4行列键盘完成输入,当按下“复位”或“清除”键时,所有的数码管无显示。当按下0~9中的一个数字键时,数码管最右一位显示按下的数字,再次按下一个数字键时,上次按下的数字左移一位,在数码管右起第2位显示,最右一位显示按下的数字,以此类推,实现如手机拨号时的效果[1],如图1、图2所示。

当输完6位数字后,不再响应输入的数字键。按下“确定”键时,对输入的密码与设定的密码进行比较。若密码正确,则控制继电器吸合开锁,然后再释放,此时蜂鸣器发出响声;若密码错误,继电器无动作。无论密码正确与否,数码管均清屏(默认密码是123456)。

2    硬件电路设计

根据设计方案,采用YL-236实训台上的5个模块组成电路连接,分别为主机模块、电源模块、显示模块、继电器模块、指令模块。主机模块上采用STC15F2K60S2单片机芯片,使用双RS232串口。电源模块使用直流5 V和12 V电源供电,显示模块使用共阳型数码管8只。其中WR接单片机的P3.6,CS1接P2.6,CS2接P2.7,数据口接单片机主机模块P0口。使用光电耦合继电器1只,继电器控制端口KA1接P2.4,继电器的公共端COM接地,NO端接蜂鸣器,其余端口不接。指令模块使用4×4行列键盘。ROW0-COL3口接主机模块的P1口[2]。按照图3所示密码锁硬件接线图进行接线。

3    软件设计

在本次的程序设计中,使用单片机C语言进行系统程序的编写,在程序编写之前,归纳总结出程序的流程图,这样程序编写就会思路清楚、层次分明,如图4所示。在进行程序编写前,首先要在Keil4中新建项目工程,在项目工程中新建程序文件,选择本次设计中使用的单片机型号STC15F2K60S2,将单片机的库文件下载到工程下,之后在编写程序时就可以引用该单片机的头文件。程序编译完,在Keil4编译环境下实现对系统代码的调试,生成单片机可执行的程序文件。如果没有问题,就直接利用STC-ISP下载器,把程序下载到单片机中运行,实现效果。如有问题,反复调试编译,直到成功为止。

3.1    主程序设计

根据程序的流程图来设计电子密码锁子程序,由“开始”进入主程序后系统会初始化,清空显示缓存。数码管显示,循环检测按键是否按下,判断输入信号,按下的是数字键,送入显示缓存;按下的是“确定”键,校验密码是否输入正确,正确开锁,不正确则清空显示缓存;按下的是“清除”键,直接清空显示缓存。程序如下[3]:

int main( )     //主程序main函数

{  init( );   //初始化程序,清空显示缓存

While (1)     //在主程序中设置死循环程序

{   display( );    //数码管显示子函数

button( );     //按键处理子程序

}

3.2    数码管显示数字左移程序

如何实现按数字键时,让数码管上显示的数字键逐位左移呢?这是此程序的核心要点,可以先定义一个含有6个元素的数组pw用来存放输入的6位密码,每次按下数字键时,均把该数字送入pw[0],而pw[0]送入pw[1],pw[1]送入pw[2],pw[2]送入pw[3],pw[3]送入pw[4],pw[4]送入pw[5],显示程序显示pw[0]…pw[5]中的数。

3.3    密码校验程序设计

密码校验程序设计就是开锁子程序,系统会将输入的密码与系统密码设置的密码进行对比,密码输入正确,继电器吸合开锁;密码输入错误,清空数码管显示屏。

3.4    按键处理子程序

在涉及行列式键盘的闭合键处理程序中,用到的是线反转法,它是一种常用的方法,扫描速度快,还可以很好地解决重键问题,具体需要进行按键去抖和等待按键释放。但在硬件电路上要求行线和列线都要既能作为输出又能作为输入,行线和列线上都要有上拉电阻[4]。

首先将行线作为输出线,列线作为输入线,先通过行线输出全0信号,读入列线的值,如果此时有某一个键按下,则必然使某一列线值为0;然后将行线和列线的输入、输出关系互换,列线作为输出线,行线作为输入线,再通过列线输出全0信号,读入行线的值,那么闭合键所在的行线上的值必定为0。这样,当一个键按下时,必定读得一对唯一的行值和列值,根据这一对值即可确定闭合键。

4    系统的整体测试

包括软件的测试和硬件的测试。

4.1    软件测试

程序在Keil软件中编写完,可对程序进行编译,编译的过程中只能找出一些语法错误[5],比如初学者常犯的语法错误有:(1)main函数的拼写错误,因主机无法找到主程序而无法运行。(2)自定义的变量,在后面引用时拼写错误。(3)字母大小写的错误,比如数据的输入、输出口中的P应该为大写。(4)语句结束缺少分号。(5)花括号不配对,漏写或多写等等。对错误的程序反复修改,最终能够获得目标代码。但对于程序功能本身的错误是查找不出来的,需要结合程序调试和硬件设备才能得到正确结果。

4.2    硬件调试

主要是检查一下原理图,是否出现连接错误,是否与程序匹配,导线的通断情况,模块的呈现状态是否正常等,也可以通过电路仿真的方式对电路的功能进行仿真,在仿真中发现电路是否有错的地方。

5    结语

YL-236单片机安装与调试实训装置涵盖的内容广、用途全,是职业院校进行各级别的技能大赛的指定装置,也是选拔人才的基础。本文利用此装置进行电子密码锁的相关设计,利用了51单片机的诸多特性,如灵活性强、便于设计等,使得电子密码锁能够贴近实际,保护人们的安全隐私,为人们使用。单片机的设计步骤可以小也可以大,要注意仔细观察和认真思考,并懂得如何通过实际测试和不断寻找真理得到最终的正确答案。科学技术的力量是巨大的,在这个科技发展和创新的时代,只有不断进步,才能取得更好的成果,让科技给人们带来更多的好处。本设计结合了键盘的物理特性和自身的逻辑思维,单片机的开发可以更进一步。电子锁的创新不仅仅局限于数字和字母,新的加密形式,如人脸、指纹、体温等,正在迅速发展,在电子设备领域,还有很长的路要走。

[参考文献]

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

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

[3] 金杰.MCS-51单片机C语言程序设计与实践[M].2版.北京:电子工业出版社,2017.

[4] 雷林均.单片机控制装置安装与调试[M].北京:电子工业出版社,2011.

[5] 葛金印,商联红.单片机控制项目训练教程[M].北京:高等教育出版社,2010.

收稿日期:2020-09-03

作者简介:马花萍(1981—),女,河南巩义人,讲师,研究方向:单片机、电子电器。

猜你喜欢

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