当前位置:文档之家› 基于单片机与GSM模块的电子密码锁设计毕业论文

基于单片机与GSM模块的电子密码锁设计毕业论文

泉州师范学院

毕业论文(设计)题目基于单片机与GSM模块的电子密码锁设计

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:

指导教师签名:日期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日

导师签名:日期:年月日

目录

摘要

引言

第1章电子密码锁的总体设计方案的选择 ········································第1.1节方案一:采用数字控制电路······················································第1.2节方案二:采用单片机为主控制器的方案 ······································第1.3节方案三:采用单片机为主控制系统,GSM模块作为报警系统············第2章主要元器件说明·····································································第2.1节MCS-51单片机介绍 ·································································第2.2节LCD1602显示器介绍 ·······························································第2.3节AT24C02 串行EPROM介绍·························································第2.4节GSM模块说明 ······································································第3章系统硬件设计 ········································································第3.1节系统硬件总设计·····································································第3.2节电源····················································································第3.3节按键输入部分········································································第3.4节单片机与GSM模块串行通信部分 ·············································第4章系统软件设计 ········································································第4.1节主程序流程图········································································第4.2节按键功能流程图·····································································第4.3节密码设置流程图及报警流程图 ··················································第5章系统软件设计 ········································································第4.1节主控制板的调试·····································································第4.2节GSM模块调试 ······································································总结···································································································参考文献····························································································致谢···································································································附录图 ·······························································································

基于单片机与GSM的电子密码锁的设计

物理与信息工程学院电子信息科学与技术 070303040 陈仕镇

指导老师吴志伟讲师

【摘要】:随着科学技术的发展,电子密码锁已经越来越成为人们生活中不可或缺的安全防范利器。文章首先介绍了基于单片机和GSM模块的密码控制系统,然后简要描述了设计电子密码锁系统的意义。文章采用分块模式,对整个系统的硬件与软件设计进行描述,其中硬件部分着重介绍了GSM模块,单片机STC89C51作为MCU及其外围电路,24C02 存储电路,矩阵按键输入电路,LCD显示电路,GSM模块与主控制板连接电路等。软件部分用C语言编写主控制器与GSM模块的发送接收,24C02的读写。设计了一款可以多次修改密码,自动锁定按键等功能的电子密码锁。

【关键词】:电子密码锁;单片机;GSM;24C02;

引言

当今世界科技不断发展,人们的安全意识越来越高,安全成了我们共同的话题。在银行、酒店、商场、航天等各行各业,防盗报警更是至关重要的,对环境要进行密切的监视,以防止失窃的发生,当发生失窃时能第一时间报警。这里我就介绍一下我自己做的一款基于51单片机和GSM模块的电子密码锁。

传统的机械锁被撬的事件屡见不鲜,因为其构造简单,功能单一,没智能化,位置固定,不能随意换位置。而电子锁克服了机械式密码锁设置密码量少、安全性能差的缺点,并且其保密性高,使用灵活性好,密码可变,安全系数高,使电子密码锁无论在技术上还是在方便性上都受到了广大人们群众的亲爱。随着大规模集成电路的出现,特别是单片机的问世,出现了许多带微处理器的智能密码锁。

而我设计的电子密码锁是一种基于MCS-51和GSM模块智能锁的硬件和软件设计及实现方案,综合应用了所学的单片机、通信原理、电路设计等方面的知识。特别适用于家庭、办公室、服务、学生宿舍及宾馆等场所等的文档、财务等安全报警。电路设计具有按键输入有效提示,输入错误提示,开锁电路,控制报警电路,修改密码等多种功能,可在意外泄密的情况下随时修改密码6位数密码,保密性强,使用灵活性高。当密码连续3次输入错误时便会通过GSM模块自动报警并且蜂鸣器响。它是通过按键输入与存储密码进行对比,从而控制电磁锁的开关,具有推广意义。

