电子密码锁设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子密码锁设计 Prepared on 22 November 2020
《嵌入式系统》课程设计报告
题目
院系:机电学院
学生姓名:任
专业:
班级: 1 1 1
指导教师:
完成时间: 2014-10-17
目录
3 软件设计 (6)
摘要:随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
关键词:4×4矩阵键盘;stm32;密码锁;LCD1602
1 系统总体方案设计
1.1采用数字电路控制
其原理方框图如图1-1所示。
图数字密码锁电路方案
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、键盘输入次数锁定电路。
采用一种是用以stm32为核心的控制方案
利用其灵活的编程设计及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图所示。
图 stm32控制方案
通过比较以上两种方案stm32有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
初步设计思路如下:
基于以上思路,本次设计使用stm32设计,其主要具有如下功能:密码通过键盘输入,若密码正确,则将锁打开。
电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:
(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
输入密码用矩形键盘,包括数字键和功能键。
LCD1602显示输入密码。打开电源后,显示器显示“000000”,设原始密码为“12345”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”键。若密码与设定密码相同,则开门。否则显示器清为“000000”。
软件的设计主要包括键盘键值的读取,LCD显示程序,密码比较程序。
2 硬件电路设计
键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘。其原理如图
图矩阵键盘
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
具体的功能设计如表:
表按键功能
LCD1206显示电路
现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
接口信号说明 1602型LCD的接口信号说明如表3-3所示:
表3-3 1602型LCD的接口信号说明
⑵管脚功能
1602采用标准的16脚接口,其中:
第1脚:VSS为电源地
第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。
指令集
1602通过D0~D7的8位数据端传输数据和指令。
显示模式设置: (初始化)
0011 0000 [0x38] 设置16×2显示,5×7点阵,8位数据接口;
显示开关及光标设置: (初始化)
0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)
0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),
N=0(读或写一个字符后地址指针减1 &光标减1),
S=1 且 N=1 (当写一个字符后,整屏显示左移)
s=0 当写一个字符后,整屏显示不移动
数据指针设置:
数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:
01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。