基于51单片机的无线电子密码锁课程设计
基于51单片机电子密码锁课程设计
课程名称:微机原理课程设计题目:KS-010电子密码锁摘要伴随着科技的越来越进步和人们生活水平的提高,人们对于如何防盗的要求也越来越高,众所周知传统的机械锁由于构造简单很容易就被人破解了。
现在我们已经进入了信息化时代,可以说密码已经无处不在,银行卡要密码、手机要密码、保险箱也要密码等等,而人们为了增加安全保障性迫切需要更加安全的锁,正因为此电子密码锁应运而生。
成为了大众青睐的新一代安全锁。
本设计也正是基于此而设计的,主要就是利用STC89C52单片机作为整个系统的核心对所有的分系统进行控制,本设计是通过键盘进行密码输入然后单片机会自动与原来的已经设定好的密码进行比对,如果比对的密码正确那么锁就会自动打开。
同时显示灯会亮表示锁已开启,这样的锁具有轻便快捷、反应灵敏、安全系数高、小型化等诸多优点。
本设计的达到了基本的设计要求,能够实现作为电子密码锁的功能。
本报告主要包含八个方面,能够比较系统完整的阐述由单片机作为控制中心的电子密码锁的设计、制作、调试等过程。
可以全面的表现单片机系统、程序设计、硬件电路的设计等知识,本设计采用的的是C语言编程,其中涉及的C语言知识有很多,可以说可视为C语言中的经典范例。
而本设计加以改进也必能产生其应有的功能和价值。
关键词:52单片机、电子密码锁、C语言、单片机电路设计目录一、设计任务与要求 (4)1.1 设计任务 (4)1.2 设计要求 (4)二、方案总体设计与论证 (5)2.1 方案的总体设计 (5)2.2 方案的论证与确立 (5)三、硬件设计 (6)3.1 单片机最小系统 (6)3.2 密码锁部分 (7)3.3 总的电路结构 (9)四、软件设计 (11)4.1 模块设计 (11)4.2 程序框图 (11)五、系统仿真与调试 (13)5.1 Keil uVision4简介 (13)5.2 Proteus ISIS简介 (13)5.3 仿真与调试 (13)六、实物调试与效果 (16)七、设计总结 (18)八、参考文献 (19)一、设计任务与要求1.1 设计任务本设计的任务就是通过52单片机这个中枢结合外围的输入模块、显示模块、提示模块等进行有机结合达到能够作为电子密码锁的功能,其中就是通过键盘输入密码单片机自动与设置的密码进行比对,如果正确那么锁就会自动打开,反之则不能打开。
51单片机课程设计 电子密码锁
华中师范大学武汉传媒学院传媒技术学院电子信息工程2011仅发布百度文库,版权所有.基于单片机的密码锁的设计1设计题目:电子密码锁要求采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统2设计框图3方案设计课题设计目标本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改;4.断电存储功能主控部分的选择选用单片机作为系统的核心部件,实现控制与处理的功能。
单片机具有资源丰富、速度快、编程容易等优点。
利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标。
密码输入方式的选择由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。
行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。
通过不断读行线口线,或者中断方式触发键位扫描。
当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。
当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。
每个按键都可通过程序赋予功能,从而完成密码识别。
4 硬件原图设计5程序流程图主程序流程图键功能程序流程图开锁程序流程图6仿真图7制作本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。
基于51单片机的电子密码锁
电子密码锁一、工作原理本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O 线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N ×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
利用51单片机设计一个用16个按键输入,6位数字输出显示的电子时钟。
如图1-1所示。
图1-1按键分布图具体要求和按键功能介绍如下:1. 上电后,6 位数码管显示“—”;2. 设置6 位密码,密码通过键盘输入,按“确定”键确认,如密码正确,将锁打开;3. 密码由用户自己设定,若密码正确即锁被打开,则指示灯被点亮;4. 若密码1 次输入错误,则报警;5. 按Set 键,修改密码;6. 按Cle 键可清除已输入的密码,重新进行输二、系统硬件组成本次设计的主要有键盘,数码管,STC89C52芯片,以及LED灯。
(完整版)基于51单片机的简易电子密码锁课程设计毕业设计论文
前言随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
下面就是现在主流电子密码锁:目前常见的遥控式电子防盗锁主要有光遥控和无线电遥控两类。
键盘式电子密码锁从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。
卡式电子防盗锁使用各种“卡”作为钥匙的电子防盗锁是当前最为活跃的产品,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接触式卡两大类。
生物特征防盗锁人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的(除非被逼迫或伤害)。
因此,利用生物特征做密码的电子防盗锁,也特别适合金融业注重“验明正身”的行业特点。
人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC 卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
51电子密码锁课程设计
51电子密码锁课程设计一、课程目标知识目标:1. 理解电子密码锁的基本原理,掌握相关电子元件的功能与连接方式;2. 学会编写简单的程序控制51单片机实现密码锁功能;3. 了解信息安全的基本概念,认识到密码学在电子密码锁中的应用。
技能目标:1. 能够独立设计并搭建一个51电子密码锁电路;2. 掌握51单片机的编程技巧,通过实践操作完成密码锁程序的编写;3. 学会运用所学知识解决实际问题,具备一定的创新能力和动手能力。
情感态度价值观目标:1. 培养学生对于电子技术、编程技术和信息安全的兴趣,激发学习热情;2. 培养学生的团队协作意识,提高沟通与交流能力;3. 增强学生的信息安全意识,培养良好的信息安全素养。
本课程针对中学生设计,结合学生特点,注重实践操作和创新能力培养。
课程内容与教材紧密关联,旨在帮助学生掌握电子密码锁相关知识,提高实际操作能力,同时培养情感态度价值观,为学生的全面发展奠定基础。
后续教学设计和评估将围绕课程目标进行,确保教学效果。
二、教学内容1. 电子密码锁基本原理:介绍电子密码锁的工作原理,分析锁体结构、密码输入与处理过程;- 教材章节:第二章 电子技术与传感器2. 51单片机及其外围电路:学习51单片机的结构、功能及应用,掌握相关外围电路的连接方法;- 教材章节:第三章 单片机原理与应用3. 编程控制51单片机:学习51单片机的编程语言和编程技巧,编写实现密码锁功能的程序;- 教材章节:第四章 单片机编程与控制4. 电子密码锁电路设计与搭建:根据原理图,设计并搭建51电子密码锁电路;- 教材章节:第五章 电子电路设计与实践5. 信息安全与密码学:介绍信息安全的基本概念,学习密码学在电子密码锁中的应用;- 教材章节:第六章 信息安全与密码学6. 实践操作与创新能力培养:通过实践操作,巩固所学知识,培养学生的创新能力和动手能力;- 教材章节:实践活动教学内容安排和进度:第1周:电子密码锁基本原理学习;第2周:51单片机及其外围电路学习;第3周:编程控制51单片机;第4周:电子密码锁电路设计与搭建;第5周:信息安全与密码学;第6周:实践操作与创新能力培养。
基于51单片机电子密码锁的课程设计_
基于单片机的电子密码锁设计摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要。
本文从经济实用的角度出发,系统由STC89C52与低功耗CMOS型E²PROM AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD显示、报警、开锁等电路模块。
它能完成以下功能:正确输入密码前提下,开锁;错误输入密码情况下,报警;密码可以根据用户需要更改。
用C语言编写的主控芯片控制程序与EEPROM AT24C02读写程序相结合,并用Keil软件进行编译,设计了一款可以多次更改密码,具有报警功能的电子密码控制系统。
本密码锁具有设计方法合理,简单易行,成本低,安全实用,保密性强,灵活性高等特点,具有一定的推广价值。
关键词:电子密码锁;报警;液晶显示Design of Electric Password Lock Based on MCUAbstractAs people's living standards improve, the question how to achieve home security has become particularly prominent. In science and technology is developing continuously, electronic code lock as a security guard's role is increasingly important.This article from the economical point of view, the system by the STC89C52 with low power CMOS based E ² PROM AT24C02 as the master chip and the data memory unit, combined with the external keyboard, LCD display, alarm, unlock and other circuit modules. It performs the following functions: enter the password correctly under the premise of unlocking; wrong password case the alarm; password can be changed according to user needs. Master in C language control program and EEPROM AT24C02 chip to read and write process are combined and compiled with the Keil software, designed a number you can change the password, the password with an electronic alarm control system.The lock has a reasonable design, simple, low cost, safe and practical, confidentiality, flexibility, and high, with some promotional value.Key Words:Electric Password lock;Alarm; LCD Display目录引言 (8)第1章绪论 (9)1.1 电子密码锁的背景与研究意义 (9)1.2电子密码锁的现状及发展趋势 (9)1.3本章小结 (11)第2章系统整体方案设计 (12)2.1 设计目标 (12)2.2 主控部分的选择 (12)2.3 密码输入方式的选择 (12)2.4 本章小结 (13)第3章硬件系统设计 (14)3.1系统芯片介绍 (14)3.1.1单片机STC89C52功能介绍 (14)3.1.2 LCD1602显示器介绍 (15)3.1.3存储芯片AT24C02介绍 (16)3.1.4 I2C总线介绍 (16)3.2 硬件电路设计 (18)3.2.1 复位电路 (18)3.2.2 晶振电路 (19)3.2.3存储电路 (19)3.2.4 键盘输入电路 (20)3.2.5 显示电路 (21)3.2.6 电源输入电路 (22)3.2.7 报警电路 (22)3.2.8 开锁电路 (23)3.3 本章小结 (24)第4章软件程序设计 (25)4.1 主程序流程图 (25)4.2 按键软件设计 (25)4.2.1 按键功能程序流程图 (25)4.2.2 按键功能子程序 (26)4.3 密码设置软件设计 (27)4.3.1 密码设置程序流程图 (27)4.3.2 密码设置子程序 (28)4.4 开锁软件设计 (28)4.4.1 开锁程序流程图 (28)4.4.2 开锁功能子程序 (29)4.5 本章小结 (30)第 5 章系统仿真、调试及结论 (31)5.1 Proteus软件简介 (31)5.2 进入Proteus ISIS (31)5.3 工作界面 (31)5.4 各模块的电路图及说明 (33)5.4.1 电子密码锁系统主模块AT89C51单片机 (33)5.4.2 电子密码锁系统的键盘模块 (34)5.4.3 电子密码锁系统的显示模块 (34)5.4.4 电子密码锁系统的晶振复位电路 (35)5.4.5电子密码锁系统的掉电存储及报警电路 (35)5.4.6 电子密码锁系统的开锁电路 (35)5.4 本章小结 (36)结论与展望 (37)致谢 (38)参考文献 (39)附录A 密码锁电路原理图 (40)附录B 一篇引用的外文文献及其译文 (41)附录C 主要参考文献的题录及摘要 (47)附录D 主要C语言源程序 (49)插图清单图2- 1系统整体设计框图 (12)图3- 1 STC89C52引脚分布图 (14)图3- 2 AT24C02引脚图 (16)图3- 3开始结束信号图 (17)图3- 4复位电路原理图 (19)图3- 5晶振电路原理图 (19)图3- 6掉电存储电路原理图 (20)图3- 7键盘输入原理图 (21)图3- 8显示电路原理图 (22)图3- 9电源输入电路原理图 (22)图3- 10报警电路原理图 (23)图3- 11密码锁开锁机构示意图 (23)图3- 12开锁电路原理图 (24)图4- 1主程序流程图 (25)图4- 2按键功能流程图 (26)图4- 3密码设置流程图 (27)图4- 4开锁流程图 (29)图5- 1 Proteus启动时的屏幕 (31)图5- 2 Proteus ISIS的工作界面 (32)图5- 3 Proteus运行按键 (32)图5- 4 Proteus仿真图 (33)图5- 5 STC89C52单片机引脚图 (33)图5- 6键盘输入模块 (34)图5- 7密码显示模块 (34)图5- 8晶振及复位电路 (35)图5- 9掉电存储及报警电路 (35)图5- 10开锁电路 (36)表格清单表3-1 LCD1602引脚接口说明表 (8)表3-2 LCD1602基本操作程序 (15)引言在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
基于51单片机电子密码锁的设计
图 3.4 开锁电路
3.3 整体电路图的绘制
用Prteus软件绘制完整的电路图。
(1)密码正确并且确认之后的整体电路及显示情况,如图3.5。
图3.5 密码正确系统电路及显示图
(2)密码错误后的整体电路及显示情况,如图3.6。
图 3.6 密码错误系统电路及显示图
第四章 软件设计
4.1 系统软件设计思路
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
图 2.3 AT89C51芯片图
第三章 系统硬件设计
3.1 键盘设计
本实验采用4×4行列式矩阵键盘,用数字键输入密码,ENTER键确认;如果密码输入错误,用DEL键清除;密码输入完毕并且确认后,如果需要重新输入,先按Esc退出,然后重新输入;若用户想要自行更改密码,需要先正确输入密码并确认后,按ALT进行修改,再按ENTER进行确认,密码更改完毕。
基于51单片机的电子密码锁系统设计任务书
基于51单片机的电子密码锁系统设计任务书西安工业大学毕业设计(论文)任务书院(系)专业班姓名学号1.毕业设计(论文)题目:基于51单片机的电子密码锁系统设计2.题目背景和意义:STC 公司生产的89C52 单片机是一款性价比非常高的单片机,它完全兼容ATMEL 公司的51 单片机,除此之外它自身还有很多特点,如:无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等。
传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,与之相比,电子锁具有保密性高,使用灵活性好,安全系数高等特点。
通过设计电子密码锁系统程序,对单片机硬件选型,绘制电路原理图到编写程序并运行调试进行深入了解,对于从事计算机,自动化控制等工程应用具有一定意义。
3.设计(论文)的主要内容(理工科含技术指标):深入了解单片机c语言编程,用以AT89C52为核心的单片机控制方案进行设计,系统主要由52单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能,具体实现是通过键盘输入正确的密码将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。
密码可以由用户自己修改设定,锁打开后才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,防止误操作。
利用protel制作电路图,焊接电路板。
要求一系列工作按步骤、有计划的完成。
4.设计的基本要求及进度安排(含起始时间、设计地点):第一周到第二周:完成资料查寻以及相关知识学习;第三周到第四周:完成设计方案及开题报告;第五周到第十周:完成中期报告,汇报进度;第十一周到第十五周:完成全部设计工作;第十五周到第十六周:完成毕业设计论文,准备答辩。
5.毕业设计(论文)的工作量要求①实验(时数)*或实习(天数):②图纸(幅面和张数)*:③其他要求:论文字数: 15000字以上指导教师签名:年月日学生签名:年月日系(教研室)主任审批:年月日说明:1本表一式二份,一份由学生装订入附件册,一份教师自留。
基于51单片机的无线电子密码锁课程设计
单片机课程设计报告书课题名称基于89C51单片机无线电子密码锁的设计姓 名刘武 学 号131220330 学 院通信与电子工程学院 专 业电子信息工程 指导教师祝秋香 讲师2015年 12月20日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2013级电子信息工程专业单片机课程设计基于89C51单片机无线电子密码锁的设计1 设计目的(1)了解MCS-51单片机使用方法和熟悉蓝牙模块;(2)掌握AT89C51芯片的使用方法及蓝牙模块的连接与使用;(3)熟悉单片机程序仿真软件Proteus的使用;(4)了解MCS-51单片机开发板工作原理以及芯片的组合;(5)熟悉无线电子密码锁的设计及实现。
2设计思路2.1 选择设计电路设计51单片机与蓝牙连接的电路。
2.2 所选设计电路的原因(1)由于无线电子密码锁的设计需要用到蓝牙模块,用到的单片机资源并不是很多,而51单片机的资源有8位CPU、4KB的ROM、128B的RAM、2个16位定时/计数器、4组8位的I/O、1个串口和5个中断源,可以更有效率的利用到51单片机的资源。
(2)可现实无线功能的模块有:蓝牙模块、无线模块、红外遥控模块,因为相对之下,蓝牙模块更容易实现,更容易操作,最后选择蓝牙模块实现手机远程控制。
(3)为了提高效率,可以利用51单片机开发板的硬件,用LED灯模拟密码锁的开关,当LED灯亮起时代表锁已经开启,熄灭则代表密码锁被关闭。
应用在实际中可用继电器替代LED的亮灭去控制强电开关。
3 设计过程3.1 设计总框图无线电子密码锁分为两个主要功能模块:51单片机模块,蓝牙实现模块。
这两个模块共同工作完成本电路的功能实现。
其中利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来实现手机远程控制功能。
其设计总框图如图.1所示:图1 总体方框图3.2 单元模块设计3.2.1. 总电路其设计的总电路如图2所示:图2 总电路图其工作原理如下:通过在51单片机开发板对AT89C52芯片写入程序,建立单片机与蓝牙模块之间的串口通信,并通过手机输入指令输入到蓝牙模块之中,通过程序利用单片机串口将蓝牙与51单片机进行通信,并控制单片机的引脚,从而控制外围电路的LED灯的亮灭和数码管的功能实现。
基于51单片机的密码锁设计报告
基于51单片机的密码锁设计报告一、引言随着科技的不断发展,安全问题越来越受到人们的关注。
密码锁作为一种常见的安全防护设备,在保护个人财产和隐私方面发挥着重要作用。
本设计报告介绍了一种基于 51 单片机的密码锁系统,该系统具有成本低、可靠性高、操作简单等优点,适用于家庭、办公室等场所。
二、系统总体设计(一)设计目标设计一个基于 51 单片机的密码锁系统,实现以下功能:1、密码输入与验证功能。
2、密码修改功能。
3、错误输入次数限制及报警功能。
4、开锁状态指示功能。
(二)系统组成本系统主要由 51 单片机、矩阵键盘、液晶显示屏(LCD)、电磁锁驱动电路、报警电路等组成。
1、 51 单片机作为核心控制器,负责处理密码输入、验证、修改等操作,并控制其他模块的工作。
2、矩阵键盘用于输入密码和执行相关操作。
3、 LCD 显示屏用于显示系统状态和提示信息。
4、电磁锁驱动电路用于控制电磁锁的开关。
5、报警电路在密码输入错误次数超过限制时发出报警信号。
三、硬件设计(一)51 单片机选型本设计选用 STC89C52 单片机,该单片机具有丰富的 I/O 口资源、较高的性价比和良好的稳定性。
(二)矩阵键盘设计矩阵键盘采用 4×4 行列式结构,通过扫描的方式获取按键值。
(三)LCD 显示屏接口设计选用 1602 液晶显示屏,通过并行接口与单片机连接,实现数据的传输和显示。
(四)电磁锁驱动电路设计电磁锁采用直流电源供电,通过三极管驱动电路控制其开关。
(五)报警电路设计报警电路采用蜂鸣器实现,当密码输入错误次数超过限制时,单片机输出高电平驱动蜂鸣器发声报警。
四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、LCD 初始化等。
然后进入密码输入状态,等待用户输入密码。
用户输入密码后,进行密码验证,如果密码正确,则打开电磁锁,并显示开锁成功信息;如果密码错误,则记录错误次数,并显示错误提示信息。
基于51单片机的密码锁设计概要
基于51单片机的密码锁设计概要设计一个基于51单片机的密码锁,通过输入正确的密码来打开锁。
以下是设计的概要:1. 系统组成部分:- 51单片机控制模块- LCD显示模块- 按键输入模块- 电机驱动模块- 电源供应模块2. 密码锁工作流程:- 初始状态:系统进入初始状态,显示提示信息和空密码框。
- 输入密码:用户通过按键输入密码。
- 密码比对:系统将输入的密码与保存的密码进行比对。
- 密码正确:如果密码正确,则显示开锁成功信息,并触发电机驱动模块,打开锁。
- 密码错误:如果密码错误,则显示错误信息,并记录错误次数。
- 达到最大错误次数:如果错误次数达到最大设定次数,则锁定系统。
- 重置密码:用户可以通过特定操作来重置密码。
- 修改密码:用户可以通过特定操作来修改密码。
3. 系统设计:- 51单片机控制模块:负责控制整个系统的工作流程。
接收按键输入、控制LCD显示、比对密码、控制电机驱动模块等。
- LCD显示模块:可以显示系统提示信息、密码输入框、错误信息等。
- 按键输入模块:提供按键输入接口,用于用户输入密码和特定操作。
- 电机驱动模块:用于控制锁的开关动作,根据单片机控制模块的指令来打开或关闭锁。
- 电源供应模块:提供电源给整个系统,确保系统正常工作。
4. 密码存储和比对:- 使用EEPROM来储存密码,以防止密码丢失。
- 在输入密码时,系统从EEPROM中读取正确的密码,并与用户输入的密码进行比对。
5. 锁定功能:- 设置一个最大错误次数,当错误次数达到设定的最大值时,系统将锁定并停止进一步的密码输入,直到进行密码重置。
6. 特定操作:- 重置密码:用户在已经登录的情况下,通过按下指定的按键组合,进入密码重置模式,并可以重新设置密码。
- 修改密码:用户在已经登录的情况下,通过按下指定的按键组合,进入密码修改模式,并可以修改当前的密码。
7. 安全性设计:- 为了防止密码泄露,系统设计中不应显示实际的密码字符,而是以掩码形式显示用户的输入。
51单片机密码锁课程设计
51单片机密码锁课程设计一、课程目标知识目标:1. 掌握51单片机的基本原理与编程方法;2. 了解密码锁的工作原理,理解51单片机在密码锁中的应用;3. 学会使用相关电路元件,如按键、显示屏等,实现与51单片机的交互;4. 掌握密码锁程序的设计与调试,学会使用开发工具进行编程。
技能目标:1. 能够运用C语言编写51单片机程序,实现密码锁的基本功能;2. 能够独立设计电路图,连接相关元件,搭建51单片机密码锁的硬件系统;3. 学会使用调试工具,对密码锁程序进行调试,找出并解决问题;4. 提高动手实践能力,培养团队协作和问题解决能力。
情感态度价值观目标:1. 培养学生对电子制作的兴趣和热情,激发创新意识;2. 培养学生严谨、细心的科学态度,提高学生对工程实践的认识;3. 增强学生的自信心和成就感,鼓励学生积极参与科技竞赛和实践活动;4. 培养学生的团队协作精神,提高沟通与表达能力。
课程性质:本课程为实践性课程,结合理论知识,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生具备一定的电子基础知识,对单片机编程有一定了解,但实践经验不足。
教学要求:教师需引导学生从理论到实践,注重培养学生的创新意识和实际操作能力,关注个体差异,因材施教。
通过课程学习,使学生能够独立完成51单片机密码锁的设计与制作。
二、教学内容1. 理论部分:a. 51单片机原理及结构介绍;b. C语言编程基础,重点讲解与51单片机相关的语法和编程技巧;c. 密码锁工作原理及其在51单片机中的应用;d. 介绍相关电路元件的原理及使用方法。
2. 实践部分:a. 搭建51单片机密码锁硬件系统,包括按键输入、显示输出等;b. 编写密码锁程序,实现密码设置、修改、验证等功能;c. 使用调试工具进行程序调试,分析并解决可能出现的问题;d. 优化程序,提高密码锁的稳定性和安全性。
教学大纲:1. 第一周:51单片机原理介绍,C语言编程基础;2. 第二周:密码锁工作原理,电路元件介绍;3. 第三周:搭建硬件系统,编写基础程序;4. 第四周:调试与优化程序,完善密码锁功能;5. 第五周:总结与展示,课程评价。
(完整版)基于51单片机的电子密码锁毕业设计论文
(完整版)基于51单⽚机的电⼦密码锁毕业设计论⽂⽬录第1章绪论 (1)1.1电⼦锁的发展状况 (1)1.2设计电⼦密码锁的意义及相关技术指标 (1)第2章总体设计及⽅案论证 (2)2.1单⽚机模块 (2)2.2输⼊键盘模块 (2)2.2.1独⽴式按键 (2)2.2.2矩阵式键盘 (3)2.3数码管显⽰模块 (3)2.3.1 LED静态显⽰⽅式 (3)2.3.2 LED动态显⽰⽅式 (3)2.4电源模块 (3)2.4.1蓄电池供电 (3)2.4.2双路电源供电 (3)2.5开锁电路模块 (4)2.6报警电路模块 (4)2.7最优⽅案 (4)第3章硬件电路设计 (4)3.1输⼊键盘 (4)3.2显⽰数码管 (5)3.3开锁电路 (6)3.4报警电路 (6)3.5电源电路 (7)3.6复位电路 (7)3.7振荡电路 (8)第4章软件设计 (9)4.1主程序流程图及程序 (9)4.2延时⼦程序 (11)4.3修改密码⼦程序 (11)4.4扫描键盘输⼊⼦程序 (11)4.5中断及报警⼦程序 (12)4.6显⽰⼦程序 (13)第5章设计总结 (15)参考⽂献 (16)附录Ⅰ (17)附录Ⅱ (18)第1章绪论1.1电⼦锁的发展状况随着科技的发展,传统的机械锁被破解的概率越来越⾼了,新型的盗贼也学会了与时俱进,通过各种技术⽅法和⼿段即会在短时间内开启结构复杂的机械锁,会不留痕迹的登堂⼊室,给失主和警⽅留下各种不易解惑的疑团。
由此我们想到,要是在机械锁的基础上再装上⼀把电⼦锁,就彻底杜绝了单⼀机械锁易被开启的弊端,从⽽极⼤提⾼门锁的安全防范性能。
当今世界,电⼦锁发展已经到了⾮常⾼的境界,由于电⼦元件特别是单⽚机应⽤在最近⼏年得到空前发展,电⼦锁⽆论是在功能还是在稳定性⽅⾯都有了较⼤的提⾼,在保密性⽅⾯已经做到了密码识别、指纹识别、⼈声识别等。
就整体形势⽽⾔,电⼦锁在国外发展⽐较早,所以应⽤也⽐较⼴泛,主要⽤于家庭门锁,银⾏公司等的财务保险柜锁和政府机关及⾼级宾馆等重要场合的智能控制门锁等。
基于51单片机的密码锁设计
基于单片机的密码锁设计1 引言1.1设计目的随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
电子密码锁就是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
目前,国内自行研制开发的电子锁,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
1.2设计要求本次课程设计要求使我们能够掌握并且实际运用课本知识。
通过利用所学的电子技术知识正确分析并设计电路,将适当电路运用到实际电路中,将课本知识转化为实际能力。
1.3设计方法(1)系能够从键盘中输入密码,并相应地在显示器上显示…*‟;能够判断密码是否正确,正确则开锁,错误则输出相应信息。
(2)密码由程序直接设定,不可用户自己设定。
(3)具有自动报警功能。
密码不正确,相应红灯亮,蜂鸣器发出报警声来提示。
(4)具有手动复位功能。
2设计方案及原理2.1系统总体设计根据以上分析,本次电子密码锁设计的主要重点是以下几个部分:4x3矩阵键盘设计、LCD信息显示和密码的比较和处理。
当然,除了这几个部分外还有报警等功能模块。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路是报警。
系统整体框图如图1所示。
图1 系统整体框图2.2本设计硬件资源分配P3.0~P3.7用于LCD液晶显示作用。
P1.6、P1.7用于蜂鸣器和报警灯的控制。
P1.4用于开锁电路的控制。
P2.0~P2.7用于键盘电路的控制。
P1.0~P1.2用于LCD显示模块的控制端口的控制。
3硬件设计3.1.1芯片选择本次设计采用AT89C51贴片芯片,AT89C51是一个低电压,高性能CMOS 8位单片机,通过用Keil软件编写程序,然后装到单片机里面去,然后让它对整个系统进行信息的处理,如可以让它处理矩阵键盘传过来的信息,并根据编好的程序来确定哪个按键按下,并处理相应按键对应的功能,然后把相应的信息反应到单片机的各个引脚,来实现按键实现的现象,如:显示是否开启锁,报警等。
基于51单片机电子密码锁设计_毕业设计
基于51单片机密码锁课程设计摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出。
在科学技术不断进展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要。
本设计以单片机AT89C51作为密码锁监控装置的检测和操纵核心,分为主机操纵和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
依照51单片机之间的串行通信原理,这便于对密码信息的随机加密和爱惜。
而且采纳键盘输入的电子密码锁具有较高的优势。
采纳数字信号编码和二次调制方式,不仅能够实现多路信息的操纵,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反映速度快、传输效率高、工作稳固靠得住等。
软件设计采纳自上而下的模块化设计思想,以使系统朝着散布式、小型化方向进展,增强系统的可扩展性和运行的稳固性。
测试结果说明,本系统各项功能已达到本设计的所有要求。
关键词:单片机;密码锁;单片机设计,电子锁。
目录一.绪论 (1)引言 (1)电子密码锁的背景 (1)电子密码锁设计的意义和本设计特点 (2)二.系统设计 (3)系统总设计结构图 (3).开锁机构设计 (3)主控芯片AT89C51单片机的简介 (4)三.系统硬件设计 (7)键盘设计 (7)系统电路设计: (8)晶振时钟电路 (8)复位电路设计 (9)串口引脚功能介绍 (9)其它引脚 (9)电路图的绘制 (9)元器件采购 (11)四.软件设计 (12)系统软件设计整体思路 (12)系统软件设计流程图 (13)五.程序调试 (14)程序调试用到的软件及工具 (14)KEIL C51简介 (14)调试进程 (15)六.总结与展望 (17)致谢 (18)参考文献 (19)附录 (20)一.绪论引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件不足为奇,电子锁由于其保密性高,利用灵活性好,平安系数高,受到了广大用户的喜爱。
基于51单片机的密码锁设计报告
基于51单片机的密码锁设计报告基于51单片机的密码锁设计报告一、引言随着人们对个人财产安全的关注日益加深,密码锁作为一种智能识别系统,能够提供比传统机械锁更高的安全性和便利性。
51单片机作为一种常见的微控制器,具有体积小、价格低廉、易于编程和扩展等优点,因此被广泛应用于各种控制系统。
在本设计中,我们将基于51单片机构建一个密码锁系统。
二、系统总体设计本系统主要由51单片机、液晶显示屏(LCD)、矩阵键盘、报警模块和电源模块组成。
其中,51单片机作为主控芯片,负责处理用户输入的密码、控制LCD显示和报警模块。
LCD用于显示用户输入的密码和操作提示信息。
矩阵键盘用于用户输入密码。
报警模块在密码错误时发出警报。
电源模块为系统提供稳定的工作电压。
三、硬件设计1、51单片机:采用AT89C51或STC89C52等常见的51单片机。
2、液晶显示屏:选用1602 LCD,显示效果清晰,操作简单。
3、矩阵键盘:采用4×4键盘,按键布局可根据实际需求调整。
4、报警模块:使用蜂鸣器和LED进行声音和灯光提示。
5、电源模块:为系统提供+5V稳定电压。
四、软件设计本系统的软件设计主要分为以下几个模块:1、密码管理:包括密码设置、密码修改和密码重置等功能。
2、密码验证:在用户输入密码后,系统通过与预设的密码进行比对,判断密码是否正确。
3、系统提示:通过LCD显示操作步骤和提示信息,引导用户正确使用密码锁。
4、报警处理:在密码错误时,启动报警模块,发出警报声音和灯光提示。
五、系统调试与结果在完成硬件设计和软件编程后,我们对系统进行了调试和测试。
结果表明,基于51单片机的密码锁系统能够实现预设的功能,包括密码输入、密码验证、错误提示和报警等。
同时,系统运行稳定,具有良好的可靠性和安全性。
六、结论本设计基于51单片机的密码锁系统,实现了对密码的存储、输入和验证等功能,具有较高的安全性和便利性。
通过扩展报警模块,系统能够有效地应对非法入侵等情况。
基于C51单片机的电子密码锁课程设计
10/11学年第二学期《单片机控制系统设计与调试》课程设计任务书指导教师:班级:地点:机房、单片机实验室课程设计题目:密码锁的设计一、课程设计目的1.灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。
2.能够上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。
3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。
二、课程设计内容(包括技术指标)1. 主要设计内容:使用数码管显示器来显示密码输入的相关信息,通过10位数字按键(0~9)设置4位数字(0~9)密码,2位功能按键A(输入校验密码并验证密码)和B (设置新密码),利用继电器模拟电子门锁作出是否开门以及报警等反应。
2. 具体设计内容:上电时内定初始密码为“0000”,红色发光二极管点亮,绿色发光二极管熄灭,数码管显示器显示“初始状态”,“初始状态”由设计者自行设计,但不可省略。
功能按键A:实现设置新密码功能,存储新密码并显示,一旦设定新密码,则初始密码失效。
功能按键B:实现输入校验密码并验证密码功能,显示校验密码并进行密码比较。
密码输入正确则继电器启动,并使红色发光二极管熄灭,绿色发光二极管点亮,数码管显示器提示“密码正确”,“密码正确”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后继电器关闭,绿色发光二极管熄灭,红色发光二极管点亮;●密码输入错误则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码错误”,“密码错误”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警;●校验密码连续输入错误3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码连续错误3次”,“密码连续错误3次”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警,新密码失效,恢复初始密码使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告书课题名称基于89C51单片机无线电子密码锁的设计姓 名刘武 学 号131220330 学 院通信与电子工程学院 专 业电子信息工程 指导教师祝秋香 讲师2015年 12月20日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2013级电子信息工程专业单片机课程设计基于89C51单片机无线电子密码锁的设计1 设计目的(1)了解MCS-51单片机使用方法和熟悉蓝牙模块;(2)掌握AT89C51芯片的使用方法及蓝牙模块的连接与使用;(3)熟悉单片机程序仿真软件Proteus的使用;(4)了解MCS-51单片机开发板工作原理以及芯片的组合;(5)熟悉无线电子密码锁的设计及实现。
2设计思路2.1 选择设计电路设计51单片机与蓝牙连接的电路。
2.2 所选设计电路的原因(1)由于无线电子密码锁的设计需要用到蓝牙模块,用到的单片机资源并不是很多,而51单片机的资源有8位CPU、4KB的ROM、128B的RAM、2个16位定时/计数器、4组8位的I/O、1个串口和5个中断源,可以更有效率的利用到51单片机的资源。
(2)可现实无线功能的模块有:蓝牙模块、无线模块、红外遥控模块,因为相对之下,蓝牙模块更容易实现,更容易操作,最后选择蓝牙模块实现手机远程控制。
(3)为了提高效率,可以利用51单片机开发板的硬件,用LED灯模拟密码锁的开关,当LED灯亮起时代表锁已经开启,熄灭则代表密码锁被关闭。
应用在实际中可用继电器替代LED的亮灭去控制强电开关。
3 设计过程3.1 设计总框图无线电子密码锁分为两个主要功能模块:51单片机模块,蓝牙实现模块。
这两个模块共同工作完成本电路的功能实现。
其中利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来实现手机远程控制功能。
其设计总框图如图1所示:图1 总体方框图3.2 单元模块设计3.2.1. 总电路其设计的总电路如图2所示:图2 总电路图其工作原理如下:通过在51单片机开发板对AT89C52芯片写入程序,建立单片机与蓝牙模块之间的串口通信,并通过手机输入指令输入到蓝牙模块之中,通过程序利用单片机串口将蓝牙与51单片机进行通信,并控制单片机的引脚,从而控制外围电路的LED灯的亮灭和数码管的功能实现。
3.2.2 51单片机系统单片机最小系统是在以MCS-51单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量。
单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。
本课题设计主要在MCS-51单片机上扩展I/O口,扩展定时器定时范围,扩展键盘显示接口。
下图为AT89C51芯片引脚图如图3所示:图3 89C51芯片引脚图3.2.3 复位及振荡电路单片机中的复位及振荡电路如图4所示:图4 复位及振荡电路图复位电路由按键复位和上电复位两部分组成。
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
MCS51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
3.2.4 八段数码显示管单片机中数码管的实现与显示电路如图5所示:图5 数码管电路图MCS-51单片机包含六个共阴极8段数码管显示器,可以使用动态扫描或者静态显示方式驱动。
八位段选在通过330Ω限流后连接在单片机的P0口上。
3.2.5 按键及LED电路单片机中LED灯与按键电路如图6所示:图6 按键及LED电路图开发板上提供了8个独立LED,由P2口控制,同样采用共阳级接法,所以只有当P2口输出低电平时LED才会点亮。
这样做的主要原因是因为单片机的低电平驱动能力高。
3.2.6 蓝牙模块HC-06是主从一体化的蓝牙串口模块,主从可指令切换,指令少于HC-05,使用简单。
(供电电压 3.3V~3.6V)主机:用来搜索从设备,不能被其他设备搜索。
(带白点的蓝牙模块)从机:用来被搜索的设备,不能主动搜索其他设备。
主从连上以后就相当于一根串口线使用,这个时候就不分主从,也就是透传模式。
蓝牙透传模块可以让你原来使用串口的设备摆脱线缆的束缚在10米范围内实现无线串口通信。
4 系统设计4.1 主程序流程图系统总流程图如图7所示,流程图分析:首先系统初始化,系统开始运行,当手机输入数字密码时,数码管会以加密的方式显示输入状态,若是6位密码输入正确,则LED亮起(代表锁打开),否则熄灭。
在LED灯亮起的前提下,可以输入命令’c’进入更改密码模式,然后重新输入新密码,此时数码管显示的是不加密的明文。
输入新密码完成之后输入命令’d’对新密码进行确认,所有的操作均在手机端的APP中完成。
在手机按键操作之下点击’close’可以直接关闭密码锁,点击’retry’能够重新开始输入密码。
本密码锁能实现掉电密码保存功能,即使断电重启也不会重新恢复初始密码,大大提高了电子密码锁的实用性和安全性。
而更改密码这一功能是在高级模式下更改的,一般人即使知道了密码但是不知道更改密码的命令是无法更改密码的,安全保障更上一层。
注:更改密码为此密码锁的高级模式,普通权限下使用的是“键盘模式”。
系统初始化密码是否正确?输入六位密码LED 亮起显示开锁状态关锁不响应(LED 熄灭)等待输入指令根据指令执行任务(更改密码,关闭密码锁)用新密码替换旧密码写入24C02掉电锁存数码管显示输入状态更改密码:输入新的六位密码在数码管上显示输入的新密码关闭密码锁,LED 全部熄灭确认新密码或重新输入新密码YESNO图7 程序流程图4.2 硬件测试 (1)用手机连上HC06模块的蓝牙之后,在手机APP 中的键盘模式里面输入初始密码‘012345’并观察单片机的变化,显示结果如图8所示:图8 输入初始密码的测试结果图数码管上显示输入密码的状态,6位密码均被用‘—’进行加密,从手机APP 的图上面可以看出输入的密码为‘012345’,密码输入正确,数码管下方的一排LED灯亮起。
(2)在手机APP的命令模式中输入‘c’(在开锁的状态下),设置新密码为‘321654’,此时新密码设置的过程为明文在数码管上显示。
然后输入‘d’对新密码进行确认。
显示结果如图9所示:图9 设置新密码(3)进入APP键盘模式,点击’close’按钮,关闭密码锁,然后重新掉电启动密码锁,输入’012345’旧密码,显示结果如图10所示:图10 密码更新之后输入旧密码可见数码管右下方的LED灯没有亮起,说明输入密码错误。
(4)点击APP键盘模式里面的‘retry’重新输入密码。
输入密码为‘321654’显示结果如图11所示:图11 输入新密码测试图由结果可知输入正确的新密码之后可以成功开启密码锁,而原始的密码则不能。
说明密码更改成功。
4.3测试结果分析与结论在编写程序的时候,需要一定的逻辑思维,同时需要有耐心同时又要细心。
在编译成功后,产生以“*.hex”和“*.bin” 后缀的目标文件。
在下载程序的时候,需要注意的是,先要将程序下载到AT89C51中再将蓝牙与单片机用杜邦线连接起来。
从硬件测试的结果可以知道,显示功能与所写程序实现的功能基本符合,基本完成了基础的无线电子密码锁设计。
5 设计体会经过多次的反复测试与分析,对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。
同时在软件的编程方面得到更到的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。
总之,在这次课程设计过程中,我收获了很多,不仅对我以后的学习有很大的帮助,也为将来的人生之路坐了一个很好的铺垫。
参考文献[1] 黄辉先. 单片机原理及应用[M]. 湘潭: 湘潭大学出版社, 2013.附录程序设计/******************************************************************** 无线电子密码锁1312203-30 刘武********************************************************************* 与P1相连的8位发光LED点亮代表锁被打开;熄灭代表锁被锁上。
程序功能:本程序结合了24C02存储器的存储功能,可以掉电保存密码。
利用HC-06无线蓝牙模块与手机端的蓝牙进行通信,再通过HC-06的串口与51单片机进行串口通信,从而达到远程开关锁的功能。
远程距离可达5~10米(视场地空旷程度而定)1、开锁:开启设备,从手机端输入密码,当6位密码正确时点亮8位发光LED。
2、更改密码:只有当开锁(LED亮)后,该功能方可使用。
从手机app进入实时命令模式,输入'c'(change)之后再输入想要更改的密码,最后输入'd'确认密码。
3、重试密码:手机端app的“键盘模式”中点击“retry”,或者进入实时命令模式输入'a',当设置密码时,设置中途想更改密码,也可按下此键重新设置。
4、关闭密码锁:手机端app的"键盘模式"中点击“close”,或者进入实时命令模式下输入'b'。
注:更改密码为此密码锁的高级模式,普通权限下使用的是“键盘模式”。
*******************************************************************/ #include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar old1,old2,old3,old4,old5,old6;uchar new1,new2,new3,new4,new5,new6; //新采集的密码uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量uchar wei,key,temp,input;bit allow,genggai,ok,wanbi,retry,close,on; //各个状态位sbit dula=P2^6;sbit wela=P2^7;sbit beep=P2^3;sbit sda=P2^0; //IO口定义sbit scl=P2^1;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};/*****************IIC芯片24C02存储器驱动程序**************/ void nop(){_nop_();_nop_();}/////////24C02读写驱动程序////////////////////void delay1(unsigned int m){ unsigned int n;for(n=0;n<m;n++);}void init() //24c02初始化子程序{scl=1;nop();sda=1;nop();}void start() //启动I2C总线{sda=1;nop();scl=1;nop();sda=0;nop();scl=0;nop();}void stop() //停止I2C总线{sda=0;nop();scl=1;nop();sda=1;nop();}void writebyte(unsigned char j) //写一个字节{unsigned char i,temp;temp=j;for (i=0;i<8;i++){temp=temp<<1;scl=0;nop();sda=CY; //temp左移时,移出的值放入了CY中nop();scl=1; //待sda线上的数据稳定后,将scl拉高nop();}scl=0;nop();sda=1;nop();}unsigned char readbyte() //读一个字节{unsigned char i,j,k=0;scl=0; nop(); sda=1;for (i=0;i<8;i++){nop(); scl=1; nop();if(sda==1)j=1;elsej=0;k=(k<<1)|j;scl=0;}nop();return(k);}void clock() //I2C总线时钟{unsigned char i=0;scl=1;nop();while((sda==1)&&(i<255))i++;scl=0;nop();}////////从24c02的地址address中读取一个字节数据///// unsigned char read24c02(unsigned char address){unsigned char i;start();writebyte(0xa0);clock();writebyte(address);clock();start();writebyte(0xa1);clock();i=readbyte();stop();delay1(100);return(i);}//////向24c02的address地址中写入一字节数据info///// void write24c02(unsigned char address,unsigned char info) {start();writebyte(0xa0);clock();writebyte(address);clock();writebyte(info);clock();stop();delay1(5000);}/****************密码锁程序模块*********************/ void delay(unsigned char i){uchar j,k;for(j=i;j>0;j--)for(k=125;k>0;k--);}void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f) {dula=0;P0=table[a];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table[b];dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);P0=table[c];dula=1;dula=0;P0=0xfb;wela=1;wela=0;delay(5);P0=table[d];dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(5);P0=table[e];dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(5);P0=table[f];dula=1;dula=0;P0=0xdf;wela=1;wela=0;delay(5);}void keyscan()//输入按键扫描模块{if(on){switch(input){case '0':key=0;wei++;break;case '1':key=1;wei++;break;case '2':key=2;wei++;break;case '3':key=3;wei++;break;case '4':key=4;wei++;break;case '5':key=5;wei++;break;case '6':key=6;wei++;break; case '7':key=7;wei++;break; case '8':key=3;wei++;break; case '9':key=3;wei++;break; case 'a':retry=1;break; case 'b':close=1;break; case 'c':genggai=1;wei=0;break; case 'd':if(allow)ok=1;break;}beep=0;}//delay(500);beep=1;on=0;}void shumima() //对按键采集来的数据进行分配{if(!wanbi){switch(wei){case 1:new1=key;if(!allow) a=17;else a=key; break;case 2:new2=key;if(a==17) b=17;else b=key; break;case 3:new3=key;if(a==17) c=17;else c=key; break;case 4:new4=key;if(a==17) d=17;else d=key; break;case 5:new5=key;if(a==17) e=17;else e=key; break;case 6:new6=key;if(a==17) f=17;else f=key;wanbi=1; break;}}}void yanzheng() //验证密码是否正确{if(wanbi) //只有当六位密码均输入完毕后方进行验证{if((new1==old1)&(new2==old2)&(new3==old3)&(new4==old4)&(new5==old5) &(new6==old6))allow=1; //当输入的密码正确,会得到allowe置1}}void serial_init(){SCON=0X50;TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;EA=1;ES=1;}void main(){init(); //初始化24C02old1=read24c02(110);old2=read24c02(111);old3=read24c02(112);old4=read24c02(113);old5=read24c02(114);old6=read24c02(115);serial_init();//初始化串口中断while(1){keyscan();shumima();yanzheng();if(allow) //验证完后,若allow为1,则开锁{P1=0x00;if(!genggai)wanbi=0;}if(genggai) //当更改密码键('c')被按下,genggai会被置1{if(allow) //若已经把锁打开,才有更改密码的权限{while(!wanbi) //当新的六位密码没有设定完则一直在这里循环{keyscan();shumima();if(retry|close) //而当探测到重试键或者关闭密码锁键被按下时,则跳出{ wanbi=1;break;}display(a,b,c,d,e,f);}}}if(ok) //更改密码时,当所有六位新密码均被按下时,可以按下此键,结束密码更改('d'){ //其他时间按下此键无效ok=0; wei=0;genggai=0;old1=new1;old2=new2;old3=new3; //此时,旧的密码将被代替old4=new4;old5=new5;old6=new6;//新密码写入存储区。