基于51单片机的电子密码锁设计系别物理与电子工程学院专业电子信息科学与技术学生姓名学号班级2013

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

如果使用传统的机械钥匙开锁,人们往往需要携带多把钥匙,使用起来极其不方便,而且钥匙丢失后安全性大大降低。 随着科学技术的不断发展,人们对日常生活中的安全、保险装置的要求越来越高。 为了满足人们对锁的使用要求,提高安全性,用密码代替钥匙的密码锁应运而生。 该密码锁具有安全性高、成本低、功耗低、操作简便的优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁已逐渐取代传统的机械密码锁,克服了机械密码锁密码量小、安全性能差的缺点,使密码锁在技术和性能上都更加优越。 一切都得到了很大的改善。 随着大规模集成电路技术的发展,特别是单片机的出现,带有微处理器的智能密码锁出现了。 除了电子密码锁的功能外,还引入了智能管理、专家分析系统等功能。 因此,密码锁具有较高的安全性和可靠性,得到日益广泛的应用。 随着人们对安全的重视和科技的发展,国内外推出了多种电子智能锁(指纹识别、IC卡识别)。 但这些产品的特点是针对指纹和有效卡,只能应用于需要保密的箱、柜、门等。 而且,指纹识别器如果在公共场所使用容易出现机械损坏,IC卡也容易丢失和损坏。 再加上其成本较高,一定程度上限制了此类产品的普及和推广。 就目前的技术水平和市场接受程度来看,电子密码锁是此类电子防盗产品的主流。

2、系统要完成的功能 基于以上思路,本文主要介绍采用STC公司的STC11F16XE单片机设计的一种电子密码锁。 主要有以下功能: 1、密码确认功能:通过矩阵键盘输入密码。 如果密码输入正确,则通过驱动口发出高电平信号,作为机械抱闸解锁的依据,完成解锁功能。 同时主界面上显示:“关键词没问题!” 2、密码设置功能:单片机刚上电复位后,会通过LCD1602界面提示设置密码:“请设置关键字!” 并且所设置的密码是可重复的。 您可以在程序运行时再次输入相应的密码并进行修改。 3、当密码输入错误时,系统会通过LCD1602界面提示密码字符错误:“关键字错误!” 并且不会执行解锁动作。 4. 在本设计中,使用 LED 来代替机械制动系统。 灯亮表示解锁,灯灭表示锁定。 本设计中,实现系统设计的具体流程如下: 1、完成硬件设计。 使用PROTEL99SE画出单片机最小系统板和矩阵键盘的原理图和PCB布局,然后在实验室用腐蚀液进行腐蚀,焊接元件,下载测试程序进行调试。 完成软件的设计。 通过Keil uVision3软件,编辑源汇编程序,然后编译修改,直至编译通过。

将编译好的HEX文件下载到单片机并在里面运行。 通过寻找系统功能的不足和可修改的地方,然后回过头来修改源文件,最终成型。 3、系统总体设计方案1:采用数字电路控制。 利用数字电路的逻辑运算功能,然后设计成电子密码锁,也可以完成系统设计。 直接用FPGA完成设计就更加方便了。 但是如果用FPGA来完成的话会非常浪费,因为一方面FPGA价格昂贵,另一方面用这么强大的芯片来创建这么简单的系统是一种资源消耗行为,这就是非常不可取,因此这里不使用它。 这个节目。 方案2:使用DSP芯片TMS320F2812完成电子密码锁的设计。 由于DSP芯片在逻辑运算和数学运算方面的强大能力,非常容易完成电子密码锁的设计,并且易于实现。 但DSP芯片TMS320F2812价格昂贵,因此这里不采用该方案。 方案三:以51系列单片机STC11F16XE为核心完成控制方案,进而实现电子密码锁的设计。 我们可以利用单片机灵活的编程设计和丰富的IO口,以及其控制的准确性,不仅可以实现基本的密码锁功能,还可以增加功率调整存储、声光提示,甚至远程控制等功能。功能。 原理如图3-1所示。 图3-1 单片机控制方案 通过对比以上三种方案,单片机方案具有更大的活动空间。 不仅可以实现所需的功能,还可以很大程度上扩展功能,还可以方便地对系统进行升级。 ,所以我们采用第三种方案。

