电子密码锁纸
一、题目:可更换的六位电子密码锁。二。摘要:单片机技术在智能检测和控制领域有着广泛的应用和巨大的潜力。阐述了一种基于单片机的液晶显示电子密码锁的设计与实现。该系统采用美国Atmel公司的AT89S52单片机作为系统核心,LCD1602作为显示系统提示信息的输出设备,4*4矩阵薄膜键盘作为输入设备,以及蜂鸣器、继电器等电路组成整个系统硬件。系统软件是用汇编语言编写的。设计的系统具有液晶显示、方便修改密码、报警、上锁等功能,使用方便简单,满足了住宅和办公公共锁的需求,具有一定的实用价值。3.任务和要求:1要求电子密码锁设计(1)熟悉电路,了解各元件之间的控制流程。②熟悉PROTEUS平台的运行环境。(3)掌握汇编语言和矩阵键盘的实时控制操作。(4)了解电子密码锁的工作原理。任务二(1)确定4×键盘控制识别方案。(2)分析电子密码锁的工作过程。4 (3)绘制程序流程图。(4)分析电路图。(5)写代码。(6)程序分析与调试。4.设计思路:本电路是以AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计、丰富的IO口及其控制的准确性,不仅可以实现基本的密码锁功能,还可以根据实际需要增加电量调节和存储、声光提示甚至遥控功能。五、方案的建立:为了实现密码的保密性,可以使用4×4矩阵键盘任意设置用户密码(1-16位长),提高了密码的保密性。设计采用超级密码。开机时只需输入超级密码即可开门,可防止再次关机时无密码可用。采用1602液晶作为显示单元,提高了可读性,使用户对密码锁的操作一目了然。不及物动词总体设计框图:键盘输入模块密码存储模块蜂鸣器报警电路复位电路晶振电路液晶显示模块8 9 C 5 1解锁电路图2.1系统结构框图七。每个模块的功能:1。键盘输入模块:分为密码输入键和若干功能键,用于完成密码锁输入功能。2.密码存储模块:用于完成断电存储功能,使修改后的密码在断电后仍能保存。3.蜂鸣器报警电路:用于完成输入错误密码时的报警功能。4.晶振电路:用于单片机的起振。5.复位电路:完成系统复位。6.显示模块:用于显示系统状态并提示操作。7.LED显示模块:用于辅助报警和输入提示。8.开锁电路:用继电器和LED模拟开锁,完成开锁和开锁提示。8.设计原理分析:该系统外围电路由键盘输入部分、密码存储部分、复位部分、显示部分、报警部分和解锁部分组成。根据实际情况,键盘输入部分选择4×矩阵键盘,显示部分选择字符LCD1602,密码存储部分选择内存完成。其原理图如下:9。单片机及其外围电路:1。复位电路:2。时钟电路:时钟电路为单片机产生定时脉冲,单片机所有的操作和控制过程都由统一的定时脉冲驱动。如果单片机的时钟电路停止工作(晶振停止),那么单片机就会停止运行。使用内部时钟时,连接方法如下图所示:在晶振引脚XTAL1(19引脚)和XTAL2(18引脚)之间连接一个12MHZ的晶振,分别接地一个电容,产生所需的时钟信号,电容的容量一般在几十皮法。xta l 1c 1y 1 C2 xtal 23。矩阵键盘电路的设计为了加强密码的保密性,可以用一个4×矩阵键盘随意设置用户密码4 (1-16位长),从而提高密码的保密性,减少与单片机接口时使用的I。每一行每一列的交集都不相同,而是通过一个键连接起来。有了这种行列式矩阵结构,只需要N行线和M列线就可以组成一个N × M键的矩阵键盘。在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键和确认按键是否被按下的程序段。当确认一个键被按下时,下一步是识别哪个键被按下。识别键通常有两种方式:一种是通用的组线扫描查询方式;另一种是更快的线反演法。在这个系统中,我们使用线反转方法。首先识别键盘中的按键是否被按下,然后在单片机的I/O口向键盘发送全扫描字,再读入线路状态进行判断。具体方法是:输出全扫描字00H到行线,将所有列线设置为低电平,然后将列线的电平状态读入累加器a,如果按下一个按钮,总会有一个行线电池被拉到低电平,这样行线就不全是1。判断键盘中的哪一个键被按下,通常是通过逐列线降低到低电平后检查该行的输入状态来实现的。方法是:依次向列线发送低电平,然后检查所有行线的状态。如果都是1,按下的键不在此列;如果不全是1,按下的键一定在这一列,而且是与零电平行线交点的键。4.操作面板上的10数字键用于输入密码,另外六个功能键分别是:正确、修改密码、锁定。校正键的作用是清除先前输入的数据,并在密码输入错误时重新输入。在密码输入状态下,数字键0-9为有效键,具有时间频率限制功能:只有三次输入密码的机会,每次限制在10秒。如果密码输入错误或每次输入超时,则视为密码输入错误。当三个输入都错误时,程序将返回初始状态。密码输入正确后,继电器接合,表示锁被打开。当密码输入正确时,程序进入检查和修改密码的状态。按“更改密码”键进入密码重置状态。输入密码时,如果发现输入错误,可以按“正确”键删除重新输入,按“锁定”键确认,程序将退出密码修改状态。5.液晶显示电路本系统设计的显示电路是为了给用户一个提示而设置的。为了达到界面友好的目的,显示部分用液晶显示器LCD1602代替普通数码管完成。解锁时,按下键盘上的解锁键后,用键盘上的数字键0-9输入密码,每按下一个数字键,显示屏上就会显示一个*号,输入多少*号。当密码输入完成后,如果输入的密码正确,LCD将显示“OK ”,绿灯亮起。单片机的P3.0引脚会输出一个低电平,使晶体管T2导通,电磁铁被吸引,继电器开关跳开,电子密码锁打开。密码不正确,液晶屏显示“错误”且P3.0输出高电平,电子密码锁无法打开,同时红灯亮起。通过液晶屏,可以清楚地判断密码锁的状态。图3.7显示电路显示器主要用于显示以下字符,指示如图所示。P A S W O R D图3.8(a)开机状态D等待输入状态O K P A S S W O R D输入正确状态E R R O R密码输入E R R O R和密码输入超时提示十、系统软件设计系统的软件设计采用汇编语言编码。设计方法是先用文本编辑器编写源代码,然后用软件Keil C51编译。如果没有错误,您可以连接以在中生成文件。十六进制格式(需要提前在Keil C51中设置)。如果有错误,就不能连接,但是可以在生成的。易于修改的OBJ文件。当然也可以直接用Keil编码。生成的十六进制文件是一个记录文本行的ASCII文本文件。在十六进制文件中,每一行都是一个十六进制记录,一个机器码或者一个由十六进制数组成的数据常量。十六进制文件常用于在ROM和EPROM中存储程序或数据,大多数程序员和仿真器都使用十六进制文件。1.系统主程序系统的主程序如图4-1所示。因为用户在使用系统的过程中随时可能按下任何键,所以程序必须正确响应。启动系统初始化显示菜单-密码是否正确?Y N检查密码,键盘扫描提示正确解锁错误次数加1修改密码?N Y提示错误保存新密码开始密码输入?n延时1s D按键?关闭锁Y N Y(按下F键)Y显示菜单II密码输入密码正确sign =1?密码对比N N错3次?y锁主程序流程图2。初始化和按键识别如图4.2所示,系统的初始化包括堆栈起始地址的设置,两个定时器/计数器的设置,LCD显示模式的设置,密码缓冲区的初始化,一些自定义数据空间的初始化,蜂鸣器的初始化。系统初始化并读取密码后,LCD显示“密码控制”,提示用户输入密码。此时,程序不断地测试按键,看是否有按键被按下。如果是,进行按键识别;如果没有按键,或者按键未被识别,R3分配0FFH并跳转到按键测试。当真正的程序运行时,它花大部分时间测试按键,等待用户输入。启动关键测试子程序系统初始化。有按键吗?读取密码是否延迟0.5S?按键识别子程序加载初始密码?是否阅读成功?是否提示输入密码识别成功?有,键重定位,无初始化和键识别流程图3。解锁处理首先液晶初始化,输入密码。如果密码正确,解锁电路将工作。电器通电后,解锁指示灯会亮。解锁过程如图所示。解锁LCD初始化按下解锁键LCD初始化输入密码确认密码输入程序是否正确?没有报警程序解锁成功,返回解锁流程图。4.加密处理如图,可以看出加密密钥的处理流程和解锁密钥类似,需要检查密码是否正确。如果错了,会提示你重新输入,只有密码输入正确,才能修改密码。然后按修改键,密码修改程序就会被调用,密码就会被修改。在此过程中,LCD将显示信息。启动密码是否正确?无密码错误重新输入无提示输入新密码重新输入新密码与两次输入相比,更改成功,加密更改。图5。液晶显示子程序每次更新显示内容都会调用液晶显示子程序,其流程如图所示。开始清除显示写入命令输入IR字符地址输入DPTR地址+1字符=00H?字符码送到P0口将数据写入DR,然后返回液晶显示子程序流程图。每次更新显示内容之前,需要清除LCD原有的显示内容。清屏指令的指令代码为01H,即P0端口赋值为01H,然后写入指令寄存器IR。LCD1602要显示的内容是根据其控制器内置的字符码表,预先列出要显示的ASCII字符串。一次将一个字符的ASCII码送入P0口,然后写入数据寄存器Dr,最后在字符地址上加一,LCD1602将依次显示写入的ASCII码对应的字符。因为显示的字符串长度不同,所以约定每个字符串以00H结尾;当程序检测到字符码为00H时,停止写入并返回。LCD上显示的内容将保留到下一次更新。XI。源程序如下:# include "延时。h"/* -。