密码锁.docx
- 文档编号:26981465
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:24
- 大小:2.10MB
密码锁.docx
《密码锁.docx》由会员分享,可在线阅读,更多相关《密码锁.docx(24页珍藏版)》请在冰豆网上搜索。
密码锁
重庆邮电大学
单片机应用课程设计
2013-2014
(1)
课设题目:
单片机密码锁
指导教师:
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
本文以SST89E51单片机为核心器件,结合按键电路、LED数码管显示电路、报警指示电路和开锁指示电路,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能,其主要具有如下功能:
(1)使用LED来显示密码输入的相关信息;
(2)可以设置4位数字(0~9)密码;
(3)内定的数字密码为“1234”;
(4)密码输入正确,蜂鸣器鸣叫一声,然后4个二极管全亮,表示进入系统;
(5)当密码错误时LED显示“CUO”,蜂鸣器报警1.2s。
此外还拓展了以下功能:
(1)开机时LED显示“HELLO”字样;
(2)增加了语音功能,按键时发出声音,4个二极管全亮提示;
(3)锁定功能,密码错误3次,系统锁定,灯闪烁报警,蜂鸣器鸣叫;
(4)密码输入正确及密码错误3次,蜂鸣器发出不同的声音。
1.系统的主要设计和主要元器件介绍
1.1系统总设计结构图
图1单片机控制密码锁的系统原理框图
图2单片机控制密码锁总电路图
1.2系统硬件设计
1.2.1报警电路
报警电路由蜂鸣器、PNP三极管和单片机组成。
图3报警电路
1.2.24*4矩阵键盘输入电路
键盘是系统中的手动控制部分,所以键盘的设计就显得尤为的重要。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要M条行线和N条列线,即可组成具有M×N个按键的键盘。
由于本设计中要求使用16个按键输入,为减少键盘与单片接口时所占用的I/O线的数目,故使用矩阵键盘。
键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。
图4矩阵键盘原理图
图5键盘实物图
具体的功能设计如表1所示:
按键
键名
功能说明
K0-K9键
数字键
输入密码
KA键
清除键
清除当前键入的数据
KB键
修改密码键
在输入正确密码后按下,可修改密码
KC键
退出系统键
密码输入正确后退出系统
KD键
退格键
删除前一位键入
KE键
确认键
确认输入的数据
RET键
断电键
死机、锁定时按键断电
表1按键说明
操作说明:
密码锁初始密码为:
1234
●开锁:
连上电脑程序之后,系统出现欢迎界面,可以看到LED显示HELLO。
程序自动调入初始密码,按数字键输入密码,然后按“KE”(确认)键,此时锁会打开,可以看到4个二级管发亮,蜂鸣器一直鸣叫。
●退出并关锁:
按下“KC”(退出系统)键,此时锁关闭,所有输入清除,继电器关闭,灯暗。
●修改密码:
在输入正确密码下,按下“KB”(修改密码)键,此时可以输入新密码,然后按下确认键。
●报警并锁定键盘:
当1次输入密码错误后,LED显示“CUO”字样,蜂鸣器发出短警报。
当连续3次输入密码错误后,LED显示“ERROR”字样,系统锁定键盘,二极管闪烁,蜂鸣器发出长警报,系统锁定。
1.2.3显示电路
显示是系统的输出部分,用于观察当前的输入状态。
显示电路采用LED数码管对位码进行驱动。
其实际上是由七个发光管组成8字形构成的,加上小数点就是8个。
发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。
本次实验采用的是共阴数码管。
图6共阴数码管
显示方式有静态显示和动态显示两种显示方式。
动态显示占用口线数目较少,适合用在显示位数较多的场合,但显示位数的增多,将占用大量的CPU时间。
图7四位数码管
1.2.4开锁电路
开锁电路以蜂鸣器的长鸣以及发光二极管全亮提示开锁,以继电器的动作来模拟锁的开闭,。
通过单片机送给开锁执行机构,电路驱动继电器吸合,从而达到开锁的目的。
当用户输入的密码正确时,单片机便输出开门信号,送到继电器驱动电路,然后驱动继电器常开触点闭合,达到开门的目的。
本次设计中,继电器选用固态继电器,信息通过数码管显示,并利用蜂鸣器和发光二极管声光指示。
四盏二极管长亮,蜂鸣器长鸣,表示开锁。
图8继电器控制电路
图9开锁程序流程图
1.3元器件采购
原件名称
备注
学习板
2个
三极管
3个
蜂鸣器
2个
电阻
1K欧2个,100欧2个,5.1K欧3个,610欧3个
继电器
4个
杜邦线
若干
排针
1排
表2采购清单
1.4电路焊接
1.4.1焊接所需工具
工具名称
数量
焊烙铁
1个
焊丝
若干
万用表
1个
表3焊接工具
1.4.2实物图
图10电路板正面实物图
图11电路板背面实物图
图12电路板正面实物图
图13电路板背面实物图
2.系统软件设计
2.1欢迎界面模块
代码如下:
voidhello_()
{
for(j=0;j<300;j++)
{for(i=0;i<8;i++)
{
P0=huanying[i];
segce=1;
segce=0;
P0=dig[i];
digce=1;
digce=0;
delay
(1);
}
}
}
2.2输入密码错误显示模块
代码如下:
voidmiss_()
{P2_0=0x0;
for(j=0;j<300;j++)
{for(i=0;i<4;i++)
{
P0=miss[i];
segce=1;
segce=0;
P0=dig[i];
digce=1;
digce=0;
delay
(1);
}
}
P2_0=1;
}
2.3按键扫描模块
代码如下:
voidkeyscan(unsignedintx)//键盘扫描
{unsignedchartemp1,temp2;
P0=0;segce=1;segce=0;
P0=dig[x];digce=1;digce=0;//拉低第x行
keyce=0;//开启按键使能
temp1=P0;//读P0口
temp1=temp1&0x0f;//提取低四位,是哪一行
if(temp1!
=0x0f)//判断按键是否按下
{
delay(12);//延时消抖
temp2=P0;temp2=temp2&0x0f;
if(temp1==temp2)
{
switch(temp2)
{
case0x0e:
//键盘第一列
{
if(x!
=3)
{
key=3*(x+1)-(3-x);
}
else
{
key=num[count];
}
}
break;
case0x0d:
//键盘第二列
{
if(x!
=3)
{
key=3*(x+1)-(3-x)+1;
}
else
{
if(count!
=0)
{
count--;
}
else
{
count=-1;
}
num[count+1]=0;
}
}
break;
case0x0b:
//键盘第三列
{
if(x==0|x==1)
{
key=3*(x+1)-(3-x)+2;
}
elseif(x==2)
{
clear();
key=0;
}
else
{
yanzheng_mima();
if(1==change)
{
change=0;
for(x=0;x<4;x++)
{
mima[x]=num[x];
}
clear();break;
}
if(0==right)
{
miss_();
wrong++;
fault=1;
count=-1;
}
if(1==right&change!
=1)
{
right=0;
check=1;
}
key=0;
}
}
break;
case0x07:
//键盘第四列
{
if(x==0|x==1)
{
key=3*(x+1)-(3-x)+3;
}
elseif(x==2)
{
yanzheng_mima();
if(1==right)
{
change=1;
key=0;
}
else
{
key=num[count];
}clear();
}
else
{
key=num[count];
}
}
break;
default:
break;
}
if(x!
=3)
{
count++;
if(4==count)
{
count=0;
}
num[count]=key;
}
}
}
while(temp2!
=0x0f)//判断按键是否松开
{
temp2=P0;
temp2=temp2&0x0f;
P2_0=0;
ledce=0;//此处三行可使每按一下同时亮四盏灯
P0=0xf0;
ledce=1;
}
P2_0=1;
keyce=1;
}
2.4数码管显示模块
代码如下:
voiddisplay()//显示函数
{
if((0==check|3==wrong)&count!
=-1)
{
for(n=0;n<=count;n++)
{
P0=dig[n];
digce=1;
digce=0;
P0=seg[num[n]];//每按一次count计数一次,,也就是说,每按一个数显示一个,在错误的情况显示特定的示数
segce=1;
segce=0;
delay
(1);
}
}
}
3.测试方案与测试结果
3.1测试方案及优化
最先的设计是密码输入正确与密码输入错误时,LED显示的是闪烁花纹。
开锁状态下蜂鸣器长鸣,将设计好的电路在电脑上经过仿真,测试通过之后,在硬件上进行测试,发现效果不理想。
最终改为密码输入正确时,二极管长亮,蜂鸣器长鸣;密码输入错误时,LED显示字符“CUO”,蜂鸣器短暂报警。
3.2结果的完整性以及测试结果分析
以下是在硬件上进行仿真的实物图:
图14系统欢迎界面
图15输入密码界面
图16密码错误界面
图17系统锁定界面
图18输入正确密码
图19密码通过界面
图20按键后二极管闪亮
4.总结
对于每一个小组成员,我们都应明确他所善长和能胜任的方面,并且每一成员都应自发地承接自己所擅长的工作,遇到问题时要与大家一起商量讨论,找出切实可行的方案,这样才能发挥每一个成员的作用,发回出小组真正的能力,更好的完成课题。
我们小组在本此课题中正是这样做的。
我们首先共同商讨,根据小组成员能力和一些技术上的问题,发挥自己的创新意识和对现实的应用价值,一起确定了“单片机密码锁”这一课题的实施步骤,进而,一起确定了大体思路。
小组成员根据自己能力提出自己想成接的任务,最后再根据实际情况,大家一起均衡分配工作任务。
并在各自完成任务的同时,周期地一起讨论课程的进程,并对遇到的一些问题,提出来一起解决,这样我们小组成员可以对整个项目有一个全面的了解,这倒自己下一步该如何做,最重要的是解决遇到的问题,不致因一个小方面的问题而使整个项目无法完成,与此同时还要善于与其他小组交流,并一起对所交流问题一起研讨。
这样才能从中找出最好的方法。
这就是我们小组在本次课题中的基本过程,虽然我们遇到了很多问题和困难,但我们合作得很愉快,很团结,直到项目完全结束。
最后,也是最重要的一点,通过这次课题,我们学到了很多有关单片机方面的知识,也对单片机有了更深入的了解,这使我们受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码锁
![提示](https://static.bdocx.com/images/bang_tan.gif)