以STC89C52单片机为核心的电子密码锁设计

发布时间:2023-06-13  

引言

电子密码锁是现代生活中常用的加密工具。它克服了机械式密码锁密码量少、安全性能差的缺点,尤其是微控制器的智能电子密码锁;不仅具有电子密码锁的功能”还可引人智能化管理功能,从而使密码锁具有更离的安全性和可靠性。


电子密码锁通常使用ARM和单片机控制,单片机相对ARM实现较为简单,功能较为完善,因此使用单片机控制较多。用单片机控制的窖码锁常使用汇编语言编写程序,显示器多数用数码管。而本文所介绍的电子密犸锁使用移植性及可读性强的高级语言C语言编写,便于修改和增减功能蚤同时采用显示清楚,功率消耗小而且寿命长的1602 液晶显示器,显示更加直观,使用更加方便。从经济实用的角度出发,采用STC89C52单片机设计出一种具有密码设置、报警和防止多次试探密码功能的电子密码锁,通过Protues软件成功地进行了仿真。


1、系统工作原理

本系统以STC89C52单片机为核心,使用4X4矩阵键盘作为数据输人方式,驱动1602显示器提示程序运行过程和*的步骤。本系统的密码判断过程如下:

当使用者输人6位密码后按下BESURE键,单片机通过密码逐个比较,如果输入的6位蜜码和设定的密码完全相同,那么能成功驱动*模拟灯将锁打开。若输入6位密码与设定的密码不相同,按下BESURE键后,模拟灯不亮,可以按BACK键重新输入。由于输入密码过程中难免输入失误,如果密码输错,可直接攒下BACK键重新输入,但是系统不允许无限次地按BACK 键,以免密码被套用,当3次密码输入都错误,单片机将驱动蜂鸣器报警。并且本系统输入密码还有呓间限制,在规定的时阍内没有将正确密码输入也会报警。

修改密码功能如下:当密码输人正确后,按下SET键可新设置密码。每设定一位新密码,单片机将其送给EPROM,当6位新密码都输入完毕,系统将自动回到程序开始,重新读取密码并保存,使用者需输人新的密码才能将锁打开。


2、系统设计

2.1 硬件支持

使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602、矩阵键盘、报警蜂鸣器、独立按键(摸拟门的开关)、发光二极管(模拟锁的开关)和三极管(放大电流)。


2.2 软件设计

本系统软件包插主程序模块、甯码比较判断模块、修改密码模块、键盘扫描模块、液晶显示模块及定时程序等模块。系统程序流程如图1所示。

以STC89C52单片机为核心的电子密码锁设计

图1 系统程序流程图


2.2.1 主程序模块

主租序主要用于定义全局变量,给全局变量赋初值,初始化EPROM,启动定时器以及从AT24C02中读取密码, 为整个程序提供数据。


2.2.2 密码比较判断模块

该模块的功能是将键盘输入的密码利用IF语句与设定的密码进行逐个比较,若密码完全正确则*;若不正确,则按下BACK键,重新输入密码,每按下BACK键一次,输人次数将自加1,当3}fi都出错则报警。


2.2.3 密码修改模块

在窖码输入正确情况下,可以按下SET对密码进行重新设置,每设定一位就将密码送给AT24C02存储起来,当设置6位密码完毕后,系统将自动跳到程序开始,调用新设置的辚码。

STC89C52向AT24C02写入密码子程序:

void wrtte_byte(uchar date)

以STC89C52单片机为核心的电子密码锁设计

STC89C52 从 AT24C02读取密码子程序:

以STC89C52单片机为核心的电子密码锁设计

2.2.4 键盘扫描模块

该模块具备功能有:逐列扫描键盘确实被按键的具体位置、判断键盘上有无键按下、消除抖动、判断闭合的键是否释放等功能。


2.2.5定时模块

本模块用于对密码输入时间控制。在程序运行时首先对定时器进行了初始化,从按下PUT IN键开始,系统开始计时,当输入的时间达到规定的时间将立即报警。


2.2.6 液晶显示模块

此模块包括液晶初始化、命令的输入、显示数据的输入。其中命令 用于控制液晶状态是否显示光标,光标是否闪烁,是否清除原来数据以及显示的具体位置。数据显示主要是将要显示的信息安需要准时显示出来。


3 系统仿真

为了方便程序高度。本文采用了 Protues 仿真,仿真图如图2所示。