本设计中采用了微处理器STC89C51芯片单片机为主控制芯片,采用LCD1602液晶显示屏幕与矩阵式键盘,方便手动输入与数字显示。为了防止掉电等意外事件的发生,我们采用了AT24C02 作为掉电保护。用户想打开锁必须通过键盘输入正确的密码。密码输入错误有提示,为了提高安全性,当输入密码连续3次错误蜂鸣器响起并通过GSM模块报警。并且用户可以随时用手机向GSM模块发出通信使密码锁处于锁定状态。锁打开后才能修改密码,输入新密码时需要2次确认,以防止误操作。这些人性化设计使其更安全可靠、通过GSM模块和单片机的组合运用使其具有一定的智能化,硬件电路简单、易于实现、可以通过软件对系统进行优化,具有很好的市场推广价值。

第1章电子密码锁的总体设计方案的选择

为了使设计更具有针对性,可靠性更强,在做设计之前我想了2种不同的设计方案。

1.1方案一:采用数字控制电路(基于用以74LS112)。

利用双JK触发器74LS112构成数字逻辑电路控制, 555电路等实现对锁的控制。设置9个按键,其中4个是有效按键,其它的都是干扰按键,如果按下干扰键,键盘输入自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过20秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警30秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。该系统外围电路少,功能单一并且不能通过编程来实现,密码一旦忘记或掉电就无法开锁,输入密码无提示,准确性和灵活性差。所以不采用[1]。

1.2方案二:采用单片机为主控制器的方案。

由于单片机种类多各种型号的功能不一,试用场合各不相同。因此要多加比较选择一款适合做本设计的型号。我从以下几个方面考虑:存储器容量,指令系统,串口通信,中断系统,此外还有中断源优先级个数,工作电压和温度,时钟震荡等。再结合我们平时所学。以上各个因素我选择89C51作为本设计的主控制器。利用其丰富的I/O口资源和灵活的程序设计,实现密码锁的基本功能。它把CPU、存储器、及I/O口集成到一个芯片上,只要加少许

外围器件就能够成控制系统。这样就可以节省硬件成本,通过程序来实现各种功能。单片机外围接4*4矩阵键盘作为密码输入和功能键,用LCD1602作显示器[2]。24C02作为外部存储芯片,用于密码掉电保护。键盘由0-9十个数字键、启动、删除、确认、修改密码共14个键组成。用户输入密码正确则开锁,输入错误LCD则会提示。如果连续3次输入错误则蜂鸣器发出报警声。用户只有在输入密码正确时才能修改密码,新密码必须输入2次以防止误操作。

1.3方案三:采用单片机为主控制系统,GSM模块作为报警系统。

在方案二的基础上添加了GSM模块,单片机通过RS-232与GSM模块进行串行通信。当密码3次输入错误时单片机通过串口控制GSM模块向用户手机发送信息,提醒用户此时密码锁有危险。用户随时可通过手机向密码锁发出信息将其锁定,此时键盘被锁定密码锁将无法打开,防止密码锁被打开。

方案三在方案二的基础上运用了移动通信技术,使密码锁的安全性、可靠性、灵活性及可控制性得到了大大的提高,且有智能化的特点,现实生活中运用方便,因此选用方案三。

第2章主要元器件说明

2.1 MCS-51单片机介绍

MCS-51系列单片机是Intel公司继MCS-48系列单片机之后开发的一款8位单片机。它是一款高性能、高集成度、低功耗的单片机,具有8位CPU,4K程序存储器、128字节数据存储器,外部可扩张60K程序存储器和64K数据存储器,2个16位定时/记数器,5个中断优先级,4个八位并行I/O口,最高时钟频率12MHZ。[3]在不连接外围电路的情况下能实现很多逻辑功能,89C51单片机是一款不可多得的高性能单片机,它不仅适合用于简单的测控,也适用于复杂的测控系统。

2.1.1芯片STC89C51的性能及其常用参数的分析

