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

上传人:1777****777 文档编号:37492499 上传时间:2021-11-03 格式:DOC 页数:45 大小:1.32MB
收藏 版权申诉 举报 下载
毕业设计(论文)基于单片机与GSM模块的电子密码锁设计_第1页
第1页 / 共45页
毕业设计(论文)基于单片机与GSM模块的电子密码锁设计_第2页
第2页 / 共45页
毕业设计(论文)基于单片机与GSM模块的电子密码锁设计_第3页
第3页 / 共45页
资源描述:

《毕业设计(论文)基于单片机与GSM模块的电子密码锁设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机与GSM模块的电子密码锁设计(45页珍藏版)》请在装配图网上搜索。

1、泉 州 师 范 学 院 毕业论文(设计)题 目 基于单片机与GSM模块的电子密码锁设计 物理与信息工程 学 院 电子信息科学与技术 专 业 07级 1 班学生姓名 学 号 070303040 指导教师 职 称 讲师 完成日期 2011年4月 教务处 制目 录摘要引言第1章 电子密码锁的总体设计方案的选择第1.1节 方案一:采用数字控制电路第1.2节 方案二:采用单片机为主控制器的方案第1.3节 方案三:采用单片机为主控制系统,GSM模块作为报警系统第2章 主要元器件说明第2.1节 MCS-51单片机介绍第2.2节 LCD1602显示器介绍第2.3节 AT24C02 串行EPROM介绍第2.4节

2、 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的电子密码锁的设计物理与信息工程学院 电子信息科学与技术 指导老师 【摘要】:随着科学技术的发展,电子密码锁已经越来越成为人们生活中不可或缺的安全防范利器。文章首先介绍了基于单片机和GSM模块的密码控制系统,然后简要描述了设计电子密码锁

3、系统的意义。文章采用分块模式,对整个系统的硬件与软件设计进行描述,其中硬件部分着重介绍了GSM模块,单片机STC89C51作为MCU及其外围电路,24C02 存储电路,矩阵按键输入电路,LCD显示电路,GSM模块与主控制板连接电路等。软件部分用C语言编写主控制器与GSM模块的发送接收,24C02的读写。设计了一款可以多次修改密码,自动锁定按键等功能的电子密码锁。 【关键词】:电子密码锁;单片机;GSM;24C02; 引言当今世界科技不断发展,人们的安全意识越来越高,安全成了我们共同的话题。在银行、酒店、商场、航天等各行各业,防盗报警更是至关重要的,对环境要进行密切的监视,以防止失窃的发生,当发

4、生失窃时能第一时间报警。这里我就介绍一下我自己做的一款基于51单片机和GSM模块的电子密码锁。传统的机械锁被撬的事件屡见不鲜,因为其构造简单,功能单一,没智能化,位置固定,不能随意换位置。而电子锁克服了机械式密码锁设置密码量少、安全性能差的缺点,并且其保密性高,使用灵活性好,密码可变,安全系数高,使电子密码锁无论在技术上还是在方便性上都受到了广大人们群众的亲爱。随着大规模集成电路的出现,特别是单片机的问世,出现了许多带微处理器的智能密码锁。而我设计的电子密码锁是一种基于MCS-51和GSM模块智能锁的硬件和软件设计及实现方案,综合应用了所学的单片机、通信原理、电路设计等方面的知识。特别适用于家

5、庭、办公室、服务、学生宿舍及宾馆等场所等的文档、财务等安全报警。电路设计具有按键输入有效提示,输入错误提示,开锁电路,控制报警电路,修改密码等多种功能,可在意外泄密的情况下随时修改密码6位数密码,保密性强,使用灵活性高。当密码连续3次输入错误时便会通过GSM模块自动报警并且蜂鸣器响。它是通过按键输入与存储密码进行对比,从而控制电磁锁的开关,具有推广意义。本设计中采用了微处理器STC89C51芯片单片机为主控制芯片,采用LCD1602液晶显示屏幕与矩阵式键盘,方便手动输入与数字显示。为了防止掉电等意外事件的发生,我们采用了AT24C02 作为掉电保护。用户想打开锁必须通过键盘输入正确的密码。密码