以STC89C52单片机为核心的电子密码锁设计

3.1系统介绍

图2中U1为STC89C52是个系统的核心,编写的程序以二进制的文件导入其中;U2为AT24C02,第5和第6个引脚分别与单片机的P1.2和P1.3相连;LCD1为1602液晶显示器,引脚连接如图2所示;独立按键DOOR,当门关上为键按下状态;D1为模拟*灯,当密码正确,按下BESURE键D1将亮;BUZ1为蜂鸣器报警。当程序编写好并导入到单片机里后,按下图2最下面的开始按钮,1602液晶显示器将提示密码锁的运行状态,系统开始工作。


3.2*功能

电源开启后,1602液晶显示Welcome欢迎界面,当按下PUT IN键后,显示器显示PUT IN CODES提示使用输入密码,如图3所示。几秒后液晶显示器上提示将自动消失。此进可输入正确密码,且密码输入时显示*而不会将输入的数据显示出来。当输入密码完毕后,按下BESURE键,如果输入的密码正确D1将亮(D1作为*的模拟开关)。若密码错误,可以按下BACK键,程序将跳到loop(开始界面),重新输入密码,同时输入次数将增加一次。当3次都输入错误则自动报警,并且输入密码的时间必须在规定时间完成,否则也会报警。


3.3密码设定

在密码输入正确后,按下SET键可对密码进行重新设置,液晶显示器显示SET CODS。同样几秒后提示将自动消失,此时开始重设密码。在密码设定过程中会将设定的数字显示出来,每输入一位密码需按下YES键确定,当设置的密码达到6位将自动回到启动界面。


4、结论

(1)成功仿真实现了1602液晶显示,密码*,密码设置,防止多次试探,报警等功能。

(2)采用C语言编写程序,具有很强的移植性,为系统增减和修改带了方便。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    51单片机编程环境搭建方法;前言 本教程将向大家介绍KEIL C51软件的安装,通过本教程的学习,我们可以在电脑上安装一个KEIL C51 软件,为后面学习程序的开发做好铺垫。 一、KEIL......
    模式也是日新月异,如基于传统51单片机C 语言编程技巧探讨,介绍了编程特点与技巧及模块化编程设计;张华林老师在单片机编程模块化设计研究中详细讲述了模块化编程方法;黎民山老师的基于流程图编程的单片机软件系统开发,将程......
    另一个初衷是它的程序完全可以无须改动或者需要极少的改动就可以在proteus运行,这样不用开发板我们也可以先开始学习单片机编程中文版规格书下载链接:https://www.stcmcudata.com/datasheet/STC89C52.pdf 一、时钟......
    keil单片机编程软件的使用方法说明;单片机编程软件的使用尤为必要,每一款单片机编程软件都有各自特色。大家在选用单片机编程软件时,可依据自身情况而定。本文对单片机编程软件的介绍基于Keil,主要......
    一般起跟要实现的功能相同的英文缩写代替。 比如说我要存储一个电压值,那你可以定义一个变量,名字叫VoltageValue,或者这两个词的缩写VoltVal。 所以,大家不要把这个想得这么神秘和高大上。 而从事单片机编程,需要的编程水平比做纯软件......
    M60 单片机的在线仿真与步进、日志调试;我们对M40 定时器0的代码进行步进调试,掌握调试技巧... 一、前期准备: 安装好keil C51 51单片机编程推荐软件,熟悉它,后续stm32同样......
    能学会又是另外一个话题,如果你是0基础,如果你愿意多花点时间去学习,学会单片机是没有问题的。 0基础学员怎么学习单片机单片机学习需要掌握那些知识? 1.C语言 现在C语言已经成为了单片机编程......
    当你学会51单片机,会非常快速入门其它单片机学习。这就和我们小时候学习数学都是从1+1开始学习加法的,简单+坚持我们就能学习下去,就能更好的理解。 四、学习单片机编程的准备 学习单片机,始终包含两个部分软件......
    如何创建51单片机KEIL工程步骤;1. 什么是Keil软件 Keil软件是一款专为嵌入式系统开发而设计的集成开发环境(IDE),常用于51、STM32单片机软件开发的编程软件。Keil编程软件......
    单片机如何使用?51单片机C语言编程实例有哪些?;单片机如何使用,我们要知道单片机在哪里使用? 单片机是很多电子产品的核心器件,它具有一定的逻辑判断和事件处理能力的芯片。 可以对单片机编程......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>