单片机密码锁实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二○一六~二○一七学年第一学期

电子信息工程系

电子综合设计II

报告书

班级:电信(产业)1401班

设计时间:2016/12/29

学生姓名:

学号:

指导教师:

二○一六年十二月

一、设计要求.

题目内容:

设计一个基于51单片机的电子密码锁:

1.可以使用4*4的矩阵键盘与红外遥控器输入密码。

2.可以通过按特殊组合键重设开锁密码。

3.显示通过1602液晶屏显示电子密码锁界面,输入密码时显示输入个数显

示为‘*’,如果密码正确,进入欢迎界面。

4.密码连续输入3次错误报警,LCD显示报警,倒计时十秒后重新进入密码

输入界面。

5.可以通过特殊的按键组合跳过输入界面直接进入欢迎界面。

实现方法:

1.通过红外接收头,连接单片机的P3.2外部中断INT0口,可以实现单片

机接收遥控器的信号输入。

2.通过矩阵键盘扫描函数,可以实现对键盘输入的响应。

3.通过引脚的高低电平变化频率,控制蜂鸣器的输入占空比和频率(低电

平时间固定,通过输入给函数值的不同改变高电平时间,固定响300个周期),对不同按键实现不同声音响应。

4.1602显示屏有16*2个单元格,每个单元格由5*8个像素点组成,可以很

好的显示数字,符号,英文字符。

功能需求分析:

液晶屏显示:

根据题意,需要设计并显示输入密码界面、修改密码界面、欢迎界面、错误警告界面

密码输入:

根据题意,每次输入一个数字,则显示一个‘*’符号代替,只能看出输入的位数,若输入密码位数达到六位,则与正确密码比较,若正确,进入系统。根据日常的手机使用习惯,默认长度为6位,且第六位输入之后立即判断,正确则进入,错误则清空重输。

组合键实现密码修改:

密码修改必须通过不易被他人发现的特殊方法改变,所以设计为,若同时按住矩阵键盘的5,10 或6,9两个键,则进入密码修改函数。

输入密码错误三次则报错:

一般的密码系统对密码输入错误次数过多的情况进行了限制,所以在密码锁里设置,若密码输入错误三次,则进入警报界面,显示10s倒计时,必须在倒计时结束后才能再次输入密码。

组合键实现跳过密码:

如果系统主人临时忘记了密码,则需要一些补救的备用措施,所以在电子锁里设计了,如果同时按下0,15或3,12键,则跳过密码输入阶段,直接进入欢迎界面。

红外控制:

在很多时候,需要通过远程通信输入密码,进入某个远程服务器系统。所以,通过红外设备模拟远程通信就显得很有必要。再此系统中,通过把红外接收引脚接到外部中断INT0口,实现接收红外遥控器的数据。

重新输入:

如果密码输入的过程中,发现输错了一位数,方便起见,要设置重新输入的功能,即矩阵按键为11,或红外遥控键值为12时,重新输入密码,并且不计入输错次数。

二、 系统总体设计框架

系统模块分布图:

电子密码锁系统

密码输入及显示蜂鸣器模块

重设密码

跳过密码输入过程

警告音1602显示模

按键音

管理员模块

输入密码界面警告界面

重设密码界面欢迎界面

详细流程框图:

开始

若为重置密码指令

红外外部中断

键盘扫描

错误警报

进入欢迎界面

输入界面

是否为特殊组合键

输入是否达到6位

是否与正确密码相同错误次数达到三次?

系统锁定,并倒计时十

将输入密码暂存在数组

用*显示密码位数

否是

将输入的六位六位密码

数组与正确值比较

若为跳过密码指令

输入密码界面重置密码界面

输入是否达到6位

将输入密码存入正确密码数组中,完成重置否

三、运行结果

密码输入:

每次输入一个数字,则显示一个‘*’符号。

密码修改:

通过特殊组合按键,进入密码修改函数。

三次报错:

若密码输入错误三次,则进入警报界面。

特殊键清除:

通过特殊组合按键,进入密码修改函数。

红外控制:

通过红外遥控器输入密码。

重新输入:

通过红外遥控器的12号按键或矩阵键盘的11号按键可以重新输入密码。

四、实验小结

本次实验,用51单片机实现了电子密码锁系统,虽然内容较基础,但是还是新学到了一些新知识,如红外线的数据传输方式,外部中断的合理使用。

同时也遇到了一些问题:

用红外遥控器输入密码的时候,总会在短时间内把一个键值发给单片机发送两次,但是原因不是太清楚,可能是红外遥控器的抬起也算一个命令,然后我再判断主函数的红外线标志位判断的地方,加了0.5秒的延迟,解决了问题。以后有时间再把红外接收器的数据手册详细看看,研究问题出在哪里。

总体来说,这一次的动手设计还是让自身能力提高了不少,但其实我学习的东西还远远不够,在以后的学习里,我会抓紧课外时间多学习知识,才能将自身解决实际问题的能力快速提高。

五、参考文献

[1] 谭浩强,C语言程序设计,清华大学出版社,2005

[2] 张毅刚,单片机原理及接口技术,人民邮电出版社,2011

相关文档
最新文档