6、输入错误有提示,为了提高安全性,当输入密码连续3次错误蜂鸣器响起并通过GSM模块报警。并且用户可以随时用手机向GSM模块发出通信使密码锁处于锁定状态。锁打开后才能修改密码,输入新密码时需要2次确认,以防止误操作。这些人性化设计使其更安全可靠、通过GSM模块和单片机的组合运用使其具有一定的智能化,硬件电路简单、易于实现、可以通过软件对系统进行优化,具有很好的市场推广价值。第1章 电子密码锁的总体设计方案的选择为了使设计更具有针对性,可靠性更强,在做设计之前我想了2种不同的设计方案。1.1方案一:采用数字控制电路(基于用以74LS112)。利用双JK触发器74LS112构成数字逻辑电路控制, 55

7、5电路等实现对锁的控制。设置9个按键,其中4个是有效按键,其它的都是干扰按键,如果按下干扰键,键盘输入自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过20秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警30秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。该系统外围电路少,功能单一并且不能通过编程来实现,密码一旦忘记或掉电就无法开锁,输入密码无提示,准确性和灵活性差。所以不采用1。1.2方案二:采用单片机为主控制器的方案。由于单片机种类多各种型号的功能不一,试用场合各不相同。因此要多加比较选择一款适合做本设计的型号。我从以下几个方

8、面考虑:存储器容量,指令系统,串口通信,中断系统,此外还有中断源优先级个数,工作电压和温度,时钟震荡等。再结合我们平时所学。以上各个因素我选择89C51作为本设计的主控制器。利用其丰富的I/O口资源和灵活的程序设计,实现密码锁的基本功能。它把CPU、存储器、及I/O口集成到一个芯片上,只要加少许外围器件就能够成控制系统。这样就可以节省硬件成本,通过程序来实现各种功能。单片机外围接4*4矩阵键盘作为密码输入和功能键,用LCD1602作显示器2。24C02作为外部存储芯片,用于密码掉电保护。键盘由0-9十个数字键、启动、删除、确认、修改密码共14个键组成。用户输入密码正确则开锁,输入错误LCD则会

9、提示。如果连续3次输入错误则蜂鸣器发出报警声。用户只有在输入密码正确时才能修改密码,新密码必须输入2次以防止误操作。1.3方案三:采用单片机为主控制系统,GSM模块作为报警系统。在方案二的基础上添加了GSM模块,单片机通过RS-232与GSM模块进行串行通信。当密码3次输入错误时单片机通过串口控制GSM模块向用户手机发送信息,提醒用户此时密码锁有危险。用户随时可通过手机向密码锁发出信息将其锁定,此时键盘被锁定密码锁将无法打开,防止密码锁被打开。方案三在方案二的基础上运用了移动通信技术,使密码锁的安全性、可靠性、灵活性及可控制性得到了大大的提高,且有智能化的特点,现实生活中运用方便,因此选用方案

10、三。第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

11、字节快闪存存储器,采用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

12、为定时器/计数器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静态

13、逻辑操作,并支持两种省电模式。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

14、震荡频率输出。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位地址总线用;不作外部功能扩展(单片机应用)时,则作准

15、双向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显示

16、屏。它具有体积小、功耗低、显示内容丰富、性价比高等特点。它可以显示2行16个字符,有8位并行数据线和RS、R/W、EN三个控制口。LCD1602有背光和不背光两种型号,且大部用HD44789作为控制器。背光的略厚些,是否背光在本设计中并无任何差别。因此适合作为本设计的显示模块。图2.2 LCD16022.2.1 LCD1602各引脚说明51602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表:编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据

17、/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 表1 LCD1602各引脚2.2.2 LCD1602主要参数显示容量:162个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm2.3 AT24C02 串行EPROM介绍因为89C51单片机没有掉电保护功能,在程序掉电的情况下,如果不加外部存储器,那么掉电以后数据就会丢失。如果不加外部存储器,密码锁一旦掉电就无法保存数据

18、,密码锁就无法实现修改密码的功能(密码一直是原始密码)。所以我加了外部存储芯片24C02,用来存储密码,无论是否掉电,数据一直保存在芯片中永远不会丢失。这样安全性又提高了一些。8图2.3为24C02引脚说明图。 图2.3 24C02各引脚说明图AT24C02的封装为DIP-8,提供电可擦除串行1024位存储或可编程只读存储器(E2PROM)128字节。2.3.1 I2C总线说明4I2C总线采用二线制传输,一根是数据线SDA,另一根是时钟线SCL,所有I2C器件都连接在SDA和SCL上,每个器件有唯一的地址。【7】SDA引脚通常要外部拉高,SDA上的数据只有在SCL低电平期间才能改变。数据线在S

