单片机密码锁实验报告精选
二○一六~二○一七学年第一学期电子信息工程系电子综合设计II报告书班 级:电信(产业)1401班 设计时间: 2016/12/29 学生姓名:曹子龙 学 号: 201404135024指导教师: 赵敏 二○一六年 十二 月 设计要求.题目内容:设计一个基于51单片机的电子密码锁:可以使用4*4的矩阵键盘与红外遥控器输入密码。可以通过按特殊组合键重设开锁密码。显示通过1602液晶屏显示电子密码锁界面,输入密码时显示输入个数显示为‘*’,如果密码正确,进入欢迎界面。密码连续输入3次错误报警,LCD显示报警,倒计时十秒后重新进入密码输入界面。可以通过特殊的按键组合跳过输入界面直接进入欢迎界面。实现方法:通过红外接收头,连接单片机的P3.2外部中断INT0口,可以实现单片机接收遥控器的信号输入。通过矩阵键盘扫描函数,可以实现对键盘输入的响应。通过引脚的高低电平变化频率,控制蜂鸣器的输入占空比和频率(低电平时间固定,通过输入给函数值的不同改变高电平时间,固定响300个周期),对不同按键实现不同声音响应。1602显示屏有16*2个单元格,每个单元格由5*8个像素点组成,可以很好的显示数字,符号,英文字符。功能需求分析:液晶屏显示:根据题意,需要设计并显示输入密码界面、修改密码界面、欢迎界面、错误警告界面密码输入:根据题意,每次输入一个数字,则显示一个‘*’符号代替,只能看出输入的位数,若输入密码位数达到六位,则与正确密码比较,若正确,进入系统。根据日常的手机使用习惯,默认长度为6位,且第六位输入之后立即判断,正确则进入,错误则清空重输。组合键实现密码修改:密码修改必须通过不易被他人发现的特殊方法改变,所以设计为,若同时按住矩阵键盘的5,10 或6,9两个键,则进入密码修改函数。输入密码错误三次则报错:一般的密码系统对密码输入错误次数过多的情况进行了限制,所以在密码锁里设置,若密码输入错误三次,则进入警报界面,显示10s倒计时,必须在倒计时结束后才能再次输入密码。组合键实现跳过密码:如果系统主人临时忘记了密码,则需要一些补救的备用措施,所以在电子锁里设计了,如果同时按下0,15或3,12键,则跳过密码输入阶段,直接进入欢迎界面。红外控制:在很多时候,需要通过远程通信输入密码,进入某个远程服务器系统。所以,通过红外设备模拟远程通信就显得很有必要。再此系统中,通过把红外接收引脚接到外部中断INT0口,实现接收红外遥控器的数据。重新输入:如果密码输入的过程中,发现输错了一位数,方便起见,要设置重新输入的功能,即矩阵按键为11,或红外遥控键值为12时,重新输入密码,并且不计入输错次数。系统总体设计框架系统模块分布图:详细流程框图:运行结果密码输入:每次输入一个数字,则显示一个‘*’符号。密码修改:通过特殊组合按键,进入密码修改函数。三次报错:若密码输入错误三次,则进入警报界面。 特殊键清除:通过特殊组合按键,进入密码修改函数。红外控制:通过红外遥控器输入密码。重新输入:通过红外遥控器的12号按键或矩阵键盘的11号按键可以重新输入密码。实验小结本次实验,用51单片机实现了电子密码锁系统,虽然内容较基础,但是还是新学到了一些新知识,如红外线的数据传输方式,外部中断的合理使用。同时也遇到了一些问题: 用红外遥控器输入密码的时候,总会在短时间内把一个键值发给单片机发送两次,但是原因不是太清楚,可能是红外遥控器的抬起也算一个命令,然后我再判断主函数的红外线标志位判断的地方,加了0.5秒的延迟,解决了问题。以后有时间再把红外接收器的数据手册详细看看,研究问题出在哪里。总体来说,这一次的动手设计还是让自身能力提高了不少,但其实我学习的东西还远远不够,在以后的学习里,我会抓紧课外时间多学习知识,才能将自身解决实际问题的能力快速提高。参考文献[1] 谭浩强,C语言程序设计,清华大学出版社,2005[2] 张毅刚,单片机原理及接口技术,人民邮电出版社,2011附录:源程序/******************************************************************************** 电子密码锁系统 Designed By 曹子龙 2016/12/29********************************************************************************/#include#include"lcd.h"//包含控制1602的初始化程序及写入命令的程序#define GPIO_KEY P1//矩阵键盘接口sbit IRIN=P3^2;//红外线接口sbit B