设计的效果场景如下: 1、使用矩形键盘输入密码,包括数字键、字母键和功能键。 2、采用液晶显示器LCD1602显示字符及操作界面。 3、用发光二极管代替解锁电路。 点亮表示解锁,熄灭表示锁定。 4、打开电源后,显示屏显示“请设置关键字!” 提示用户设置密码。 此时用户可以输入8位数字的密码。 输入8位数字后,系统自动跳转到另一个界面,显示“关键字设置成功!” 5、完成上述步骤后,系统再次跳转到另一个界面:“请输入关键字!” 此时系统提示用户输入正确的密码即可完成解锁功能。 此时,用户可以通过矩阵键盘完成输入密码的功能。 输入位数为8位。 6. 如果输入的密码正确,系统会显示:“The keywords is ok!” 同时点亮LED灯完成解锁。 否则,系统将显示“关键字错误!” 并且不采取任何行动。 本设计中,硬件部分主要完成单片机最小系统和矩阵键盘的设计。 该软件主要由矩阵键盘子程序、显示初始化程序、显示字符子程序、数据比较子程序、数据登记子程序和调度子程序主程序等组成。 4. 硬件电路设计 4.1. MCU 最小系统设计 MCU 最小系统包括外部晶振、复位电路和P0 口的上拉电阻。

原理图如图4.1所示: 图4.1 最小单片机系统 4.2. 键盘电路设计 本设计采用矩阵键盘作为输入设备。 它最大的优点是可以减少对单片机I/O总线的占用,节省资源,并且可以产生大量不同组的输入数据。 这种方法通常在按钮较多的情况下使用。 其原理如图4.2所示:。 图4.2 矩阵键盘原理图。 每条横线(行线)和竖线(列线)的交点并不相连,而是通过一个键相连。 使用这种行列式矩阵结构,只需要N条行线和M条。 阵列线可以组成具有N×M个键的键盘。 在这种矩阵键盘、非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认是否有按键的程序段。 确认按下按钮后,下一步就是识别按下的是哪个按钮。 识别key的方法通常有两种:一种是常用的逐行扫描查询方法; 另一种是速度更快的线反转方法。 对比图4.2所示的4×4键盘来说明行反转的工作原理。 首先判断键盘上是否有按键按下。 单片机的I/O口向键盘发送全扫描字,然后读取线路状态进行判断。 方法是:向行线输出全扫描字00H,将所有列线置为低电平,然后将列线的电平状态读入累加器A。如果按下一个按钮,则总是有一条行线拉低电平,使得行线不全部为1。通过逐列将列线设置为低电平,然后检查行输入状态来确定按下键盘上的哪个键。

方法是:依次向列线发送低电平,然后检查所有行线的状态。 如果全部为1,则按下的键不在本列; 如果不是全部为1,则按下的键一定在这一列中。 就是与零电平行线交点处的键。 在本电路的设计中,矩阵键盘的具体功能设计如表3.1所示: 表4.1 按键功能 按键名称 功能说明 1-9键 数字键输入密码 A–F键 字母键输入密码 4.3、LCD显示电路 LCD1602的引脚上有对比度调节电压,因此主要电路设计是在其上串联一个可调电阻,并在背光灯上串联一个可调电阻。 这里我们用P0口的并口总线来对应LCD1602的数据总线。 控制线由P2.2、P2.3、P2.4三个位组成,分别控制RS、RW、E。 它是在程序中使用指令 EQU 定义的。 由于显示电路比较简单,没有截图就不单独说明了。 4.4. 开锁电路本设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁。 如果发光二极管亮,则表示锁已解锁; 如果熄灭,则表示锁未解锁。 电路图如图3.3所示。 当P2.0口输出低电平时,二极管点亮,表示解锁。 图4.3 解锁电路 5.软件设计 5.1. 软件设计思路电子密码锁的主要过程是LCD1602液晶显示屏提示开始输入密码,通过矩阵键盘输入密码。 同时LCD显示输入状态。 输入完成后,系统自动做出判断并进行解锁或加锁处理。

