单片机密码锁实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二○一六~二○一七学年第一学期
电子信息工程系
电子综合设计II
报告书
班级:电信(产业)1401班
设计时间:2016/12/29
学生姓名:曹子龙
学号:201404135024
指导教师:赵敏
二○一六年十二月
一、设计要求.
题目内容:
设计一个基于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