资源描述
课程设计(论文)
题 目 名 称 简易六位密码锁
课 程 名 称 单片机原理与应用
学 生 姓 名 郑勇 赵思聪 沈斌卓 杨友
学 号 1041303106
1041303104
1041303087
1041303097
系 、专 业 信息工程系 10级通信工程
指 导 教 师 李 兴 亮
2012年 12月 30日
目 录
摘要 3
1任务及要求 4
1.1 设计任务 4
1.2 设计要求 4
2设计思想 5
2.1 硬件设计思想 5
2.2 软件设计思想 6
3电路原理与电路图 7
3.1电路原理 7
3.2 电路原理图 7
4流程图与算法描述 7
4.1 流程图 7
5程序清单及仿真结果 8
5.1 程序清单 8
5.2仿真结果 11
6设计总结 12
6.1 设计体会 14
参考文献 15
摘 要
在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使 用传统的机械式钥匙开锁, 人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活 中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其 安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本 低、功耗低、易操作等优点。
在安全技术防范领域, 具有防盗报警功能的电子密码锁逐渐代替传统 的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。 随着大规模集成电路 技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它 除具有电子密码锁的功能外, 还引入了智能化管理、 专家分析系统等功能, 从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、 IC 卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指 纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若 在公共场所使用存在容易机械损坏,IC 卡还存在容易丢失、损坏等特点。 加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的 技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
关键词: 6位密码锁; AT89S52单片机; PROTEU仿真软件;
1 任务及要求
1.1 设计任务
(1) 设置七个键位,分别是确认,数字1,数字2,数字3,数字4,数字5,数字6,工作有提示(设通电状态为红灯亮)。
(2) 在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)。
(3) 输入密码时,数码管同步显示输入的数字。
(4) 输入正确后,有解锁提示(设为绿灯亮),输入错误后也有提示(设为红灯闪烁和鸣笛警告)
(5) 输入错误后可以重输,要有复位功能。
1.2 设计要求
利用AT89S52单片机的P2端口的P2.0--P2.6连接到7个按键开关上,分别是输入键数字1,数字2,数字3,数字4,数字5,数字6和确认键,P2.7接蜂鸣器。启动时,按下电源开关,红色指示灯长亮,输入密码,而数码管显示输入的相应数字,然后按下确认键,若密码正确,绿灯亮,数码管熄灭,弱密码错误,红灯闪烁,蜂鸣器响,发出警报。
2 设计思想
2.1 硬件设计思想
2.11 键盘设计
本设计使用7按键,从上到下,从左至右依次设为确认键,数字1,数字2,数字3,数字4,数字5,数字6,用来输入密码,如下图
2.12 数字显示设计
使用共阳极七段数码管来显示输入的数字,图如下:
2.13 检验密码电路设计
使用LED灯和蜂鸣器来提示输入的密码是否正确,若密码正确,绿灯亮,若密码错误,红灯闪烁,蜂鸣器响,电路如图:
2.2软件设计思想
电子密码锁工作的主要过程是从键盘开始输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
密码的设定,在此程序中密码是固定的,预设的密码为"532416"共6位密码。
在单片机内部预设六位密码,在使用密码解锁器时,要按预设的密码依次输入才能完成解锁。预设密码以外的数字都不能解开密码锁(如输入非6位或输入6位与预设密码不同的数字)
输入密码时,数码管要在单片机的控制下同步显示输入的数字。
3 电路原理与电路图
3.1 电路原理
单片机最小系统。一个AT89S52单片机做为控制电路,运用其P2口来实现密码的输入和蜂鸣器的报警,通过P0口给数码显示管高低不同电平信号,来实现输入密码的显示,P1接指示灯。
3.2 电路原理图
4 流程图
4.1流程图
5 程序清单与仿真结果
5.1 程序清单
10
#include<reg52.h>
sbit mm1=P2^0;//密码按键1-8
sbit mm2=P2^1;
sbit mm3=P2^2;
sbit mm4=P2^3;
sbit mm5=P2^4;
sbit mm6=P2^5;
sbit mmok=P2^6;
sbit l1=P1^0;
sbit l2=P1^2;
sbit fmq=P2^7;
void init()
{
P0=0xff;//禁止数码管显示
mm1=1;
mm2=1;
mm3=1;
mm4=1;
mm5=1;
mm6=1;
mmok=1;
fmq=1;
l1=1;
l2=1;
}
void delayms(unsigned int t)
{
unsigned int i,j;
for(i=t;i>0;i--)
for(j=114;j>0;j--);
}
void main()
{
unsigned char mmsr,bn,bn1,bn2,bn3,bn4,bn5;
mmsr=0;
bn=0;
bn1=0;
bn2=0;
bn3=0;
bn4=0;
bn5=0;
mmsr=1;
init();
while(1)
{
if(mmsr==1)
{
if(mm5==0) //系统8位 程序密码532416
{
delayms(10);
if(mm5==0)
{
bn=1;
P0=0xff;//消隐
P0=0x92;//显示5
}
}
if((mm3==0)&(bn==1))
{
delayms(10);
if((mm3==0)&(bn==1))
{
bn1=1;
P0=0xff;//消隐
P0=0xb0;//显示3
}
}
if((mm2==0)&(bn1==1))
{
delayms(10);
if((mm2==0)&(bn1==1))
{
bn2=1;
P0=0xff;//消隐
P0=0xa4;//显示2
}
}
if((mm4==0)&(bn2==1))
{
delayms(10);
if((mm4==0)&(bn2==1))
{
bn3=1;
P0=0xff;//消隐
P0=0x99;//显示4
}
}
if((mm1==0)&(bn3==1))
{
delayms(10);
if((mm1==0)&(bn3==1))
{
bn4=1;
P0=0xff;//消隐
P0=0xf9;//显示1
}
}
if((mm6==0)&(bn4==1))
{
delayms(10);
if((mm6==0)&(bn4==1))
{
bn5=1;
P0=0xff;//消隐
P0=0x82;//显示6
}
}
if(mm1==0)
{
delayms(10);
if(mm1==0)
{
P0=0xff;//消隐
P0=0xf9;//显示1
}
}
if(mm2==0)
{
delayms(10);
if(mm2==0)
{
P0=0xff;//消隐
P0=0xa4;//显示2
}
}
if(mm3==0)
{
delayms(10);
if(mm3==0)
{
P0=0xff;//消隐
P0=0xb0;//显示3
}
}
if(mm4==0)
{
delayms(10);
if(mm4==0)
{
P0=0xff;//消隐
P0=0x99;//显示4
}
}
if(mm5==0)
{
delayms(10);
if(mm5==0)
{
P0=0xff;//消隐
P0=0x92;//显示5
}
}
if(mm6==0)
{
delayms(10);
if(mm6==0)
{
P0=0xff;//消隐
P0=0x82;//显示8
}
}
if(mmok==0)
{
delayms(10);
if(mmok==0)
{
if((bn==1)&(bn1==1)&(bn2==1)&(bn3==1)&(bn4==1)&(bn5==1)) //密码成功
{
while(1)
{
P0=0xff;
l2=0;
delayms(100);
}
}
else
{
while(1)
{
P0=0xff;
fmq=0;
l1=0;
delayms(100);
l1=1;
delayms(100);
}
}
}
}
}
}
}
5.2 仿真结果
1,开始仿真,按下开关,红灯亮
2,输入正确的密码(532416),数码管显示相应的数字
3,(正确密码)按下确认键,绿灯亮
4,若输入错误密码,则红灯闪烁,蜂鸣器响(图内为导通状态)
6 设计总结
6.1 设计体会
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想。
在拿到这个设计题目的时候,大家心中都没底。特别是在焊接的过程中,遇到了各种困难。总是焊接的不好,不是焊少了,就是把线焊断了。心想这下完了,不过好在有赵思聪同学和沈斌卓同学,他们曾经在厂里焊接过类似的东西。所以我们最终在老师和小组成员的共同努力下,克服了焊接问题。在此我要感谢指导老师的悉心教导和小组成员的共同配合与努力。
设计过程,好比是我们人类成长的历程,常有一些不如意,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题还会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
本次设计中我懂得了许多东西,也培养了我设计的能力,树立了对自己能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。即便这个设计做的也不太好,但在设计过程中所学到的东西是这次设计的最大收获和财富。
为此我要感谢我的学校,是她给了我这次锻炼实际能力的机会,提供了这个平台和条件。我还要非常感谢我的指导老师—李兴亮老师,感谢李老师不辞辛苦的细心辅导,让我对单片机原理这门课程有了更深刻的认识,让我对独立做课程设计有了信心。
参考文献
[1] 蔡美琴,张为民,沈新群等.MCS51系列单片机系统及其应用[M].北京:高等教育出版社,1992.
[2]何立民.单片机应用技术选篇(5)[M].北京:北京航空航天大学出版社,1997.
[3]杨光友. 单片机微型计算机原理及接口技术[M].北京:中国水利水电出版社,2002
[4]李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994
[5]阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989
15
展开阅读全文