19、CL高电平期间改变定义为一个开始或停止信号。起始状态:在SCL为高时SDA产生一个下降沿。停止状态:在SCL为高时SDA产生一个上升沿。应答:I2C协议规定,在每个字节传输完毕后,必须有一个应答位。它由主机产生,发送设备把数据线SDA置为高电平;接收设备把数据线SDA置为低电平,并且在此期间保持低电平状态。【4】2.4 GSM模块说明9该部分采用的是西门子TC35i的GSM模块,如图6所示。以下是TC35i的主要性能。图2.4 TC35模块MISO425SPI接口的串行输出。ISD1700在 SCLK下降沿之前的半个周期将数据放置在MISO端。数据在SCLK的下降沿时移出MOSI526SPI接

20、口的数据输入端口。主控制芯片在SCLK上升沿之前的半个周期将数据放置在MOSI端。数据在SCLK上升沿被锁存在芯片内。此管脚在空闲时,应该被拉高SCLK627SPI接口的时钟。由主控制芯片产生,并且被用来同步芯片MOSI和MISO端各自的数据输入和输出。此管脚空闲时,必须拉高。/SS728为低时,选择该芯片成为当前被控制设备并且开启SPI接口。空闲时,需要拉高FT2215在独立按键模式下,当FT一直为低,Anain直通线路被激活。Anain信号被立刻从Anain经由音量控制线路发射到喇叭以及AUD/AUX输出。不过,当在SPI模式下,SPI无视这个输入,而且直通线路被APC寄存器的D0所控制。

21、该管脚有一个内部上拉和防抖动设计,允许使用按键开关来控制开始和结束。/PLAY2316播放控制端,有电平触发和脉冲触发两种模式/REC2417录音控制端,低电平有效/ERASE2518擦除控制端,低电平有效/FWD2619快进控制端,低电平有效RDY/INT2720一个开路输出。Ready(独立模式)该管脚在录音,放音,擦除和指向操作时保持为低,保持为高时进入掉电状态Interrupt(SPI 模式)在完成SPI命令后,会产生一个低信号的中断。一旦中断消除,该脚变回为高。表1 需要注意的芯片引脚第三章 系统硬件设计 通过上面各主要芯片、器件的说明,我们对系统的各个硬件部分有了一定的认识。下面对

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

23、。图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

24、图3-3 按键输入原理图3.4 单片机与GSM模块串行通信部分TC35的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-T RS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300bps115kbps之间可选,TC35模块提供RS-232数据口,采用AT指令,内置微控制器将GPS接收机和GSM模块结合在一起。【9】为了方便设置波特率,我选用11.0592MHz的晶振作为单片机的外部晶振,波特率设置为9600。RS232串口原理图如下所示。 图3-4 RS232原理图第四章 系统软件设计系统的主任务是通过对按键输入的扫描与存储在24C02里的密码进行比对,若

25、连续输入错误3次则单片机控制GSM模块通知用户,用户通过手机与GSM模块联系控制锁定密码锁。软件的重点在于单片机的编程和GSM模块的通信。4.1 主程序流程图如图4-1为主程序流程图。单片机上电后按下启动键程序进行初始化设定。按下按键输入密码,单片机根据对按键扫描,启动程序。如果密码正确则启动程序,如果不正确则启动再输入程序。如果连续三次不正确则启动报警程序。图4-1 主程序流程图4.2 按键功能流程图图4-2为按键功能流程图,按键分为0-9数字输入按键、启动、删除、确认、设置按键。需要编写与其功能相对应的程序,并按顺序与输入数值作比较。11图4-2 按键功能流程图4.3 密码设置流程图及报警

26、流程图图4-3为密码设置流程图和报警流程图,先按下启动键输入旧密码,如果连续三次输入错误则报警。若输入正确可以修改密码。新密码必须输入两次,防止误操作。 第五章 系统调试 系统调试主要分为主控制板的调试和GSM模块的调试。5.1 主控制板的调试画完原理图和PCB图后,把各个元件焊接到电路板上。然后先用万用表对各个焊点进行检测,看是否有短路、虚焊、断路等问题。特别是芯片各个引脚容易短路和虚焊,应特别注意。还有就是要检查按键是否损坏,有损坏应即时跟换,负责会影响到后面的调试。芯片的正负极不能接反。在保证了焊点和各个元件之间的连接都没错的情况下,才能上电检测。然后给主控制板上电,导通开关。过几秒用手