STC89C51内部具有2KB字节快闪存存储器,采用DIP封装,是目前在中小系统中应用最为普及的单片机。芯片引脚排列如图3.1所示,8951单片机的端口都是准双向口,每个I/O口都能独立输入输出。每个I/O口都有一个锁存器,一个输出驱动器和输入缓冲器。再无外部扩展存储器系统中,这四个端口都可以作为准双向I/O口使用。当有扩张外部存储器时,P2口送出高8位地址P0口分时复用做双向总线,分时送出低八位地址和数据的输入/输出;P3口是一个多功能端口各个引脚具有第二功能[4]。(P3.0为串行数据接受端,P3.1位串行数据发送端,P3.2为外部中断0请求,P3.3为外部中断1请求,P3.4为定时器/计数器

0的外部事件计数输入,P3.5为定时器/计数器1的外部事件计数输入,P3.6位片外数据存储器“写选通控制”输出,P3.7为片外数据存储器“读选存储器”输出)。

图2.1 芯片引脚排列

其主要功能特点:

(1)4K可反复擦写的Flash ROM

(2)低功耗空闲和省电模式

(3)4.5-5.5V工作电压,全静态工作

(4)中断唤醒省电模式

(5)2个可编程定时/计数器

(6)3级程序存储加密

(7)全双工UART串行中断口线

可见STC89C51的功能齐全,体积小、可靠性高、成本低。可用5V电压编程,不容易损坏器件,且擦写时间只有10ms。STC89C51芯片提供了三级程序存储器加密,能完全保证程序或系统不被仿制。同时,芯片可降至0Hz静态逻辑操作,并支持两种省电模式。

2.1.2 STC89C51引脚功能说明[3]

采用HMOS工艺的51系列单片机都采用40条引脚的双列直插封装(DIP)方式,这里只对DIP封装各引脚功能简要说明。

Vss(20脚):电路低电平。

Vcc(40脚):正常运行和编程校验时为+5V电源。

RST:震荡器工作时,由该引脚输入2个机器周期的高电平时复位单片机。

ALE/PROG(30脚):ALE允许地址锁存信号输出。当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。在非访问外部存储器期间,ALE仍以1/6震荡

频率固定不变的速率输出,因此它能作外部时钟或定时信号用。当访问外部数据存储器时,将以1/2震荡频率输出。PROG为编程脉冲输入端。

PSEN(29脚):访问外部程序存储器选通信号,低电平有效。

Vpp/EA(31脚)):EA为访问内部或外部程序存储器选择信号。当EA保持高电平时访问内部存储器。

P0口:8位漏极开路双向并行I/O端口。当访问外部存储器时,它是地址总线(低8位)和数据总线复用;外部不扩展而单片机应用时,则作双向I/O口用;在进行片内程序效验期间,作指令代码输出。可接8个LSTTL负载[7]。

P1口:8位准双向并行I/O口。在片内编程和程序效验期间,作为低8位地址总线用。

P2口:8位准双向并行I/O端口。当访问外部存储器时做高8位地址总线用;不作外部功能扩展(单片机应用)时,则作准双向I/O口用;在片内程序效验期间作高8位地址线。它可带4个LSTTL负载。

P3口:具有内部上拉电路的8位并行准双向口。它还提供特殊的第2功能。它的每一位均可独立定义为第一功能I/O口或第二功能。第二特殊功能具体含义为:P3.0为串行数据接受端。

P3.1位串行数据发送端。

P3.2为外部中断0请求。

P3.3为外部中断1请求。

P3.4为定时器/计数器0的外部事件计数输入。

P3.5为定时器/计数器1的外部事件计数输入。

P3.6位片外数据存储器“写选通控制”输出。

P3.7为片外数据存储器“读选存储器”输出。

2.2 LCD1602显示器介绍

LCD1602是一款专门用于显示符号、数字、字母等点阵LCD显示屏。它具有体积小、功耗低、显示内容丰富、性价比高等特点。它可以显示2行16个字符,有8位并行数据线和RS、R/W、EN三个控制口。LCD1602有背光和不背光两种型号,且大部用HD44789作为控制器。背光的略厚些,是否背光在本设计中并无任何差别。因此适合作为本设计的显示模块。

图2.2 LCD1602

2.2.1 LCD1602各引脚说明[5]

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表:

表1 LCD1602各引脚

2.2.2 LCD1602主要参数

显示容量:16×2个字符

芯片工作电压:4.5—5.5V

工作电流:2.0mA(5.0V)

模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

2.3 AT24C02 串行EPROM介绍

