基于51单片机的电子密码锁设计
本文设计了一种基于STC89C51单片机的无线电子密码锁系统。系统采用模块化设计,包含显示控制、键盘输入、主控制器、报警控制和密码存储等模块。硬件设计选用12MHz晶振构成最小系统,配合EEPROM实现密码断电保存。软件采用Keil C语言开发,支持6位密码设置与验证,提供LCD1602液晶显示和矩阵键盘输入功能,具备密码错误报警机制。通过Proteus仿真验证了系统功能,包括密码输入、修改等操作
第二章 系统方案设计
2.1系统整体架构设计
无线电子密码锁主要包括显示控制、键盘输入、主控制器、报警控制以及存储模块。在简易密码锁系统硬件设计中,选择单片机作为系统的核心控制原件,具体设计内容包含选取的超声波方案、单片机以及传感器的种类及型号,与此同时,我们还要根据各个部位零件设计显示模块;当我们设计系统软件的时候,最核心的内容为系统程序的设计,程序运算结果可由显示模块加以呈现。用户可以通过键盘或者红外遥控输入密码数据,系统判断密码数据是否正确,并进行开关锁的操作,密码如果输入有误,可以通过键盘重新更改输入正确的密码。系统结构框图如图2-1所示。
图2-1 系统整体框图
第三章 系统电路设计
3.1单片机控制模块电路设计
STC89C51内部有8K的Flash存储电路,可以存储相关的数据,此单片机应用非常广,开发简单、电路设计容易,能够提高开发进展的速度,减少所用时间。开发成本低,被很多企业所选择。器件内部的运行速度很快,引脚数量大,是很多开发方案的首选。它的输出入数量有32个,分为4组,引脚口0,引脚口1,引脚口2,引脚口3,有多个定时器,定时数据准确,中断设计也很方便,定时器和中断的结合使用,能够实现很多比较复杂的功能要求,也可以嵌套很多中断执行。
除了普通使用的输入输出接口,单片机还需要时钟接口、复位接口、电源接口。时钟的接口是18脚、19脚,设计选择的是12兆赫兹的晶圆。复位接口是9脚,通过单片机的9脚输入复位信号,该信号时间是有规定的,应该超过2个小时,并且必须要接高电平来操作。AT89C52晶圆是12兆赫兹的晶振,所以时钟的周围就是12兆赫兹的12分频得到,所以计算得到周期的时间为1微妙,复位动作输入的9脚接口能够加入备用电源,这样可以保证芯片内部的数据不会因掉电消失。单片机的31脚接口是EA,这个引脚是可以确定处理器代码的存放位置,是内部还是外部,将高电平输入到31脚,这样就表示单片机使用的是内部存储的代码,如果将低电平输入到31脚,这样就表示单片机使用的是外部存储的代码。单片机最小系统电路如图3-1所示。
晶振电路在单片机的运转过程中发挥着十分积极重要的作用,此电路是单片机系统必不可少的外围硬件,如果此电路出现异常情况,单片机系统必定会瘫痪,无法运行,导致整个系统出现故障。单片机的所有程序都在烧写的时候写入到只读存储器里,单片机系统在启动的之后必须要进行程序的读取。处理器读取一条代码的用时,这个时长就是处理器的一个机器周期,这个时长对于处理器就是节拍。处理器设计了晶振,这样就产生了时钟,整个系统都需要时钟的存在才可以启动运转。因此,晶振电路是处理器运行的核心外围电路。本设计选择的是12兆赫兹的振源。单片机的内部带有振源,但是由于设计需要,这里选择了外部振源。
晶振的作用就是给处理器节拍信号,也就是脉冲,处理器就是按照这个节拍进行工作,所以此节拍就是处理器的工作速度。此方案选择12兆赫兹振源,所以处理器就会进行每秒12兆的速度工作,每个处理器的运行速度都是有限的,不能太高,此处理器的最大速度是420兆赫兹,如果振源选择的太大,单片机无法按照此速度进行工作。
振源的两个引脚与单片机的XTAL0、XTAL1相接,这样就可以给处理器输入节拍,此电路的设计必须要防止干扰,特别是在器件布局上要特别注意,如果电路设计不好,单片机获取不到节拍信号,系统运行肯定瘫痪。晶振工作的时候可能有偕波,这种信号不会影响到单片机对节拍信号的获取,但是也会造成稳定性的影响,晶振的设计厂家都给出了设计方案,在振源的输出到单片机的输入之间各接入两个电容,GND连接在其一头,并且电容的大小也有相应的规定,10pf-50pf之内,此设计就可以消除偕波的影响。单片机最小系统电路如图3-1所示。
图3-1 单片机最小系统电路
3.3密码存储电路
密码存储电路是为了对设置的密码进行存储,此电路在没有电源的情况下数据也不会丢失,所以可以对密码数据进行长期保存。如果系统断电了,数据依然会保存在存储电路中。电路图如图3-3所示。
图3-3 密码存储电路图
第四章 系统软件设计
C语言是目前使用较多的一门单片机开发语言,它的语言设计简单易懂。开发语句容易理解,很像英文,有的关键词可以和英文含义对上号。很多复杂的逻辑可以用C语言中简单的语句实现。相比于汇编语言,C语言的优势非常明显,汇编语言非常难以理解,而且C语言描述问题比汇编语言迅速,工作量相对较小,可读性、调试、修改和移植都是比汇编语言简单的。C语言的出现,让开发者更容易去完成软件设计。开发环境是Keil,专用单片机开发工具。
4.1整体流程
电子密码锁操作起来其实相当简单,最开始由LCD1602液晶显示需要用户在其上面输入密码,然后在键盘上按下之前设计好的几位数字密码,此时LCD上会显示输入的情况,再按下确认键,此时就存在两种情况,输入正确锁就会打开,反之,输入三遍都是错误,就会智能报警。
电子密码锁的密码如何进行设置,具体操作流程是:程序中一般密码设定在40H到45H之间,就像有的初始密码是六位数888888。通常情况下是通过功能键和数字键来进行设定的。开始先输入密码的长度,然后再输入对应位数的密码;按下确认键,这就意味着输入完毕。最后就等待给出的结果,上手容易。
图4-1 软件设计流程图
第五章 系统测试仿真
5.1 系统仿真
5.1.1仿真界面说明
本项目通过Proteus来对系统进行测验,点开用软件绘制的系统电路图,和代码进行联机调试。仿真设计图如图5-1。仿真包括矩阵键盘、液晶显示、掉电存储、键盘电路、密码锁继电器控制。
图5-1 仿真界面
5.1.2密码输入仿真
如何进行密码输入的仿真测验呢,一般我们会利用行列式键盘数字键敲下654321这样的6位初设密码数字,仿真液晶显示*****这样的画面参照下图5-2所示。与此同时,液晶显示输入密码,以号表示输入的数字密码。
图5-2 密码输入仿真
5.2.5 实物密码修改上电测试
系统可以对密码进行修改,修改时需要输入两次密码数据。如图5-8所示。
图5-8 密码修改上电测试
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。
更多推荐



所有评论(0)