27、触摸各个芯片,是否有发烫现象。若有说明芯片的正负极接反了,应及时断电。此时芯片很可能已经烧坏,应及时跟换。如果没有异常现象,则可以先下载一小断编译好的程序到单片机里。若下载成功,则说明RS-232下载部分没有问题。对STC89C51单片机的检测可以下载一段程序。例如下载一段检测芯片引脚的程序,把芯片的引脚逐个的拉高,过几秒再拉低,使其产生一个下降沿。然后用万用表检查引脚电平的变化。如果没有变化,可能是芯片没连接好,也可能是芯片坏了。如果有变化,则说明单片机基本没问题。对24C02的检测也是通过下载一段程序来检测。例如下载一段24C02的读写程序,先通过按键输入几个键码写入24C02中。然后再下

28、载一段读24C02存储器的程序,把存储在24C02里的数据读出来,显示在LCD1602上。这样不仅检测了24C02的电路,同时也检测了按键扫描电路、LCD1602显示电路。如果没有读出数据,则可能是键盘或芯片问题。先逐个检查按键,是否有接错,然后再检测24C02外围电路。若没问题可能是芯片坏了。5.2 GSM模块调试通过RS-232将GSM模块和主控制板连接起来。这样要注意要将RXD-RXD,TXD-TXD连接起来,不要凭经验交叉连接。这里我采用串口调试助手,通过RS-232与电脑连接来调试。把串口波特率设置为9600,效验为设置为NONE,数据位8位,停止位1位 图5-1 串口助手模块有两种

29、发送方式:TEXT模式和PDU模式。PDU模式可以用Unicode编码发送英文、汉字。采用PDU模式比较复杂,TEXT模式虽然只能发送英文,但其无需编码,发送简单,所以我在测试时采用TEXT模式。TEXT 发送模式:(相对简单很多。)发送:AT返回:ATOK发送:AT+CMGF=1返回:AT+CMGF=1OK发送:AT+CSCA=+8613010130500返回:AT+CSCA=+8613010130500OK发送:AT+CMGS=13132061066返回:AT+CMGS=13132061066发送:XXXXXX(0-9,A-Z)XXXXX 是指阿拉伯数字0-9,英文26 个字母A-Z返回:

30、XXXXXX(0-9,A-Z)XXXXX 是指阿拉伯数字0-9,英文26 个字母A-Z发送:1A(十六进制发送)返回:+CMGS: XXXOK以上为 TEXT 方式发送截图:如果不能正常发送,返回ERROR,则说明需要格式化。可以发送AT&F 命令格式化。发送:AT&F返回:AT&F【10】OK 图5-2 TEXT调试总结以上为毕业设计期间我所设计的基于单片机和GSM模块的电子密码锁,经过多次的修改完善,基本满足设计要求。按下启动键,输入6位密码,以确认键结束,若密码正确,则显示屏提示Welcom!,表示向电磁锁通电,门打开,若输入的密码错误,则显示屏提示重新输入,若三次密码错误,则系统蜂鸣器

31、间断式地响30秒,此时不能对系统进行任何操作,同时单片机控制GSM模块向用户手机发送一条信息提醒用户。用户可以随时通过手机向GSM模块发送信息把密码锁置于锁定状态,此时按键和显示屏将被锁定30分钟,不能对系统进行任何操作。只有在密码输入正确后才能修改密码。由于本人水平有限,此系统仍存在一些问题。例如忘记密码后将很难再打开密码锁。我想这可以通过其他的办法解决,但我还没想到。但是通过这次毕业设计,让我重新学习了单片机和电路方面的知识,对之前所学有了更深刻的理解,特别是C语言有了比较深刻的理解。在自学GSM模块的原理和编程过程中,掌握了一定的学习方法,也锻炼了自己的意志,对今后的工作,生活有积极的意

32、义。致谢衷心感谢吴老师。本设计是在吴老师精心指导下完成的,从论文的选题、设计方案选择、GSM模块的选择到系统的总体布局,各个方面都离不开吴老师悉心教导。在这一个多月毕业设计的时间里,吴老师认真的工作态度,诚信宽厚的为人处世态度,都给我留下了深刻的印象。老师多次问我设计进度,并且为我指点迷津,当我遇到困难时,老师总能引导我走出困境。大学四年的生活即将结束,我将告别我的学校、老师、同学,在这里由衷的感谢大家陪我度过了这绚丽多彩的大学生活!谢谢!参考文献1 孟庆涛 郑凤翼。电子控制电路,人民邮电出版社,2006.12 周立功等,增强型89C51单片机速成与实战,北京航空大学出版社,2003.73 孙