因为89C51单片机没有掉电保护功能,在程序掉电的情况下,如果不加外部存储器,那么掉电以后数据就会丢失。如果不加外部存储器,密码锁一旦掉电就无法保存数据,密码锁就无法实现修改密码的功能(密码一直是原始密码)。所以我加了外部存储芯片24C02,用来存储密码,无论是否掉电,数据一直保存在芯片中永远不会丢失。这样安全性又提高了一些。[8]图2.3为24C02引脚说明图。

图2.3 24C02各引脚说明图

AT24C02的封装为DIP-8,提供电可擦除串行1024位存储或可编程只读存储器

(E2PROM)128字节。

2.3.1 I2C总线说明[4]

I2C总线采用二线制传输,一根是数据线SDA,另一根是时钟线SCL,所有I2C器件都连接在SDA和SCL上,每个器件有唯一的地址。【7】

SDA引脚通常要外部拉高,SDA上的数据只有在SCL低电平期间才能改变。数据线在SCL高电平期间改变定义为一个开始或停止信号。

起始状态:在SCL为高时SDA产生一个下降沿。

停止状态:在SCL为高时SDA产生一个上升沿。

应答:I2C协议规定,在每个字节传输完毕后,必须有一个应答位。它由主机产生,发送设备把数据线SDA置为高电平;接收设备把数据线SDA置为低电平,并且在此期间保持低电平状态。【4】

2.4 GSM模块说明[9]

该部分采用的是西门子TC35i的GSM模块,如图6所示。以下是TC35i的主要性能。

表1 需要注意的芯片引脚

第三章系统硬件设计

通过上面各主要芯片、器件的说明,我们对系统的各个硬件部分有了一定的认识。下面对系统的总体设计作简要说明。

3.1 系统硬件总设计

本系统主要由89C51单片机,矩阵按键,LCD1602显示器,24C02存储芯片,GSM模块组成。用户通过矩阵按键输入密码。按下启动键,输入6位密码,以确认键结束,若密码正确,则显示屏提示Welcom!!!,表示向电磁锁通电,门打开,若输入的密码错误,则显示屏提示重新输入,若三次密码错误,则系统蜂鸣器间断式地响30秒,此时不能对系统进行任何操作,同时单片机控制GSM模块向用户手机发送一条信息提醒用户。用户可以随时通过手机向GSM模块发送信息把密码锁置于锁定状态,此时按键和显示屏将被锁定30分钟,不能对系统进行任何操作。只有在密码输入正确后才能修改密码。图3-1为硬件设计总体原理图。[5]

图3-1 硬件设计原理图

3.2 电源

89C51单片机需要+5V直流电源供电,我采用USB从电脑上采集电源,所以会有杂波。因此在电源和地之间加上一个22UF的电解电容和磁片电容104用于滤去杂波。其电路图如图3-2所示。

3-2 电源部分电路

3.3 按键输入部分

因为本设计使用到的按键比较多,若用独自式按键则需要占用大量I/O口资源。为了节省I/O口资源,我采用4*4矩阵式按键。矩阵式按键由行线和列线组成,按键位于行线和列线的交叉点上。按键包括0-9十个数字键,还包括清除、确认、启动、修改密码四个功能键,其余2个为无用按键。与单片机的技法大致如图3-3所示。[6]

图3-3 按键输入原理图

3.4 单片机与GSM模块串行通信部分

TC35的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-T RS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300bps~115kbps之间可选,TC35模块提供RS-232数据口,采用AT指令,内置微控制器将GPS接收机和GSM模块结合在一起。【9】为了方便设置波特率,我选用11.0592MHz的晶振作为单片机的外部晶振,波特率设置为9600。RS232串口原理图如下所示。

图3-4 RS232原理图

第四章系统软件设计

系统的主任务是通过对按键输入的扫描与存储在24C02里的密码进行比对,若连续输入错误3次则单片机控制GSM模块通知用户,用户通过手机与GSM模块联系控制锁定密码锁。软件的重点在于单片机的编程和GSM模块的通信。

4.1 主程序流程图