设置密码,在程序中输入密码的过程中,先输入密码的长度,然后根据密码的长度输入密码的位数,直到所有长度的密码都输入完毕; 或输入确认功能键后,完成密码输入过程。 进入密码判断比对处理状态并给出相应的处理流程。 1、键盘扫描子程序 键盘扫描流程图如图 4.2.1 图 5.1 键盘扫描流程图 键盘扫描子程序如下: KEY1:MOV A,P1//键盘程序入口 ORL A,#0F0HCPL AJZ KEY1ACALL DELAY10MSMOV A,P1ORL A ,#0F0HCPL AJZ KEY1MOV P1,#7FH//确认有按键按下 MOV P1,#7FHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI1//开始各种相应处理 MOV P1,#0BFHMOV A,P1ORL A ,#0F0HCPL AJNZ CHULI2MOV P1,#0DFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI3MOV P1,#0EFHMOV A,P1ORL A,#0F0HCPL AJNZ CHULI42,LCD初始化程序初始化程序主要完成各种显示功能的配置:MOV P0, #01H//显示程序入口初始化 ACALL ENABLEMOV P0、#38HACALL ENABLEMOV P0、#0FHACALL ENABLEMOV P0、#06HACALL ENABLEMOV P0、80H3、LCD部分程序 LCD程序主要完成读时序和写时序的功能: ENABLE: CLR RSCLR RWCLR EACALL DELAY10MSSETB ERETDAT1 : SETB RSCLR RWCLR EACALL DELAY10MSSETB ERET 其中ENABLE子程序主要完成对LCD1602写控制的功能,DAT1子程序主要完成向其写入数据的功能。

4、数据比较判断子程序 BIJIAO:ACALL DELAYMOV P0、#01HACALL ENABLEACALL PLEASEACALL INPUTACALL PASSWORDMOV R3、#8MOV R1、#2AHACALL MAINCLR CMOV A、20HSUBB A、2AHJNZ ZHONGZHIMOV A、21HSUBB A、2BHJNZ ZHONGZHIMOV A、 CHJNZ中智莫夫A,23HSUBB A,2DHJNZ ZHONGZHIMOV A,24HSUBB A,2EHJNZ ZHONGZHIMOV A,25HSUBB A,2FHJNZ ZHONGZHIMOV A,26HSUBB A,30HJNZ ZHONGZHIMOV A,27HSUBB A,31HJNZ ZHONGZHI 该子程序自动将输入的密码与设定的密码进行比较,判断是否为密码。它们是相等的,并跳转到不同的其他子程序执行相应的操作。 6、系统调试:本次调试采用物理调试。 首先设计电子密码锁的源程序。 源程序编译完成后,生成的目标文件被下载到单片机中。 运行并执行操作后,检查结果是否与预期一致。

经过不断修改,结果见附页。 主要包括开机界面的显示、输入正确密码后的显示、提示输入密码的界面显示以及解锁后的效果。 7、经验与体会实践是检验真理的唯一标准,当然也是检验学习成果的标准。 经过一段时间的学习,我们需要明白所学的知识应该如何运用到实践中,因为任何知识都来自于实践,属于实践,所以我们必须在实践中检验所学的知识。 本次课程设计终于顺利完成。 我在设计过程中遇到了很多问题。 这段时间,通过我的不断努力,无论是在思想上还是在学习上,我都得到了很大的发展和巨大的收获。 考虑到这个单片机课程设计,到目前为止,我感触良多。 确实,从选题到定稿,从理论到实践,这两周的时间,可以说是苦大于甜,但我却能学到很多东西,同时,我不仅能巩固我学到了以前学过的知识,学到了很多书本上没有学过的知识。 通过这次课程设计,我了解到理论与实践相结合是非常重要的。 仅有理论知识是远远不够的。 只有将所学的理论知识与实践相结合,从理论中得出结论,才能真正服务于社会,从而提高自己的实践能力和独立思考能力。 设计过程中遇到问题可以说是非常困难的。 毕竟这是我第一次做,难免会遇到各种各样的问题。 同时,我在设计过程中也发现了自己的不足。 之前所学的知识理解得不够深入,掌握得不够牢固,单片机汇编语言掌握得还不够好。 通过这门课程设计后,我必须复习一下之前所学的知识。 ][2]李全利. 单片机原理与接口技术[M][3]PROTEL99 SE电路设计与板卡制造[M]]】89S51单片机矩阵键盘控制输入误锁键盘延时报警控制电路AT24C02断电存储解锁控制电路指示电路 串口显示电路1

单片机

领取零基础参加嵌入式培训班要学习什么内容?

2024-5-6 16:06:15

单片机

STM32MP157可拓展学习的技术非常的多,几乎可以做到一板N多用

2024-5-6 17:04:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索