33、育才等,单片微型计算机及其应用,东南大学出版社,2009.64 段晨东等,单片机原理及接口技术,清华大学出版社,2008.75 李明喜,新型电子密码锁的设计J,机电产品开发与创新2004(3)6 董继成,一种新型单片机安全密码锁J,电子技术2004(3)7 杨茂涛,一种电子密码锁的实现J,福建电脑,2004(08).8 王千,实用电子电路大全M,电子工业出版社,2001.59 GSM模块AT指令10 TC35i指令集 11 谭浩强.C程序设计(第三版)M.清华大学出版社.2005.7Based on MCU and GSM electronic combination lock designT

34、he major of electronics information science and technology 070303040 ChenShiZhenGuide teacher WuZhiWei lecturer【abstract】: with the development of science and technology, electronic combination lock has become an increasingly people essential to life security tool. This paper firstly introduces the

35、GSM module based on microcontroller and password control system, and briefly describes design electronic combination lock system significance. This paper adopts block mode, the whole system hardware and software design, including hardware part describe introduces emphatically the GSM module, microco

36、ntroller STC89C51 as MCU and peripheral circuit, 24C02 storage circuit, matrix keystroke circuit, LCD display circuit, GSM module and main panel connection circuit, etc. Software partly in C language【keyword】: electronic combination lock; microcontroller; GSM; 24C02;附录一:总原理图附录三:实物图附录二:程序 #include#de

37、fine uchar unsigned char#define uint unsigned intuchar code at = ATr;uchar code cmgf=AT+CMGF=1r;uchar code csca=AT+CSCA=+8613890595500r;uchar code cmgs=AT+CMGS=15260369536r;uchar code atd=ATD115260369536;r; uchar code af=AT&F; uchar code adata=!woring!;uchar code adata1=ok!;uchar code table1=Please

38、enter the; uchar code table2=password:;uchar code table3=Please press the;uchar code table4=confirm key;uchar code table5=Your password is; uchar code table6=incorrect;uchar code table7=Welcome ! ;uchar code table8=*;uchar code table9=1,2,3,4,5,6;uchar code table10=0,7,0,3,0,3,0,4,0;uchar code table

39、11=Senior Password; uchar code table12=new password:; uchar code table13=password again:;uchar code table14=Password changed; uchar code table15=successfully;uchar code table16=*;sbit sda=P01;sbit scl=P00;sbit lcdrs=P37;sbit lcdrw=P36;sbit lcden=P35;sbit fmq=P07;bit flag,flag1,flag2,flag3,flag4,flag

40、5,ok,ttt=0;uchar kk,k=0; uchar num,num1,num2,num3,num4;uchar aa6,bb9,cc6,dd6; void send_c(uchar cc) /串口发送字符 SBUF =cc; while(!TI ); TI = 0; void uart_init() /串口初始化 SCON=0x50; /允许接收 PCON=0x00; /波特率不加倍 TMOD=0x20; /定时器1方式2 TH1=0xfd; / 波特率设置为9600 TL1=0xfd; TR1=1; ES=1;/开串口终端void delay_1(uint z)uint x,y;f

41、or(x=z;x0;x-)for(y=110;y0;y-);void send(uchar *tab) /串口发送字符串 while(*tab)!= 0) SBUF =*tab; while(!TI ); TI = 0; tab+; send_c(0x0d);send_c(0x0a); void delay() /At24c02延时 ; void delay1(uint i) uint j;for(;i0;i-)for(j=100;j0;j-);void write_com(uchar com) /lcd1602读写lcdrs=0;lcden=0;P1=com;delay1(5);lcden=

42、1;delay1(5);lcden=0;void write_data(uchar dat)lcdrs=1;lcden=0;P1=dat;delay1(5);lcden=1;delay1(5);lcden=0;void lcall1() /请输入密码 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table1num);delay1(20);write_com(0xc4);for(num=0;num9;num+)write_data(table2num);delay1(20);void lcall2()/请按确认

