基于单片机的电子密码设计单片机课程设计与制作报告大学毕业设计论文.docx
《基于单片机的电子密码设计单片机课程设计与制作报告大学毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码设计单片机课程设计与制作报告大学毕业设计论文.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码设计单片机课程设计与制作报告大学毕业设计论文
编号:
单片机课程设计与制作报告
题目:
基于单片机的电子密码设计
院(系):
电子信息与自动化学院
专业:
自动化
学生姓名:
学号:
201309011
指导教师单位:
电子信息与自动化学院
指导教师:
题目类型:
理论研究实验研究工程设计工程技术研究软件开发
2015年12月日
摘要
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。
针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
本系统由单片机系统、矩阵键盘、LCD显示和报警系统组成,控制系统以STC89C52为控制核心,通过读取矩阵键盘输入的密码与设定的密码做比较,在LCD中显示密码输入是否正确,若输入三次密码错误就报警,若输入正确就点亮led灯,解锁成功后用户可以重置密码,还有
声光提示等功能,依据实际的情况还可以添加其他功能。
本系统成本低廉,功能实用。
关键词:
单片机;密码锁;课程设计;报警
Abstract
Withimprovementofpeople'slivingstandards,howtorealizethesecurityofthefamilyisespeciallyprominent,traditionalmechanicallockbecauseitsstructuresimple,lowsafetyperformance,isunabletomeetthepeople'sneeds.Fortheselockstobringinconvenienceifusingmechanicalkeylock,inordertomeettherequirementsofpeopleontheuseoflocks,increasethesafety,replacethekeywithapasswordlockcameintobeing.ThissystemconsistsofSCMsystem,matrixkeyboard,LCDdisplayandalarmsystemandcontrolsystembasedonSTC89C52ascontrolcore,throughthereadingofmatrixkeyboardinputpasswordandsetthepassworddocomparison,intheLCDdisplaytoenterthepasswordiscorrect,ifyouenterthewrongpasswordthreetimestofalsealarm,iftheinputiscorrectisledlightslit,unlocksuccessafteruserscanresetthepassword,andSoundandlighttipsandotherfunctions,accordingtotheactualsituationcanalsoaddotherfeatures.Thesystemislowcost,functionalandpractical.
Keywords:
microcontroller;passwordlock;curriculumdesign;alarm
目录
1绪论-3-
1.1课题背景和意义-3-
1.2电子密码锁的现状及发展趋势 -3-
1.3设计内容-5-
2电子密码锁系统-5-
2.1系统设计任务与设计要求-5-
2.1.1系统设计任务-5-
2.1.2系统设计要求-5-
2.2主控部分的选择-5-
2.3密码输入方法的选择-6-
2.4系统总体设计方案-7-
3硬件电路设计-7-
3.1主要元器件简介-7-
3.1.1主控芯片单片机STC89C52-7-
3.1.2显示器件LCD1602液晶显示器-9-
3.2硬件系统电路-11-
3.2.1电源电路-11-
3.2.2晶振电路-11-
3.2.3复位电路-11-
3.2.4矩阵键盘电路-12-
3.2.51602LCD显示电路-13-
3.2.6光、声指示电路-14-
4系统软件设计-14-
4.1软件调试平台-14-
4.2软件开发-15-
5系统测试-16-
5.1硬件测试-16-
5.2软件调试-17-
6、总结-17-
参考文献-18-
附件一:
-19-
附件二:
-21-
1绪论
1.1课题背景和意义
在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
机械锁的这些弊端为一种新型的锁——电子密码锁,提供了很大的发展空间。
本文从经济实用的角度出发,设计采用ATC89C52单片机为主控芯片,结合外围电路,组成电子密码控制系统,密码锁初始密码为6位密码,每位的取值范围为0~9,用户可以自行设定和修改密码,每个密码按键都有声提示。
用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警,六位密码同时输入正确,锁才能打开。
其特点如下:
(1) 保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零。
(2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。
(3) 误码输入保护,当输入密码3次错误时,报警系统自动启动。
(4) 无活动零件,不会磨损,寿命长。
(5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
(6) 电子密码锁操作简单易行,一学即会。
1.2电子密码锁的现状及发展趋势
在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
在安全技术防范领域,随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能,从而使密码锁具有很高的安全性、可靠性。
最早的锁,是主人为防他人开启而设的简单的机关,应用于门上最简单的锁就是门栓了。
我国古代有石锁,并无钥匙,是以绳索或铁链束缚。
商周时期出现了用钥匙才能开启的铜锁,铁锁,以钥匙的不同而匹配不同的锁。
随着科学技术的迅猛发展,机械锁也有了长足的发展。
现代机械锁具已有了一百多年的历史,锁芯里加入了长短不一的弹子,要外线用相应齿形的钥匙来打开。
以后,又发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。
在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。
如指纹、眼底视网膜等)来控制锁的开启。
我国锁的发展已绵延了数千年,中国锁具的发展,大体经历了初创期,发展期和繁荣期三个阶段。
初创期为新石器时代到夏商时期。
在我国母系社会后期(相当于公元前5000年--公元前2000年),因为当时社会生产力的提高,人类开始拥有个人的私有(少量)财产。
后来,随着私有制的发展,私人财富越来越多,为了保护财产和生命的安全,人类开始了对锁具的探索。
在最初,人类只是简单地把个人贵重财物用兽皮包起来外面用绳索牢牢捆缚,最后在开启处,打上特殊的紧紧捆死的绳结,只能用一个叫“错”的工具才能挑开。
错,又叫“肖”、“起子”。
它用兽牙或兽骨制成,形状像把镰刀状的钩子,实际上绳结就是最早的锁具,“肖”就是最早的钥匙,这就是我国锁具的雏形,一直从商代沿用到汉代。
到了距今5000年的仰韶文化时期,我们先民创造了装在木结构框架建筑上的木锁。
这是世界上迄今为止最古老的锁具,可称得上是“世界第一锁”。
这种木锁一直在民间传承。
发展期为春秋战国经秦汉、魏晋、南北朝,直到隋唐宋元时期。
春秋时期进入铁器时代,考古证明,在这一时期人们大量的是使用铁锁、铜锁,还有银锁、鎏金锁等,其中有代表性的如西周的青铜锁、东汉的金属锁、唐代的虾尾银锁和宋代的方身锁等,都具有相当高的技术水平。
繁荣期为明清时期特别是汉代的铁制三簧锁,在我国前后沿用了1000多年。
各种材质的锁具同步发展,以铜锁、铁锁居多,工艺更加精巧,在开锁难度和外形制造上有很大的创新。
现代锁具,它的机械化生产,摆脱了过去我们用手工操作的束缚。
它不仅是能批量生产,满足人民生活的需要;同时,也充分运用了现代科学,创造了磁控锁、声控锁、遥控锁、远红外线锁、电子卡片锁、指纹锁、超声波锁、电磁波锁等绝妙精品,大大提高了防窃、防盗功能。
从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和取款机,由于人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等缺点,再加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接受程度,键盘式电子密码锁是这类电子防盗产品的主流。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。
电子密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。
1.3设计内容
(1)矩阵键盘输入模块及矩阵扫描程序。
(2)声音模块。
(3)1602LCD显示模块及程序。
(4)单片机最小系统。
2电子密码锁系统
2.1系统设计任务与设计要求
2.1.1系统设计任务
(1)熟悉51单片机集成开发环境,运用C语言编写工程文件;
(2)熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;
(3)自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;
(4)了解LCD1602显示、矩阵键盘扫描的原理和实现方法。
2.1.2系统设计要求
(1)完成单片机最小系统设计;
(2)完成外围应用电路(包括系统供电单元、4x4矩阵键盘单元、LCD显示单元)的设计和实现;
(3)完成软件对硬件检测和调试工作;
(4)查阅国内外的研究动态和发展前沿信息,阅读相关外文文献。
2.2主控部分的选择
方案一:
采用数字电路控制,用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。
故不采用。
方案二:
采用以单片机为核心的控制方案,由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。
一般来说在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。
当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。
密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后可以设置新密码。
新密码输入无误后按确认键使新密码将得到存储,密码修改成功。
可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。
2.3密码输入方法的选择
方案一:
采用指纹输入识别 ,指纹识别技术主要涉及四个功能:
读取指纹图像、提取特征、保存数据和比对。
通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。
软件从指纹上找到被称为“节点”(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。
通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。
这些数据,通常称为模板。
通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。
考虑到本方案软硬件太过复杂,而且成本也高,故不采用。
方案二:
采用矩阵键盘输入识别 ,由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。
行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。
通过不断读行线口线,或者中断方式触发键位扫描。
当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。
当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。
每个按键都可通过程序赋予功能,从而完成密码识别本方案简单易行,故采用。
2.4系统总体设计方案
本设计采用STC89C52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD1602等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统,能够实现:
1. 完全正确输入密码的前提下,有开锁提示。
2. 错误输入3次密码情况下,蜂鸣器报警。
3.每次有按键按下有提示音。
4.密码每输入一个数在LCD1602上显示一个“*”,重置密码时可以显示输入的密码值。
5.密码输入成功后,LCD1602上有显示,并且对应的led灯被点亮。
6.在成功解锁后用户可以自行修改密码。
系统整体设计框图如图2-1所示:
图2-1系统整体设计框图
3硬件电路设计
3.1主要元器件简介
3.1.1主控芯片单片机STC89C52
1、宏基公司生产的STC89系列单片机,高速、低功耗、新增在系统/在应用可编程(ISP,IAP)功能。
2、特点:
40个引脚,8kBytesFlash片内程序存储器,512bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。
STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
STC89C52芯片引脚图如图3-1所示
图3-1STC89C52芯片引脚图
3、STC89C52引脚功能说明:
Vcc:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。
在访问8位地址的外部数据存储器(如执行:
MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。
Flash编程或校验时,P2也接收高位地址和其它控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
RST:
复位输入。
当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。
WDT益出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:
第当访问外部数据存储器时将跳过一个ALE脉冲。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位禁位后,只有一条MOVX和MOVC指令ALE才会被激活。
此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
当访问外部数据存储器,高有两次有效的PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程电压Vpp。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.1.2显示器件LCD1602液晶显示器
现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
1602型LCD的接口信号说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
V0
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
1602型LCD的主要技术参数如下表所示:
1602型LCD的主要技术参数
显示容量
16X2个字符
芯片工作电压
4.5~5.5V
工作电流
2.0mA(5.0V)
模块最佳工作电压
5.0V
字符尺寸
2.95X4.35(WXH)mm
基本操作程序:
读状态:
输入:
RS=L,RW=L,E=H输出:
D0~D7=状态字
读数据:
输入:
RS=H,RW=H,E=H输出:
无
写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:
D0~D7=数据
写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
3.2硬件系统电路
3.2.1电源电路
密码锁主控制部分电源需要用5V直流电源供电,本设计直接留出电源端提供外置电源输入接口,可以使用外置5V稳压直流电源供电,亦可以使用电脑USB接口供电。
3.2.2晶振电路
在STC89S52单片机上内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
在1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
从XTAL1接入,如图3.2所示。
由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有要求。
本设计选用的是12MHZ无源晶振、2个22pF电容,使得一个机器周期是1μs。
晶振的作用是为系统提供基本的时钟信号,而两个电容则是起到并联谐振的作用,如果没电容,振荡电路会因为没有回路而停振,电路不能正常工作。
图3-2晶振电路
3.2.3复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。
地址锁存信号ALE也为高电平。
根据实际情况选择如图4-6所示的复位电路。
该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充