单片机密码锁实验报告Word格式文档下载.docx
- 文档编号:13569605
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:24
- 大小:4.40MB
单片机密码锁实验报告Word格式文档下载.docx
《单片机密码锁实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机密码锁实验报告Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
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时,重新输入密码,并且不计入输错次数。
二、系统总体设计框架
系统模块分布图:
详细流程框图:
三、运行结果
每次输入一个数字,则显示一个‘*’符号。
密码修改:
通过特殊组合按键,进入密码修改函数。
三次报错:
若密码输入错误三次,则进入警报界面。
特殊键清除:
通过红外遥控器输入密码。
重新输入:
通过红外遥控器的12号按键或矩阵键盘的11号按键可以重新输入密码。
四、实验小结
本次实验,用51单片机实现了电子密码锁系统,虽然内容较基础,但是还是新学到了一些新知识,如红外线的数据传输方式,外部中断的合理使用。
同时也遇到了一些问题:
用红外遥控器输入密码的时候,总会在短时间内把一个键值发给单片机发送两次,但是原因不是太清楚,可能是红外遥控器的抬起也算一个命令,然后我再判断主函数的红外线标志位判断的地方,加了0.5秒的延迟,解决了问题。
以后有时间再把红外接收器的数据手册详细看看,研究问题出在哪里。
总体来说,这一次的动手设计还是让自身能力提高了不少,但其实我学习的东西还远远不够,在以后的学习里,我会抓紧课外时间多学习知识,才能将自身解决实际问题的能力快速提高。
五、参考文献
[1]谭浩强,C语言程序设计,清华大学出版社,2005
[2]张毅刚,单片机原理及接口技术,人民邮电出版社,2011
六、
附录:
源程序
/*******************************************************************************
*电子密码锁系统DesignedBy曹子龙2016/12/29*
*******************************************************************************/
#include<
reg51.h>
#include"
lcd.h"
//包含控制1602的初始化程序及写入命令的程序
#defineGPIO_KEYP1//矩阵键盘接口
sbitIRIN=P3^2;
//红外线接口
sbitBeep=P2^0;
//蜂鸣器接口
unsignedcharcodeCDIS0[16]={"
SetCode:
"
};
//用来初始化1602屏幕显示内容的字符串数组
unsignedcharcodeCDIS1[16]={"
EnterCode:
unsignedcharcodeCDIS2[16]={"
Code:
unsignedcharcodeCDIS3[16]={"
Welcometo"
unsignedcharcodeCDIS4[16]={"
MySystem!
"
unsignedcharcodeCDIS5[16]={"
Warning:
unsignedcharcodeCDIS6[16]={"
PleaseWaits!
unsignedintRIGHTCODE[6]={9,7,0,2,2,9};
//初始正确密码
unsignedintCode[6];
//用来存放输入密码
unsignedintKeyValue;
//用来储存键值
unsignedintKey_Flag=0;
//有按键按下时置为1
unsignedintHongwaiValue;
unsignedintHongwai_Flag=0;
//有红外信号时置为1
unsignedintAnnum=0;
//用来储存按键次数
unsignedintWrongnum=0;
//用来储存错误次数
unsignedintCodeFlag=0;
//用来标识密码是否输入正确
unsignedintCodeDel=0;
//特殊组合键可以清除密码
unsignedcharIrValue[6];
//暂存接收到的红外信号
unsignedcharTime;
unsignedcharWrongTime;
//用来储存错误等待时间
voidSetCode();
//重置密码函数
voidhongwai();
//将红外接收的值变为对应的按键值
voidIrInit();
//红外初始化
voidDelayMs(unsignedint);
voidbeep(unsignedint);
//可让蜂鸣器实现不同频率声音的函数
voidKeyScan();
//键盘扫描函数
*函数名:
main
*函数功能:
主函数
voidmain()
{
unsignedchari;
IrInit();
LcdInit();
LcdWriteCom(0x80);
//初始化LCD1602显示,展示密码输入界面
for(i=0;
i<
16;
i++)
{
LcdWriteData(CDIS1[i]);
}
LcdWriteCom(0x80+0x40);
i++)
LcdWriteData(CDIS2[i]);
while
(1)
KeyScan();
//扫描键盘
if(CodeDel==4)//若输入正确的组合按键,可重设密码
SetCode();
elseif(CodeDel==2)//若输入正确的组合按键,则清除密码,直接进入系统
{
Wrongnum=0;
//若输入正确,错误次数清零
Annum=0;
//密码计数器清零
CodeDel=0;
//组合键标志位清0
Key_Flag=0;
//按键标志位清0
Hongwai_Flag=0;
//红外标志位清0
LcdWriteCom(0x80);
//进入欢迎界面5s
for(i=0;
{
LcdWriteData(CDIS3[i]);
}
LcdWriteCom(0x80+0x40);
LcdWriteData(CDIS4[i]);
DelayMs(50000);
LcdWriteCom(0x80);
i++)//等待结束后,次数清零,显示输入密码界面
LcdWriteData(CDIS1[i]);
LcdWriteData(CDIS2[i]);
}
if(Key_Flag==1)
Code[Annum-1]=KeyValue;
//将输入值存入密码数组中
beep(KeyValue*30);
LcdWriteCom(0xc0+6+Annum);
LcdWriteData(42);
if(Hongwai_Flag==1)//若接受到了红外数据
DelayMs(500);
if(Hongwai_Flag==1)//不知道因为什么原因,红外接收的中断会开启两次,为了防止数据重复,写了此次延时判断
Annum++;
//按键次数加1
Hongwai_Flag=0;
Code[Annum-1]=HongwaiValue;
//将输入值存入密码数组中
beep(HongwaiValue*40);
LcdWriteCom(0xc0+6+Annum);
LcdWriteData(42);
if(Annum>
=6)//6位密码输入完毕或检测到特殊组合按键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 密码锁 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)