43、键 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table3num);delay1(20);write_com(0xc2);for(num=0;num11;num+)write_data(table4num);delay1(20);void lcall3()/你输入的密码有误 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table5num);delay1(20);write_com(0xc3);for(num=0;num9;

44、num+)write_data(table6num);delay1(20);void lcall4() /欢迎光临 write_com(0x01); write_com(0x82);for(num=0;num11;num+)write_data(table7num);delay1(20);/* void lcall5()/请输入管理者密码 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table1num);delay1(20);write_com(0xc0);for(num=0;num15;num+)write

45、_data(table11num);delay1(20); */ void lcall5()/请输入管理者密码 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table1num);delay1(20);write_com(0xc0);for(num=0;num15;num+)write_data(table11num);delay1(20); EA=1; RI=0; delay1(2); delay1(2); void lcall6()/请输入新密码 write_com(0x01); write_com(0x8

46、9);for(num=0;num16;num+)write_data(table1num);delay1(20); write_com(0xc2);for(num=0;num13;num+)write_data(table12num);delay1(20);void lcall7()/请再输入一次 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table1num);delay1(20); write_com(0xc2);for(num=0;num15;num+)write_data(table13num);de

47、lay1(20);void lcall8()/密码已修改成功 write_com(0x01); write_com(0x89);for(num=0;num16;num+)write_data(table14num);delay1(20); write_com(0xc2);for(num=0;num12;num+)write_data(table15num);delay1(20);void lcall9()/5* write_com(0x01); write_com(0x89);for(num=0;num5;num+)write_data(table8num);delay1(20); void

48、lcall10()/8* write_com(0x01); write_com(0x89);for(num=0;num8;num+)write_data(table16num);delay1(20); /*at24c02读写*/void starti2c()sda=1; scl=1; delay(); sda=0; delay(); scl=0;void stopi2c()sda=0; scl=1; delay(); sda=1; delay(); scl=0;void mack() sda=0; scl=1; delay(); scl=0; sda=1; void mnack() sda=1

49、; scl=1; delay(); scl=0; bit cack() bit ack; sda=1; scl=1; delay(); ack=sda; scl=0; return (ack);void write_byteack(uchar dat)uchar i,temp; temp=dat; for(i=0;i8;i+) dat=dat1; sda=CY; scl=1; delay(); scl=0; while(cack()=1) dat=temp ; for(i=0;i8;i+) dat=dat1; sda=CY; scl=1; delay(); scl=0; uchar read_

50、byte()uchar i,k; sda=1; delay();for(i=0;i8;i+) scl=1; delay(); k=(k1)|sda; scl=0; delay(); return (k);void write_6byte(uchar address,uchar *p) uchar i; starti2c(); write_byteack(0xa0); write_byteack(address); for (i=0;i6;i+) write_byteack(*p); p+; stopi2c();void read_nbyte(uchar address,uchar n) uch

51、ar i; starti2c(); write_byteack(0xa0);write_byteack(address); starti2c(); write_byteack(0xa1); for(i=0;in;i+) aai=read_byte(); if(i=(n-1) mnack(); else mack(); stopi2c(); void initi2c() write_6byte(0x60,table9); delay1(100); void init()/initi2c();lcdrw=0; write_com(0x38);write_com(0x0c);write_com(0x

52、06);write_com(0x01);write_com(0x89); void clear() fmq=1; write_com(0x01); flag=0; flag1=0; flag2=0; flag3=0; flag4=0; flag5=0; ok=0; kk=0; num1=0; num2=0; num3=0; num4=0; /主程序void main() uchar key,key_code,i,j; init(); uart_init(); /gsm 发送 send(af); delay_1(200); EA=0; RI=0; while(1) if(ttt) fmq=0;

53、ttt=0; send(atd); /send(at); delay_1(11000); send(atd); delay_1(2000); delay_1(12); send(at); delay_1(1000); send(cmgf); delay_1(1000); send(csca); delay_1(1000); send(cmgs); delay_1(1000); send(adata); delay_1(2000); send_c(0x1A); delay_1(2000); send(af); delay_1(1000);RI=0;fmq=1; if(RI) /接收 RI=0; /delay_1(60000);write_com(0x01); write_com(0x89);for(num=0;num14;num+)write_data(adatanum);delay1(20); while(1); P2=0xf0; /按键扫描 if(P2!=0xf0) delay1(100); P2=0xf0; if(P2!=0xf0) key_code=P2; P2=0x0f; key_code|=P2;switch(key_code) case 0x77:key=1;break; case 0x7b:key=2;break; case 0

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!