如图4-1为主程序流程图。单片机上电后按下启动键程序进行初始化设定。按下按键输入密码,单片机根据对按键扫描,启动程序。如果密码正确则启动程序,如果不正确则启动再输入程序。如果连续三次不正确则启动报警程序。

图4-1 主程序流程图

4.2 按键功能流程图

图4-2为按键功能流程图,按键分为0-9数字输入按键、启动、删除、确认、设置按键。需要编写与其功能相对应的程序,并按顺序与输入数值作比较。[11]

图4-2 按键功能流程图

4.3 密码设置流程图及报警流程图

图4-3为密码设置流程图和报警流程图,先按下启动键输入旧密码,如果连续三次输入错误则报警。若输入正确可以修改密码。新密码必须输入两次,防止误操作。

第五章系统调试

系统调试主要分为主控制板的调试和GSM模块的调试。

5.1 主控制板的调试

画完原理图和PCB图后,把各个元件焊接到电路板上。然后先用万用表对各个焊点进行检测,看是否有短路、虚焊、断路等问题。特别是芯片各个引脚容易短路和虚焊,应特别注意。还有就是要检查按键是否损坏,有损坏应即时跟换,负责会影响到后面的调试。芯片的正负极不能接反。在保证了焊点和各个元件之间的连接都没错的情况下,才能上电检测。

然后给主控制板上电,导通开关。过几秒用手触摸各个芯片,是否有发烫现象。若有说明芯片的正负极接反了,应及时断电。此时芯片很可能已经烧坏,应及时跟换。如果没有异常现象,则可以先下载一小断编译好的程序到单片机里。若下载成功,则说明RS-232下载部分没有问题。

对STC89C51单片机的检测可以下载一段程序。例如下载一段检测芯片引脚的程序,把芯片的引脚逐个的拉高,过几秒再拉低,使其产生一个下降沿。然后用万用表检查引脚电平的变化。如果没有变化,可能是芯片没连接好,也可能是芯片坏了。如果有变化,则说明单片机基本没问题。

对24C02的检测也是通过下载一段程序来检测。例如下载一段24C02的读写程序,先通过按键输入几个键码写入24C02中。然后再下载一段读24C02存储器的程序,把存储在24C02里的数据读出来,显示在LCD1602上。这样不仅检测了24C02的电路,同时也检测了按键扫描电路、LCD1602显示电路。如果没有读出数据,则可能是键盘或芯片问题。先逐个检查按键,是否有接错,然后再检测24C02外围电路。若没问题可能是芯片坏了。

5.2 GSM模块调试

通过RS-232将GSM模块和主控制板连接起来。这样要注意要将RXD-RXD,TXD-TXD连接起来,不要凭经验交叉连接。

这里我采用串口调试助手,通过RS-232与电脑连接来调试。把串口波特率设置为9600,效验为设置为NONE,数据位8位,停止位1位

图5-1 串口助手

模块有两种发送方式:TEXT模式和PDU模式。PDU模式可以用Unicode编码发送英文、汉字。采用PDU模式比较复杂,TEXT模式虽然只能发送英文,但其无需编码,发送简单,所以我在测试时采用TEXT模式。

TEXT 发送模式:(相对简单很多。)

发送:AT<回车>

返回:AT<回车>

OK

发送:AT+CMGF=1<回车>

返回:AT+CMGF=1<回车>

OK

发送:AT+CSCA=+86130********<回车>

返回:AT+CSCA=+86130********<回车>

OK

发送:AT+CMGS=131********<回车>

返回:AT+CMGS=131********<回车>

>

发送:XXXXXX(0-9,A-Z)[XXXXX 是指阿拉伯数字0-9,英文26 个字母A-Z]

返回:XXXXXX(0-9,A-Z)[XXXXX 是指阿拉伯数字0-9,英文26 个字母A-Z]

发送:1A(十六进制发送)<回车>

返回:+CMGS: XXX

OK

以上为TEXT 方式发送截图:

如果不能正常发送,返回ERROR,则说明需要格式化。可以发送AT&F 命令格式化。

发送:AT&F<回车>

返回:AT&F<回车>【10】

相关主题
文本预览
相关文档 最新文档