密码锁论文Word文档下载推荐.docx
- 文档编号:21779961
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:22
- 大小:390.16KB
密码锁论文Word文档下载推荐.docx
《密码锁论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《密码锁论文Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
1.3设计性能要求1
1.4总体方案设计2
2硬件电路设计3
2.1单片机控制模块3
2.2显示模块5
2.3按键模块6
3软件程序设计8
3.1主程序的设计8
3.2按键输入子程序9
3.3数码管显示子程序11
4调试及性能分析14
4.1操作使用说明及测试过程14
4.3性能分析15
结束语16
参考文献17
致谢18
附录A硬件原理图19
附录B程序清单20
1前言
1.1实训目的和意义
1.学会使用proteus仿真软件进行仿真图的绘制。
2.可使用keil软件及c语言作为基石编写程序。
3.掌握单片机最小系统的组成以及按键、数码管等的工作原理。
4.初步学会利用单片机设计简单的系统。
1.2设计背景
随着科技的发展,安全已经成为人们关注的焦点之一,于是各种各样的安全产品相继问世(如指纹防盗,红外防盗,GPS等)。
虽然这类产品安全性高,但因其生产成本较高,携带安装使用不方便,在一定程度上限制了这类产品的普及和推广。
本文介绍的是一种基于单片机智能密码锁的硬件和软件设计及实现的方法,这种电路设计具有修改密码,错误提示等多种功能,可在意外泄密的情况下随时修改密码,4位数字式密码共一万组不重复组合,保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等公开场所。
由于单片机的集成度高,功能强,通用性好等优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。
智能密码锁就是以单片机为核心的数字匹配系统,由显示器、按键等组合而成。
通过此次基于单片机设计的智能密码锁系统,我们可以更清楚详细地了解单片机程序设计的基本指令功能、编程步骤和技巧、单片机的结构和原理,以及基于单片机开发应用的相关芯片的工作原理,并且可以在将来的工作和学习中加以实际应用。
1.3设计性能要求
1 数字密码锁能够设置4位数字密码;
2 输入密码正确显示”ON”,输入错误显示”OFF”;
如果不会用液晶可以使用LED的状态来表示。
3 密码初始值为“8888”;
4 输入原密码正确可以修改密码。
1.4总体方案设计
在现代电子技术领域中,实现智能密码锁系统的电路多种多样,各有千秋。
可以通过纯硬件电路的设计方法实现,也可采用硬件电路与软件相结合的设计方法(即基于微处理器)来完成。
设计过程中,总体方案的选择必须和实际情形相结合,从各个方面全面考虑设计的可行性和稳定性,综合寻求最佳设计方案。
若采用纯硬件电路的方法实现控制,则所应用的集成电路芯片较多,电路结构错综复杂,进而功能实现起来比较麻烦,并且稳定性不是太高,所以本设计不予考虑该方案,将直接采用基于单片机STC89C52的硬件电路与软件相结合的方法来实现其所具有的功能,电路简单明了,集成电路芯片较少,且功能完善,稳定性较高。
系统分为单片机控制模块、显示模块和按键模块。
显示模块采用共阴极四位一体8段数码管;
按键采用4个独立式按键,分别对应加一、减一、下一个和确认四个功能。
根据四个按键可输入四位数字式密码,确认后将输入的数字与内部所设定的密码进行比较,若正确,则显示“YES”字样,表示输入正确,其后可自行更改密码;
对比结果错误时,显示器将显示“NO”字样,表示输入错误,将重新输入密码。
整个系统的系统框图如图1所示。
图1系统框图
2硬件电路设计
2.1单片机控制模块
智能密码锁设计是基于单片机控制的数字匹配密码系统,由于单片机电路自身并不能独立运行,所以需要外加电路,采用单片机最小系统来控制。
单片机最小系统能够正常运行的必要条件是由电源、时钟电路和复位电路同时驱动,虽然结构看似简单,却是大多数控制系统所必不可少的关键部分,是整个系统的核心。
智能密码锁设计所采用的单片机是STC公司研发的8位单片机处理芯片STC89C52,其内部设有4KB片内程序存储器(ROM)和128字节的片内存取存储器(RAM),2个16位定时/计数器,5个中断源,足以满足本设计的需求,并且个人对51系列单片机比较熟悉,操作也相对比较方便,智能密码锁最小系统电路设计如图2所示。
图2单片机最小系统模块
2.1.1时钟电路
单片机若要执行指令,必须要经过取指令、分析指令和执行指令三个步骤。
然而每个步骤又由许多个微操作所组成,如果要正常运行程序,那么这些微操作必须在一个统一的时钟控制下才能实现,也就是说,要给单片机设定一个它能识别的“时间”。
单片机的时钟信号可以有两种方式产生,即内部时钟方式和外部时钟方式。
XTAL1和XTAL2为片内振荡电路的输出端。
内部时钟方式时,需要在这两个引脚外接石英晶体和振荡电容;
外部时钟方式时,即将XTAL1接地,外部时钟信号从XTAL2引脚输入。
篮球赛计时器设计采用由1个11.0592MHz的晶振和2个22pF的电容组成的内部时钟振荡方式(如图3所示),晶振的两端跨接在单片机的XTAL1和XTAL2引脚上(在本电路是18,19管脚),这样就形成了一个可以稳定自激的振荡器。
图3时钟电路设计
2.1.2复位电路
单片机在开始上电的时候,还有数据异常,或者受到外部影响而无法正常工作的时候,电路都要进行复位,以便使内部的处理器重新从一个确定的初始状态(复位后,程序计数器PC=0000H)开始工作。
无论是调试程序,或者检查异常的时候,这一点很方便电路的功能实现和调试。
产生单片机复位的条件是:
在RST引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟振荡周期建立时间再加2个机器周期时间。
同样,复位电路也可由两种方式产生,即上电复位方式和按键复位方式。
上电复位是利用阻容充电电路实现的,在单片机上电的瞬间,RST端的电位与VCC相同。
随着充电电流的减小,RST端的点位将逐渐下降。
只要选择合适的电容元件和电阻元件,使其RC时间长数大于复位时间,即可保证上电复位的发生。
按键复位方式是利用电阻分压电路实现的,当按键压下时,串联电阻上的分压可以使得RST端产生高电平,按键抬起时又产生低电平。
只要按键动作产生的复位脉冲宽度大于复位时间,即可保证按键复位的发生。
智能密码锁设计采用的是实际应用中最为常见的复位电路,即复合复位的方法,它可以自动或手动实现复位功能,其电路设计如图4所示。
图4复位电路设计
2.2显示模块
智能密码锁设计采用共阴极四位一体8段数码管用于显示功能,如图5所示。
不管什么种类的数码管,它所显示的原理都是一样的,都是靠点亮内部的发光二极管来实现发光。
根据数码管内部电路可以看出,一位数码管的引脚是10个,显示一个8字需要7个小段,另外还有一个小数点,所以其内部一共有8个小的发光二极管,最后还有一个公共端,生产商通常为了封装统一,单位数码管都封装10个引脚,其中第3和第8引脚是相连接在一起的。
而它们的公共端又可以分为共阳极和共阴极。
智能密码锁设计采用共阴极数码管,对于共阴极数码管来说,其内部8个发光
图5数码管显示电路
二极管的所有阴极是全部连接在一起的,电路连接时,公共端接低电平,因此,我们要点亮的那个发光二极管就需要给阴极送低电平,此时显示数字的编码与共阳极编码是相反的关系。
数码管内部发光二极管点亮时,也需要5毫安以上的电流,而且电流不可过大,否则会烧毁发光二极管。
由于单片机的I/O口送不出如此大的电流,所以数码管与单片机相连时,需要外加驱动电路,通常可采用上拉电阻或
74HC573锁存器。
本设计采用上拉电阻的方法实现数码管的驱动。
因为智能密码锁设计需要显示多位数字,故采用四位一体数码管。
多位一体时,他们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一个数码管点亮,而连接在一起的段线可以控制这个能点亮的数码管亮什么数字,基于此原理,再利用数码管的余晖效应,即可实现多位数码管同时显示数字的效果。
2.3按键模块
智能密码锁设计所采用的按键是独立式按键,各键之间是相互独立的。
当某键按下时,该键所对应的端口电位就由高电平转变为低电平,CPU访问并识别之后,根据程序作出相应的处理。
电路图如6所示。
其中,K1为数字加一键,K2为数字减一键,K3为切换键,K4为确认键。
当按下切换键时,开始输入密码,K1和K2用于调整当前数字的数值,依次用K1、K2和K3键将四位数字全部输入后,按下K4确认键,系统将在内部比较输入数字与正确密码的关系,再进行接下来执行的任务。
图6按键模块电路
使用按键有一个不可避免的问题就是按键抖动。
若要正常使用按键,必须要设法消除此问题,最常用的办法就是利用软件延时的方法,即检测到按键按下时,不急着执行相关指令,先延时一段时间,再次检测其状态,若仍是闭合,才认为是真正的闭合状态,执行对应指令;
不然,则不予执行对应指令。
3软件程序设计
3.1主程序的设计
一个系统的正常运行不仅需要硬件电路作为支撑,更离不开软件程序在其中所发挥的作用。
本设计从各个模块开始,给各模块绘制相应的流程图,根据流程图逐次编写程序,各模块程序都编写完毕且调试正确后,再集中起来进行调试,完成软件部分的设计。
主程序设计的设计思想在将所有子程序处于一个无限循环中,单片机不断执行个子程序的内容,即按键输入、数码管显示等。
主程序流程图如图8所示。
图8主程序流程图
主函数程序如下:
voidmain()
{
q1=q2=q3=q4=10;
//使其显示“----”
m1=m2=m3=m4=8;
//默认密码8888
while
(1)
KEY();
//按键输入
led_xs();
//显示函数
}
3.2按键输入子程序
智能密码锁设计中4个按键对应4种功能,分别是数字加一、数字减一、输入切换和确认键。
输入切换用于控制哪一位数字,进而利用K1和K2键来调整该位数字的变化,依次四位输入完毕后,按下K4确认键后,再执行相关任务。
图9按键输入模块流程图
按键输入模块子程序如下:
voidKEY()
{
if(!
K3)//如果K3按下
{
delay(140);
//延时
if(!
K3)//确定K3按下
{
n++;
//标志位+1
switch(n)//判断标志位
case1:
q1=0;
break;
//标志位为1对应第一个数码管的数字
case2:
q2=0;
//标志位为2对应第二个数码管的数字
case3:
q3=0;
//标志位为3对应第三个数码管的数字
case4:
q4=0;
//标志位为4对应第四个数码管的数字
case5:
if(q1==11&
&
q2==11&
q3==11&
q4==11)
{j++;
n=1;
}//标志位为5如果密码输入正确
if(j==2)//则进入改密码模式
j=0;
//若不需要改密码直接跳过
break;
case6:
j=0;
q1=q2=q3=q4=10;
n=0;
}//密码标志位清0变成输入模式重新输入数字
}
}
if(!
K1)//如果K1按下
K1)
switch(n)//判断标志位和输入/改密码
{//进行+1处理
case1:
if(j==0)q1++;
if(q1==10)q1=9;
if(j==1)m1++;
if(m1==10)m1=9;
//如果输入大于9则令其为9
case2:
if(j==0)q2++;
if(q2==10)q2=9;
if(j==1)m2++;
if(m2==10)m2=9;
case3:
if(j==0)q3++;
if(q3==10)q3=9;
if(j==1)m3++;
if(m3==10)m3=9;
case4:
if(j==0)q4++;
if(q4==10)q4=9;
if(j==1)m4++;
if(m4==10)m4=9;
}
K2)//如果K2按下
{
K2)
switch(n)//判断标志位和输入/改密码
{//进行-1处理
case1:
if(j==0)q1--;
if(q1==-1)q1=0;
if(j==1)m1--;
if(m1==-1)m1=0;
//如果输入小于0则令其为0
if(j==0)q2--;
if(q2==-1)q2=0;
if(j==1)m2--;
if(m2==-1)m2=0;
if(j==0)q3--;
if(q3==-1)q3=0;
if(j==1)m3--;
if(m3==-1)m3=0;
case4:
if(j==0)q4--;
if(q4==-1)q4=0;
if(j==1)m4--;
if(m4==-1)m4=0;
K4)//如果K4按下
K4)
if(q1==m1&
q2==m2&
q3==m3&
q4==m4)
q1=q2=q3=q4=11;
//如果输入的数跟密码一样让其显示YYYY
else
q1=q2=q3=q4=12;
//不一样显示XXXX
}
3.3数码管显示子程序
四位一体数码管显示原理前文已有讲述,先送位码,选位置,再送段码,显数字。
本子程序流程图设计如图10所示。
图10数码管显示流程图
数码管显示模块子程序如下:
voidled_xs()
if(j==0)//判断是输入数字
P2=table_w[0];
//定位到第一个数码管
P0=table[q1];
//写入数值
delay
(1);
P2=table_w[1];
P0=table[q2];
P2=table_w[2];
P0=table[q3];
P2=table_w[3];
P0=table[q4];
if(j==1)//判断是密码数字
P0=table[m1];
P0=table[m2];
P0=table[m3];
P2=table_w[3];
P0=table[m4];
4调试及性能分析
4.1操作使用说明及测试过程
上电或复位后后,数码管默认显示“----”字符(见图11),表示密码输入准备阶段。
按下K3切换键后,第一个数码管显示0,此时可通过K1和K2调整数字的大小(见图12),再次按下K3切换键后,第二个数码管显示0,依旧按此方法把四位密码输入完毕后,按下K4键,若密码正确,显示“YYYY”字符(见图13),输入错误则显示“HHHH”字符(见图14)。
若密码输入正确,在图13的显示下再次按下K3键,则进入密码更换状态,若不需更换,则可直接跳过,若需更换,则按照输入密码一样的操作进行即可,方便快捷。
图11默认显示字符
图12输入密码界面
图13输入正确时的界面
图14输入错误时的界面
4.3性能分析
该设计是基于单片机制作而成的智能密码锁系统,其包含以下几个功能:
1 具有四位数字式密码,可更改。
2 初始密码为8888.
3 输入正确与输入错误显示结果不同。
有四个功能键,分别为:
K1:
数值加一键,可令当前对应数字加一。
K2:
数值减一键,可令当前对应数字减一。
K3:
数值切换键,可控制四位数字中的某一位进行操作。
K4:
确认键,将输入的数字与密码进行比较。
结束语
一个系统若要正常稳定的运行,必须要各个部分积极协调配合,设计要考虑到功能的要求,系统的稳定性、准确性和灵敏性。
在智能密码锁设计中,选用单片机STC89C52作为主控芯片,根据设计要求合理设计了外围电路,编写程序达成软件设计,软硬件相结合,通过四个按键输入数字,与密码比较,亦可对原始密码进行更改,提高安全性。
经测试,现有系统所有功能完全正常,且均符合设计要求,唯一有缺陷的就是由于规定单片机开发板的原因,导致按键个数不够,所以通过四个按键,设计较为繁琐,但此为不可控因素,总体来说,已圆满完成任务。
由于之前的学习对单片机和数码管显示原理等比较熟悉,故设计起来并没有出现太大的问题。
通过本次课程设计,我更是深刻体会到独立思考、设计以及创新实践的重要性,通过理论与实践相结合,不仅巩固了所学的理论知识,更达到学以致用的目的。
参考文献
[1]李广弟.单片机基础[M].第3版.北京:
北京航空航天大学出版社,2003.6.
[2]李全利.单片机原理及应用(C51编程)[M].北京:
高等教育出版社,2012.12.
[3]马忠梅.单片机的C语言应用程序设计[M].第4版.北京:
北京航空航天大学出版社,2003.6.
[4]李光飞.单片机C程序设计指导[M].北京:
北京航空航天大学出版社,2003.01.
[5]李光飞.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004.9.
致谢
基于单片机的智能密码锁设计是在老师的悉心指导下下完成的,授人以鱼不如授人以渔,置身其间,耳濡目染,使我不仅接受了全新的思想观念,领会了基本的思考方式,更是由初期资料的收集,设计的仿真、程序以及实物的制作,到最后论文的攒写,各种问题,用心指导,循循善诱,在此衷心表示我的感谢!
同时在系统的整体设计中,多位朋友都给予我多方面的热心帮助和指导,帮我解决了不少的难题,在此一并向他们表示深切地感谢!
附录A硬件原理图
附录B程序清单
#include<
reg52.h>
string.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitK1=P2^0;
sbitK2=P2^1;
sbitK3=P2^2;
sbitK4=P3^2;
//sbitK5=P3^0;
Ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x6e,0x76,0x08};
//0--9字符'
-'
字符'
Y'
'
N'
ucharcodetable_w[]={0xef,0xdf,0xbf,0x7f};
//位选
uchari,j,n;
charq1,q2,q3,q4;
//输入数字
charm1,m2,m3,m4;
//密码数字
/*****************************************************************************
********************************【延时函数】**********************************
******************************************************************************/
voiddelay(uintz)//延时约z毫秒(在11.0592晶振下)
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
********************************【显示部分】*************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码锁 论文