嵌入式密码锁设计报告 本文关键词:密码锁,嵌入式,报告,设计
嵌入式密码锁设计报告 本文简介:青岛理工大学琴岛学院设计报告课题名称:基于51单片机的密码锁仿真设计学院:专业班级:嵌入式技术与应用学号:学生:指导教师:学生指导教师课题名称基于51单片机的密码锁仿真设计设计时间设计地点专业机房设计目的1、掌握单片机控制知识,学习扩展外部设备的基本技能。2、通过设计学以致用,加强单片机的实践操作能
嵌入式密码锁设计报告 本文内容:
青岛理工大学琴岛学院
设
计
报
告
课题名称:
基于51单片机的密码锁仿真
设计
学
院:
专业班级:
嵌入式技术与应用
学
号:
学
生:
指导教师:
学
生
指导教师
课题名称
基于51单片机的密码锁仿真设计
设计时间
设计地点
专业机房
设计目的
1、
掌握单片机控制知识,学习扩展外部设备的基本技能。
2、
通过设计学以致用,加强单片机的实践操作能力。
一、课程设计目的和意义
课程设计是单片机课程教职工学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把海陆空过的零碎知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,也是非常必要的。
二、课程设计的内容
1、设计内容说明
本设计主要由单片机AT89C52芯片、AT24C02芯片、4*4矩阵键盘、LCD1602和报警电路等部分组成。该电路除能完成开锁、开锁提示、修改用户密码、错误密码报警(声光提示)、重新输入等密码锁的基本功能外,还具有掉电存储、超次锁定、产生随机密码、密码明文与密文方式切换、管理员解密、解锁次数任意设定等扩展功能。本系统成本低廉,功能实用。其中AT24C02部分用于存储设置的新密码。矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后将控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。LCD1602用于显示密码输入、信息提示等功能。
2、相关器件简介。
(1)CPU选用单片机STC89S52作为设计的核心元件,在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘的数字键0-9输入密码之后按键盘“开锁”键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,并且有声光提示;当三次密码错误则发出报警,并锁定大约2分钟;当用户需要修改密码时,先按下键盘“输入新密码”键后可以设置新密码。新密码输入无误后按“保存新密码”键使新密码存储,密码修改成功。设计可产生随机密码,并用随机密码进行解码,同时随机密码还可作为新密码。
(2)LED数码管本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有接通电源后,显示器才处于开启状态,否则显示器将一直处于初始状态。当需要对密码锁进行开锁时,利用键盘上的数字键0-9输入密码后按键盘上的“开锁”键进行开锁。每按下一个数字键后在显示器上显示一个‘*‘或实际输入的数字,通过功能键可以切换密码的显示方式。当密码输入完成时,按下“开锁“键,然后LCD显示相关的提示信息。
3、设计实现的过程。
(1)四位密码可随意设定,且能够在LCD上显示。
密码锁上电后,通过矩阵式键盘上的0~9数字键任意
输入四位密码进行解锁,解锁密码以明文或密文方式显示在LCD上。
(2)开锁提示
使用发光二极管、蜂鸣器等进行开锁提示。若密码正确蓝色指示灯亮,若密码错误红色指示灯闪烁蜂鸣器报警。
(3)修改密码功能
开锁成功后,可按‘输入新密码’键进行密码修改,按‘保存新密码’键保存密码。
(4)重新输入功能
若密码输入有误,可按‘重新输入’键清除密码。
(5)手动上锁功能
当解锁或改密成功后,按‘上锁’键可以手动给密码锁上锁。
(6)
电密码保存功能
有掉电存储功能,可记忆用户修改的密码供用户下次解锁使用1-9次的解锁次数任意设定功能。
(7)解锁次数设定功能
开锁成功后,按‘输入新密码’键两次进入解锁次数设定功能,初始解锁次数为3次,每按一次加1实现1-9次循环。
(8)解锁次数显示功能
每次解锁错误都有提示,并将已试次数显示在LCD上。
(9)随机密码功能
通过
‘随机’键可产生随机密码供用户解码,也可在修改新密码时将其作为新密码保存
(10)密码明文与密文切换功能
开锁前按‘保存新密码’键可实现输入密码明文与密文之间的切换
(11)超级密码功能
当用户忘记密码时,可使用万能密码(1989)进行解锁。解锁后修改新密码即可。
(12)其它
超过解锁次数自动锁定120秒功能解锁时,若超过设定的解锁次数,密码锁在声光报警后会锁定2分钟。错误操作提示功能。执行错误操作时,LCD上有提示信息
3、
流程图。
修改密码程序
输入新密码
保存新密码
设置成功
Y
位数=4?
N
图1
密码设置流程图
初始化
输入密码
按开锁键
输入正确?
开锁成功
开锁程序
输入次数加1
次数>3?
报警程序
返回
N
Y
N
Y
图2开锁流程图
键功能程序
键值=‘0-9’?
键值=‘开锁’?
键值=‘改密’?
键值=‘上锁’?
密码输入程序
修改密码程序
开锁程序
上锁程序
Y
Y
Y
Y
N
N
N
返回
N
键值=‘重新输入’?
重新输入程序
键值=‘随机’?
’?
随机密码程序
Y
Y
N
图3
键盘使用流程图
把按键按行列组成矩阵,在行列交点上都对应有一个键,这样使用的按键要少,节约了单片机大量的I/O口,免去了上拉电阻,为焊接带来了方便,提高了整块电路板的美观度。用户按输入新密码键输入原密码后,设置4位数新密码完成密码设定,并按保存密码键后完成密码设置。在开锁时,按开锁键输入密码,密码正确完成开锁,若密码错误,密码锁会进行一次报警,若三次密码输入错误,密码锁便会连续报警。
4、重点分析。
void
sound1
(void)
{
unsigned
int
i,j,k;
unsigned
int
count1,sound1,tone;
count1=80;
sound1=1;
tone=110;
for
(k=0;k { P1=0xff; for (i = 0; i { beep= ~ beep; for (j=0;j } delay(); } } void sound2 (void) { unsigned int i,k,j; unsigned int count1,sound1,tone; count1=80; Sound2=20; tone=50; for (k=0;k { P1=0xff; for (i = 0; i {beep= ~ beep; for (j=0;j } delay(); } } 报警程序设置两种报警类型,当用户一次输入错误时,声调二被调用,即先定义好声调二,调用时执行for语句,完成报警;当用户三次输入错误时,调用声调一,与声调二不同的是,声调一tone=50,sound=20,音调没有声调二高但是蜂鸣器连续发声,且系统锁定120s,lcd显示waittig 120s。 三、存在的问题及解决方式 C语言基础不牢,通过翻阅资料,复习笔记,互联网查阅,解决了基础问题。 四、主要收获及建议 我们设计的是简易电子密锁。经过将近两个星期的努力,我们基本上完成了题目的要求设计和制作。 在设计过程中,我们首先进行方案的设计,然后是对电路的布局和设计,再到电路板的焊接制作,最后是对电路进行调试。在方案的设计过程中,经过了验证和筛选,才确定最终方案。电路板的焊接制作更是成功完成制作的保证,因此在整个焊接过程中,我们从始至终都秉着严谨、认真的态度来完成,从线路的布局到焊接工艺的把握,即要保证焊接质量还要做到焊接美观,特别要避免虚焊和假焊的出现。在编程调试的时侯,开始是一点不懂,经过查找一些教程学习后,终于熟悉并予以运用。 总之,这次课程设计使我们学到了许多知识。不管是专业基础知识还是动手制作能力,经过这次设计,都得到了很大的提高,既开拓了思维也积累了经验,更重要的是使我们看到自己的不足和今后更需要努力的方向。以后我们将更加努力学好专业知识,不断地积累更丰富的经验,进一步提高动手能力。 指导教师评语 系部教研室 意 见