密码锁-单片机课程设计
51单片机四位密码锁课程设计
51单片机四位密码锁课程设计51单片机四位密码锁是一种常见的电子锁,它使用51单片机作为控制核心,通过输入四位密码来控制锁的开关。
本文将介绍关于51单片机四位密码锁的课程设计。
我们需要明确设计的目标和要求。
本设计的主要目标是实现一个四位密码锁系统,并且需要满足以下要求:1.能够输入四位数字密码。
2.密码输入正确时,能够解锁并输出解锁信号。
3.密码输入错误时,不能解锁。
4.能够重置密码。
接下来,我们将详细介绍设计的步骤和实现。
1.硬件设计:在硬件设计方面,我们需要准备以下器件:- 51单片机-数码管显示模块-按键模块-继电器模块-电源模块2.软件设计:在软件设计方面,我们需要编写51单片机的程序,通过编程实现密码锁的功能。
以下是设计的主要步骤:-初始化:设置输入输出引脚,并初始化时钟和数码管显示。
-输入密码:设计密码输入的函数,通过按键模块获取用户输入的密码。
-检验密码:设计密码检验的函数,将用户输入的密码与预设的密码进行比对。
-解锁信号:如果密码输入正确,输出解锁信号,通过继电器控制开关,实现解锁。
-密码错误:如果密码输入错误,通过数码管显示密码错误的提示信息。
-重置密码:设计密码重置的函数,将新设置的密码保存。
3.程序流程:根据以上设计的步骤,我们可以得到以下主要的程序流程:-初始化引脚和时钟。
-设置初始密码。
-进入主程序循环。
-接收用户输入的密码。
-检验密码是否正确。
-如果密码正确,显示解锁信号并控制继电器解锁。
-如果密码错误,显示密码错误信息。
-进入下一次循环。
4.调试和测试:完成程序编写后,我们需要进行调试和测试。
在测试过程中,我们需要输入正确和错误的密码进行验证,检查程序是否能够正常运行,并且能够正确判断和处理用户输入的情况。
5.优化改进:如果在测试中发现问题或不足之处,我们可以对程序进行优化和改进。
例如,可以增加密码输入的最大尝试次数,增加延时等待时间,增加密码保护等功能。
总结:通过对51单片机四位密码锁的课程设计,我们学习了如何使用51单片机编写程序,实现密码锁的功能。
单片机课程设计 电子密码锁
第1章设计目的1.利用所学单片机的理论知识进行软硬件整体设计,锻炼学生理论联系实际、提高我们的综合应用能力。
2.我们这次的课程设计是以单片机为基础,设计出一个具有一定功能的电子密码锁。
3.掌握一些重要芯片的功能特性及使用方法,并能运用其组合成一个简单的单片机机应用系统。
4.锻炼同学们的动手能力和独立思考的能力,巩固理论知识,加深对课堂内容的理解。
5.培养同学们对单片机的兴趣,通过课程设计调动同学们的积极性,使更多的人将来能在单片机领域有所建树。
第2章设计要求及总体思路2.1设计要求1、密码的设定,此密码是固定在程序存储器ROM中,假设预设的密“12345”共5位密码。
2、密码的输入:采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键。
在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。
然后进入密码的判断比较处理状态并给出相应的处理过程。
3、按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。
2.2 总体思路系统总体设计方案框图如下:图2-1一般而言,要实现相同的功能,硬件复杂的系统其软件一般较简单,而软件复杂的系统其硬件一般相对简单,本着经济性的原则,我们应该尽可能少用硬件,根据这个设计理念和设计要求,本单片机系统的设计思路如下:1)电子密码锁所用的数据的存储和运算用单片机来完。
2)因为没有专用的输入键盘,所以按键输入用计算器输入键盘代替。
按键密码从P3口输入。
3)用六位显示器显示五位密码,显示器选择动态扫描,用P0口作段控,用P2口作位控。
4)开锁信号从P1.1口输出,报警信号从P1.0口输出。
5) 按键分为功能键和数字键,具体如表2-1。
6)输入五位密码后按确认键,系统验证密码是否正确,若密码正确,则产生开锁信号,若接连三次输入错误密码,则产生报警信号。
7) 当错误输入某位密码时,可按删除键进行删除,也可按清零键对所输入的数进行整体清除。
密码锁-课程设计
《单片机原理与应用》课程设计报告基于单片机的密码锁的设计院系:专业(班级):姓名:学号:指导教师:职称:完成日期:《单片机原理与应用》课程设计任务书院(系):专业:指导教师:目录1 课题设计 (1)1.1 课题背景 (1)1.2 课题设计目标 (1)2系统方案论证 (2)2.1 主控部分的选择 (2)2.2 密码输入方式的选择 (2)3 系统总体设计和主要芯片介绍 (3)3.1 系统总体设计 (3)3.2 主要芯片介绍 (3)4 系统硬件构成 (10)4.1 系统整体电路图 (10)4.2 单片机最小系统原理图 (10)4.3 电源输入部分 (11)4.4 键盘输入部分 (12)4.5 密码存储部分 (12)4.6 显示部分 (13)4.7 报警部分 (14)5软件的设计与实现 (14)5.1 设计原理 (15)5.2 主程序流程图 (15)6 结论 (16)[参考文献] (17)7 附录 (18)1课题设计随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
1.1 课题背景由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
1.2 课题设计目标本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改;4.断电存储功能;5. 完成实际实物的焊接;2系统方案论证系统从主控部分和密码输入方式两方面进行论证2.1 主控部分的选择方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。
单片机密码锁课程设计
目录1 引言 (1)2主要元器件介绍 (2)2.1主控芯片AT89S51 (2)2.1.1 AT89S51性能简介 (2)2.1.2 AT89S51引脚功能说明 (3)2.2 LCD1602显示器 (5)2.2.1接口信号说明 (5)2.2.2主要技术参数 (5)2.2.3 1602基本操作步骤 (5)3系统硬件 (7)3.1设计原理 (7)3.2电路总体构成 (7)3.3键盘输入部分 (8)3.4 LCD1602显示 (8)4系统软件设计 (10)4.1主程序模块 (10)4.2按键功能模块 (11)4.3修改密码模块 (13)4.4开锁模块 (14)参考文献 (16)附录 (17)1引言锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。
由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。
随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。
单片机课程设计——数字密码锁
课程设计课程名称:单片机原理与应用课题名称:数字密码锁设计所在学院名称:湖南大学电气与信息工程学院目录一、前言..................................... - 3 -二、总体方案设计.............................. - 3 -2.1方案论证与比较 ................................................................. - 3 -2.2方案选择............................................................................. - 4 -三、单元模块设计.............................. - 4 -3.1硬件支持............................................................................. - 4 -3.2功能单元模块设计.............................................................. - 4 -3.2.1 开锁机构 .................................................................. - 4 -3.2.2 矩阵键盘设计电路 ................................................... - 5 -3.2.3 声音提示电路设计 ................................................... - 6 -3.2.4 显示模块设计........................................................... - 7 -四、程序设计与系统仿真.......................... - 8 -4.1 模块介绍............................................................................ - 8 -4.1.1 主程序模块............................................................. - 10 -4.1.2 密码比较判断模块 ................................................. - 10 -4.1.3 键盘扫描模块......................................................... - 10 -4.1.4 修改密码模块......................................................... - 11 -五、系统功能 .................................. - 13 - 六.设计总结 .................................. - 13 - 七、附录:源程序............................... - 13 -一、 前言随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
基于AT89S51单片机的电子密码锁的课程设计
基于单片机的电子密码锁设计学生姓名学号专业班级系别指导教师职称课题名称基于单片机的电子密码锁设计1课题设计的目的和意义1.1课题设计的目的通过完成基于单片机的电子密码锁系统设计,将机电一体化专业相关的理论融会贯通,掌握单片机控制系统的软件、硬件设计方法和基本的调试步骤等,学习系统工程设计方法,学会分析、解决简单的工程实际问题,为今后从事专业相关的设计、研发等方方面的工作打下一定基础。
1.2课题设计的意义随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。
电子密码锁是由电子电路控制锁体的新型锁具,它采用触摸键盘方式输入开锁密码,操作方便。
触摸式电子锁的输入部分采用触摸开关(键盘输入),其优势在于传统的机械开关之出在于其保密性高,使用灵活性好,安全系数高,无活动零件,不会磨损,寿命长等受到了广大用户的亲呢。
出于安全、方便等方面的需要许多电子密码锁已相继问世。
但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。
而且卡片式IC卡还有易丢失等特点,加上其成本一般较高,一定程度上限制了这类产品的普及和推广。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。
针对平常锁具给人们带来的不便,若使用机械式钥匙开锁,则结构简单,安全性不好。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生,电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
它的出现为人们的生活带来了很大的方便,有很广阔的市场前景,相信随着社会的进一步发展,它的方便,安全,实用,小巧,精致的特点会越来越得到人们的喜爱,是人们居家旅行必备之品。
单片机课程设计——可改密码的电子密码锁设计
百度文库- 让每个人平等地提升自我目录课程设计(论文)任务书 (1)可改密码电子密码锁设计报告 (1)第一章概述 (2)第二章系统整体方案设计 (2)第三章硬件电路设计 (3)键盘电路设计 (3)显示电路 (4)开锁电路 (6)报警电路 (6)密码掉电保留电路 (6)第四章软件设计 (8)软件设计思路 (8)程序设计流程图 (9)程序设计 (10)第五章系统调试 (10)3、开锁状态: (10)第六章心得体会 (12)致谢 (13)参考文献: (13)课程设计(论文)任务书设计题目:可改密码电子密码锁设计任务:以89C52单片机为核心,制作一个能够更改6位密码的模拟电子密码锁。
设计要求:密码位数为6位。
显示利用1602液晶显示。
更改的密码支持断电保留。
支持持续输入三次错误密码报警。
密码输入状态动态显示。
别离利用两个发光二极管表示输入正确和错误密码。
可改密码电子密码锁设计报告摘要本文介绍基于MCS-51单片机的可更改密码的电子密码锁设计,并支持掉电保留密码,程序利用了C语言编写。
关键词单片机电子密码锁改变Abstract:This article describes the MCS-51 microcontroller based on the password change the design of electronic locks, and to support power-down save the password, the program uses the C language.Key word: MCU Electronic code lock Change第一章概述密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
此刻应用较广的数字密码锁是以芯片为核心,通过编程来实现的。
单片机密码课程设计
单片机密码课程设计一、课程目标知识目标:1. 理解单片机的基本原理和功能,掌握密码锁的基本工作原理;2. 学会使用C语言或汇编语言进行单片机编程,实现对密码锁的控制;3. 掌握单片机密码锁系统的硬件连接和调试方法。
技能目标:1. 能够运用所学的单片机知识,设计并实现一个简单的密码锁系统;2. 培养学生动手实践能力,学会使用相关工具和仪器进行硬件调试;3. 提高学生的问题分析和解决能力,能够在遇到问题时进行有效排查和修改。
情感态度价值观目标:1. 培养学生对单片机及嵌入式系统的兴趣,激发学生学习主动性和创新精神;2. 培养学生的团队协作意识,学会与他人共同分析和解决问题;3. 增强学生的自信心,让他们在实际操作中体验成功,形成积极的学习态度。
分析课程性质、学生特点和教学要求,本课程旨在通过单片机密码锁的设计与实现,使学生掌握单片机基本知识和技能,培养实际操作能力,提高解决实际问题的能力。
课程目标具体明确,可衡量,便于后续教学设计和评估。
通过本课程的学习,学生将能够独立完成一个简单的单片机密码锁项目,为今后的学习和工作打下坚实基础。
二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理和性能特点,涉及课本第二章内容。
- 单片机内部结构- 工作原理和指令系统- 性能参数与选型2. 单片机编程语言:学习C语言或汇编语言编程,针对单片机密码锁项目进行编程实践,涉及课本第三章内容。
- 编程语法基础- 单片机编程技巧- 编程实例解析3. 硬件设计:介绍单片机密码锁硬件设计,包括原理图绘制、元器件选型、电路板设计等,涉及课本第四章内容。
- 原理图绘制方法- 元器件选型原则- 电路板设计技巧4. 系统编程与调试:学习单片机密码锁系统的编程与调试方法,包括程序下载、硬件调试等,涉及课本第五章内容。
- 程序下载与烧录- 硬件调试方法- 故障排查与解决5. 项目实践:根据教学进度,安排学生进行单片机密码锁项目实践,将所学知识应用于实际项目中,巩固所学内容。
单片机课程设计-电子密码锁-实验报告-
单片机课程设计电子密码锁实验报告学院:电子信息工程学院班级:自***姓名:***学号:******指导教师:***单片机课程设计电子密码锁实验报告(一)实验目的1、了解电子密码锁工作原理和八段LED数码管显示原理。
2、掌握LED数码管显示器与单片机接口电路设计方法。
3、掌握实现密码锁功能的编程方法。
(二)设计实现功能(1)由程序设定初始密码,密码输入正确时锁打开,指示灯亮,发出“叮咚”的声音;密码输入不正确时,指示灯闪亮四次,发出“嘀嘀嘀滴”报警声。
(2)具有保护密码的功能,输入密码在数码管上显示可改为“88888”的方式,防止别人偷窥密码。
(3)具有修改密码的功能,密码输入错误可按DEL键进行删除。
(4)具有防止多次试探密码的电子密码锁并加报警功能,密码输入错误超过三次,将一直发出“滴滴滴滴。
”报警声。
(5)具有设定新密码的功能,输入密码后按CHG键,密码将被重新设定。
(三)整体电路设计思路核心用单片机AT89S52来实现此实验的要求。
用4*4键盘来输入密码。
每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接V CC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
用8个7段数码管来显示密码。
数码管的显示用扫描的方式,利用动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
单片机电子密码锁课程设计
单片机电子密码锁课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握电子密码锁的基本工作原理。
2. 使学生掌握电子密码锁设计中涉及的编程知识,如C语言基础、寄存器操作等。
3. 帮助学生了解电子密码锁电路的组成,熟悉相关电子元器件的使用。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的单片机电子密码锁的能力。
2. 提高学生动手实践能力,学会使用编程软件、烧录器和相关调试工具。
3. 培养学生团队协作和问题解决能力,学会分析电子密码锁故障并找出解决办法。
情感态度价值观目标:1. 激发学生对电子制作的兴趣,培养创新意识和动手能力。
2. 培养学生严谨的科学态度,注重实验数据和实验结果的准确性。
3. 引导学生关注单片机技术在日常生活中的应用,提高对科技的认识和热爱。
本课程针对高年级学生,他们在之前的学习中已经具备了一定的电子和编程基础。
因此,课程设计将注重实践操作,以项目为导向,让学生在动手实践中巩固知识,提高技能。
通过本课程的学习,学生将能够独立设计并实现一个具有实用价值的单片机电子密码锁,提升解决实际问题的能力。
二、教学内容1. 单片机基础原理:回顾单片机的组成、工作原理,重点讲解51单片机的内部结构、时钟电路和复位电路。
教材章节:第三章《单片机原理与接口技术》2. C语言编程基础:介绍C语言在单片机编程中的应用,讲解数据类型、运算符、控制语句等基本语法。
教材章节:第四章《单片机C语言编程》3. 电子密码锁原理:讲解电子密码锁的基本工作原理,分析锁体的电路组成和功能。
教材章节:第七章《单片机应用实例》4. 硬件设计:学习并设计电子密码锁的硬件电路,包括键盘输入、显示模块、锁驱动电路等。
教材章节:第五章《单片机接口技术》5. 软件设计:编写电子密码锁的控制程序,实现密码输入、校验、开锁等功能。
教材章节:第四章《单片机C语言编程》6. 系统调试与优化:学习使用调试工具,对电子密码锁系统进行调试和优化。
单片机课程设计-密码锁
单片机课程设计-密码锁11 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
1.2 总体方案介绍及工作原理说明(1) 原始密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“888888”共6位密码。
(2)密码的输入: 采用按键来完成密码的输入,输入时密码处于显示保密状态,输入六位密码后,自动结束输入,并判断其正确性(3)密码若输入错误,显示输入错误提示信息,密码输入正确后,可以用键盘任意输入数字,若按下第八个按键,则进入修改密码(4)密码修改:可以任意输入“1-7”中的六位数字作为密码,密码输入时处于保密显示状态,六位密码输入结束确认后显示P.。
电源模块报警装置AT89S52复位和振荡下载口单片机电路数码管显独立式键盘示模块图1 设计总框图12 密码锁硬件系统的设计2.1 密码锁硬件系统各模块功能简要介绍此次课程设计是基于单片机控制的电子密码锁,结合主要设计条件,本设计由单片机系统、独立式键盘、LED显示和报警系统组成,系统能完成开锁、错误报警、密码修改功能等功能,设计硬件系统如下:(1)单片机系统:此次课题采用一种是用以AT89S52为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。
此次课题用单片机P1口与键盘相连,做输入口,P0口与显示器段控相连,输入段控码,P2口输入位控码。
(2)独立式键盘接口电路:此次课程设计采用独立式键盘,与P1口相连,键按下则会使该端口变成低电平,单片机读P1口,通过对P1口数据的判断来确定哪一个键按下。
(3)数码管显示模块:此次课程设计采用的是共阴数码管,P0口段控,P2口送位控,八个数码管共用八根段控,由位控决定在哪一位显示。
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. 第五周:总结与展示,课程评价。
单片机课程设计密码锁
单片机课程设计密码锁一、课程目标知识目标:1. 理解单片机的基础知识,掌握其基本原理和编程方法;2. 学习并掌握密码锁的原理与设计,能够运用单片机实现密码锁功能;3. 了解并掌握相关传感器和执行器的使用,实现密码锁的输入和输出控制。
技能目标:1. 能够运用所学知识,设计并编写出实现密码锁功能的单片机程序;2. 掌握使用相关调试工具,对单片机程序进行调试和优化;3. 提高学生的动手能力,培养实际操作中解决问题的能力。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养创新意识和实践精神;2. 培养学生团队协作精神,学会与他人共同解决问题;3. 引导学生关注科技发展,了解单片机在现实生活中的应用,增强社会责任感。
课程性质:本课程为实践性较强的课程,旨在通过单片机实现密码锁的设计与制作,让学生在动手实践中掌握单片机知识。
学生特点:学生处于高年级阶段,已具备一定的单片机基础,对实际应用有较高的兴趣。
教学要求:结合学生特点和课程性质,注重实践操作,强调理论知识与实际应用相结合。
通过课程学习,使学生能够独立完成一个具有实际应用价值的单片机项目。
在教学过程中,关注学生的学习进展,及时调整教学策略,确保课程目标的实现。
将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 单片机基础知识回顾:C语言编程基础,单片机工作原理,I/O口编程。
教材章节:第一章单片机基础。
2. 密码锁原理与设计:- 密码锁的组成和工作原理;- 矩阵键盘原理与编程;- 密码比对算法;教材章节:第三章输入输出接口,第六章矩阵键盘。
3. 单片机与外部设备接口:- 传感器与执行器的应用;- 单片机与继电器、电磁锁等执行器的连接;教材章节:第四章传感器与执行器,第五章单片机与外部设备接口。
4. 程序设计与调试:- 程序结构设计;- 程序编写与调试;- 优化程序性能;教材章节:第七章程序设计与调试。
5. 实践操作:- 搭建电路,连接硬件;- 编写程序,实现密码锁功能;- 调试与优化;教材章节:实践操作部分。
单片机密码锁课程设计
单片机密码锁课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理,掌握密码锁设计的硬件组成和工作原理。
2. 学生能够运用C语言编写简单的程序,实现密码锁的功能。
3. 学生了解密码锁的安全性,掌握基本的安全防护措施。
技能目标:1. 学生能够独立完成单片机密码锁的硬件连接,具备实际操作能力。
2. 学生能够运用所学知识,编写和调试程序,实现密码锁的开锁和关锁功能。
3. 学生能够通过小组合作,分析问题,解决问题,提高团队协作能力。
情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新精神。
2. 学生树立安全意识,认识到技术在实际应用中的重要性。
3. 学生在团队协作中,学会尊重他人,提高沟通表达能力。
课程性质:本课程为实践性课程,结合理论知识,培养学生的动手操作能力和实际应用能力。
学生特点:学生处于初中阶段,对新鲜事物充满好奇,具备一定的逻辑思维能力,但实践经验不足。
教学要求:教师需注重理论与实践相结合,引导学生主动探究,关注学生的个体差异,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
1. 理论知识:- 单片机原理与结构:介绍单片机的基本组成、工作原理及功能。
- C语言基础:讲解C语言的基本语法、数据类型、运算符、控制结构等。
- 密码锁原理:分析密码锁的硬件组成、工作原理及安全性。
2. 实践操作:- 硬件连接:指导学生完成单片机、键盘、显示模块等硬件的连接。
- 程序编写:教授学生编写密码锁程序,实现开锁、关锁等功能。
- 调试与优化:引导学生分析程序运行过程中出现的问题,并进行调试和优化。
3. 教学大纲:- 第一周:单片机原理与结构学习,C语言基础学习。
- 第二周:密码锁原理学习,讨论密码锁的安全性。
- 第三周:硬件连接,小组合作进行程序编写。
- 第四周:程序调试与优化,总结与反思。
4. 教材章节:- 单片机原理与结构:教材第1章。
- C语言基础:教材第2章。
电子密码锁单片机课程设计
课程设计任务书课程名称单片机原理及应用课题基于单片机的密码锁设计专业班级测控技术与仪器0601班任务书下达日期 2014 年 2 月 24 日任务完成日期2014 年 3月 7 日第1章系统概述1.1系统功能 (1)1.2设计内容及要求 (1)第2章系统方案设计2.1总体方案 (2)2.2系统组成 (2)第3章硬件设计3.1按键电路设计 (9)3.2指示灯及报警蜂鸣器的电路设计 (9)3.3显示电路设计 (10)第4章软件设计4.1主程序设计 (11)4.2按键识别与编码设计 (11)4.3显示程序设计 (13)4.4密码修改程序设计 (15)第5章系统调试5.1软件模拟调试 (16)5.2硬件接线及调试 (17)第6章总结6.1课程设计总结 (18).附:A、硬件图B、主程序流程图C、程序清单第1章系统概述1.1系统功能本次设计使用ATMEL公司的AT 80C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能:(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能修改密码。
(3)状态指示、报警、锁定键盘功能。
密码输入正确时有GOOD提示信息、密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘,并且相应的有指示灯指明状态。
电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED提示灯,报警蜂鸣器等。
1.2设计内容及要求(1)密码的设定,此密码是固定在程序存储器ROM中,假设预设的密为“12345”共5位密码。
(2)密码的输入:采用两个按键来完成密码的输入,其中一个按键为功能键另一个按键为数字键。
在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。
然后进入密码的判断比较处理状态并给出相应的处理过程。
(3)按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。
单片机电子密码锁课程设计
单片机技术及应用综合训练设计报告前言随着人们生活水平的提高;如何实现家庭防盗这一问题也变得尤为突出..在科学技术不断发展的今天;电子密码防盗锁作为防盗卫士的作用显得日趋重要..本文从经济实用的角度出发;系统由STC89C52与低功耗CMOS型E2PROMAT24C02作为主控芯片与数据存储器单元;结合外围的键盘输入、LCD显示、报警、开锁等电路模块..它能完成以下功能:正确输入密码前提下;开锁;错误输入密码情况下;报警;密码可以根据用户需要更改..用C语言编写的主控芯片控制程序与EEPROMAT24C02读写程序相结合;并用Keil软件进行编译;设计了一款可以多次更改密码;具有报警功能的电子密码控制系统..本密码锁具有设计方法合理;简单易行;成本低;安全实用;保密性强;灵活性高等特点;具有一定的推广价值..关键词:电子密码锁、报警、液晶显示目录一、选题要求 (1)二、硬件电路设计 (1)2.151单片机 (2)2.2键盘电路 (2)2.3液晶显示电路 (2)2.4警报电路 (3)2.5密码储存电路 (3)2.6晶振、复位及关锁 (3)三、软件设计 (4)四、软硬件调试结果 (9)4.1电路总原理图 (9)4.2调试结果 (10)五、总结 (11)一、选题要求本文从经济实用的角度出发;设计采用单片机为主控芯片;结合外围电路;组成电子密码控制系统;密码锁共6位密码;每位的取值范围为0~9;用户可以自行设定和修改密码..用户想要打开锁;必先通过提供的键盘输入正确的密码才可以;密码输入错误有提示;为了提高安全性;当密码输入错误三次将报警;期间输入密码无效;以防窃贼多次试探密码..6位密码同时输入正确;锁才能打开..锁内有备用电池;只有内部上电复位时才能设置或修改密码;因此;仅在门外按键是不能修改或设置密码的;因此保密性强、灵活性高..其特点如下:1保密性好;编码量多;远远大于弹子锁..随机开锁成功率几乎为零..2密码可变;用户可以随时更改密码;防止密码被盗;同时也可以避免因人员的更替而使锁的密级下降..3误码输入保护;当输入密码多次错误时;报警系统自动启动..4无活动零件;不会磨损;寿命长..5使用灵活性好;不像机械锁必须佩带钥匙才能开锁..6电子密码锁操作简单易行;一学即会..二、硬件电路设计下面是整个设计的流程图:2.151单片机这次课程设计采用的是5系列单片机AT89C52..其外部封装如下图所示:AT89C52单片机有4组8位的可编程I/O口;分别位P0、P1、P2、P3口;每个口有8位8根引脚;共32根8..P0口Pin39~Pin32:8位双向I/O口线;名称为P0.0~P0.7P1口Pin1~Pin8:8位准双向I/O口线;名称为P1.0~P1.7P2口Pin21~Pin28:8位准双向I/O口线;名称为P2.0~P2.7P3口Pin10~Pin17:8位准双向I/O口线;名称为P3.0~P3.72.2键盘电路本次试验采用的是行列键盘;C语言程序中有相应的驱动程序;其硬件电路如下所示;下右对应的为各个按键所对应的数字及功能..2.3液晶显示电路实验中采用的是LM016L液晶显示;其数据端口采集数据通过单片机的P0口;接法如下图所示..不同情况下会有不同的显示;显示内容包括:Welcome、HelloBoss、Wrong、OK等内容..2.4警报电路下图是警报电路连接图;警报触发为:连续三次输错密码;警报触发后会有一个时间延迟;延迟时间内任何操作都是无效的;过后通过关锁按钮可解除..2.5密码储存电路实验中考虑到实用性方面时;就想到了密码储存及修改的问题;于是采用了FM24C02F作为面膜储存模块;电路连接如下所示:2.6晶振、复位及关锁晶振、复位及关锁电路如下所示作图所示按钮为复位按钮:三、软件设计C语言源程序:include<reg52.h> include<stdio.h> include<intrins.h> defineCHECK_BUSY defineDataPortP0 defineKeyPortP1 sbitRS=P2^4;//液晶显示的定义端口sbitRW=P2^5;sbitEN=P2^6;sbitscl=P3^0;//24c02端口定义sbitsda=P3^1;sbitbaojing=P2^1;//报警器sbitjdq=P2^0;//继电器sbitjb=P2^3;//警报灯sbitclose=P2^2;unsignedcharold1;old2;old3;old4;o ld5;old6;//原始密码000000 unsignedcharnew1;new2;new3;new4;n ew5;new6;//代表新密码voiddelay1unsignedintm{unsignedintn;forn=0;n<m;n++;}voiddelayunsignedintm{unsignedinta;unsignedcharb;fora=0;a<m;a++{forb=0;b<125;b++;}}voidDelayUs2xunsignedchart{while--t;}voidDelayMsunsignedchart{whilet--{DelayUs2x256;DelayUs2x256;}}voidbaojingqi{baojing=0;DelayUs2x256;ifbaojing==0{baojing=0;DelayUs2x256;}}bitLCD_Check_Busyvoid//判忙函数{ifdefCHECK_BUSYDataPort=0xFF;RS=0;RW=1;EN=0;_nop_;EN=1;returnbitDataPort&0x80;elsereturn0;endif}voidLCD_Write_Comunsignedcharcom/ /写入命令函数{//whileLCD_Check_Busy;//忙则等待DelayMs5;RS=0;RW=0;EN=1;DataPort=com;_nop_;EN=0;}voidLCD_Write_DataunsignedcharDat a//写入数据函数{//whileLCD_Check_Busy;//忙则等待DelayMs5;RS=1;RW=0;EN=1;DataPort=Data;_nop_;EN=0;}voidLCD_Clearvoid//清屏函数{LCD_Write_Com0x01;DelayMs5;}voidLCD_Write_Charunsignedcharx;u nsignedchary;unsignedcharData//写入字符函数{ify==0{LCD_Write_Com0x80+x;}else{LCD_Write_Com0xC0+x;}LCD_Write_DataData;}voidLCD_Write_Stringunsignedcharx ;unsignedchary;unsignedchars//写入字符串函数{whiles{LCD_Write_Charx;y;s;s++;x++;}}voidLCD_Initvoid //液晶显示的初始化函数{LCD_Write_Com0x38;//显示模式设置DelayMs5;LCD_Write_Com0x38;DelayMs5;LCD_Write_Com0x38;DelayMs5;LCD_Write_Com0x38;LCD_Write_Com0x08;//显示关闭LCD_Write_Com0x01;//显示清屏LCD_Write_Com0x06;//显示光标移动设置DelayMs5; LCD_Write_Com0x0C;//显示开及光标设置}unsignedcharKeyScanvoid//键盘扫描函数;使用行列反转扫描法{unsignedcharcord_h;cord_l;//行列值中间变量KeyPort=0x0f;//行线输出全为0 cord_h=KeyPort&0x0f;//读入列线值ifcord_h=0x0f//先检测有无按键按下{DelayMs10;//去抖ifKeyPort&0x0f=0x0f{cord_h=KeyPort&0x0f;//读入列线值KeyPort=cord_h|0xf0;//输出当前列线值cord_l=KeyPort&0xf0;//读入行线值whileKeyPort&0xf0=0xf0;//等待松开并输出returncord_h+cord_l;//键盘最后组合码值}}return0xff;//返回该值}unsignedcharKeyProvoid{switchKeyScan{case0x7e:return0;break;//0按下相应的键显示相对应的码值case0x7d:return1;break;//1case0x7b:return2;break;//2case0x77:return3;break;//3case0xbe:return4;break;//4case0xbd:return5;break;//5case0xbb:return6;break;//6case0xb7:return7;break;//7case0xde:return8;break;//8 case0xdd:return9;break;//9 case0xdb:return10;break;//10 case0xd7:return11;break;//11 case0xee:return12;break;//12 case0xed:return13;break;//13 case0xeb:return14;break;//14 case0xe7:return15;break;//15 default:return0xff;break;}}voidinit//24c02初始化子程序{scl=1;_nop_;_nop_;sda=1;_nop_;_nop_;}voidrespons //应答{unsignedchari;scl=1;_nop_;_nop_;whilesda==1&&i<250i++;scl=0;_nop_;_nop_;}voidclock//I2C总线时钟{unsignedchari=0;scl=1;_nop_;_nop_;whilesda==1&&i<255i++;scl=0;_nop_;_nop_;} voidstart//启动I2C总线{sda=1;_nop_;_nop_;scl=1;_nop_;_nop_;sda=0;_nop_;_nop_;scl=0;_nop_;_nop_;}voidstop//停止I2C总线{sda=0;_nop_;_nop_;scl=1;_nop_;_nop_;sda=1;_nop_;_nop_;}voidwritebyteunsignedchara//写一个字节{unsignedcharb;tem;tem=a;forb=0;b<8;b++{tem=tem<<1;scl=0;_nop_;_nop_;sda=CY; //temp左移时;移出的值放入了CY中_nop_;_nop_;scl=1; //待sda线上的数据稳定后;将scl拉高_nop_;_nop_;}scl=0;_nop_;_nop_;sda=1;_nop_;nop_;}unsignedcharreadbyte//读一个字节{unsignedchari;j;k=0;scl=0;_nop_;_nop_;sda=1;fori=0;i<8;i++{_nop_;_nop_;scl=1;_nop_;_nop_;ifsda==1j=1;elsej=0;k=k<<1|j;scl=0;}_nop_;_nop_;returnk;}unsignedcharread24c02unsignedchar address//从24c02的地址address中读取一个字节数据{unsignedchardate;start;writebyte0xa0;clock;writebyteaddress;clock;start;writebyte0xa1; clock;date=readbyte;stop;delay1100;returndate;}voidwrite24c02unsignedcharaddress ;unsignedcharinfo//向24c02的address地址中写入一字节数据info {start;writebyte0xa0;clock;writebyteaddress;clock;writebyteinfo;clock;stop;delay15000;//这个延时一定要足够长;否则会出错..因为24c02在从sda上取得数据后;还需要一定时间的烧录过程..}main{unsignedcharnum;i;bj;c=0; unsignedchartemp6;bitFlag;init;//初始化24C02LCD_Init;//初始化液晶屏DelayMs10;//延时用于稳定;可以去掉LCD_Clear;//清屏LCD_Write_String0;0;"welcome";//写入第一行信息old1=read24c02110;old2=read24c02111;old3=read24c02112;old4=read24c02113;old5=read24c02114;old6=read24c02115;while1//主循环{num=KeyPro;//扫描键盘ifnum=0xff//如果扫描是按键有效值则进行处理{ifi==0//输入是第一个字符的时候需要把改行清空;方便观看密码LCD_Write_String0;1;"";//清除该行ifi<6//密码是6位;大于6位时不再输入按键值{tempi=num;LCD_Write_Chari;1;'';}i++;//输入数值累加ifnum==11 //重试键{i=0;LCD_Write_String0;1;"";}}ifnum==12{i=0;LCD_Write_String0;1;"";ifbj==0{whilei<=6{num=KeyPro;//扫描键盘ifnum=0xff//如果扫描是按键有效值则进行处理{ifi==0//输入是第一个字符的时候需要把改行清空;方便观看密码LCD_Write_String0;1;"";//清除该行ifi<6//密码是6位;大于6位时不再输入按键值{tempi=num; LCD_Write_Chari;1;'';}i++;//输入数值累加ifnum==11 //重试键{i=0;LCD_Write_String0;1;"";}}ifnum==10{num=0;new1=temp0;new2=temp1;new3=temp2; new4=temp3;new5=temp4;new6=temp5; old1=new1;old2=new2;old3=new3; old4=new4;old5=new5;old6=new6;//新密码代替旧密码write24c02110;old1;write24c02111;old2;write24c02112;old3;write24c02113;old4;write24c02114;old5;write24c02115;old6;LCD_Write_String0;1;"ok";bj=1;DelayMs220;DelayMs220;DelayMs220;}ifclose==0{bj=1;i=0;LCD_Write_String0;1;"";}}}i=0;}ifnum==10 //数字10为确认键{new1=temp0;new2=temp1;new3=temp2;new4=temp3;new5=temp4;new6=temp5;ifi==7//6位后的按键输入数值;相当于确认按键任意按键即可{i=0;//计数器复位Flag=1;//先把比较位置1old1=read24c02110;old2=read24c02111;old3=read24c02112;old4=read24c02113;old5=read24c02114;old6=read24c02115;Flag=Flag&new1==old1&new2==old2&n ew3==old3&new4==old4&new5==old5&n ew6==old6;//比较输入值和已有密码ifFlag//如果比较全部相同;标志位置1{i=0;LCD_Write_String0;1;"HelloBoss";/ /密码正确显示的信息jdq=0;bj=0;delay3000;jdq=1;LCD_Write_String0;1;"";}else{i=0;c++;LCD_Write_String0;1;"error";//密码错误;提示重新输入whilec==3{baojingqi;jb=0;DelayMs255;DelayMs255; baojing=1;i=0;jb=1;LCD_Write_Stri ng0;1;"";ifclose==0{i=0;bj=1;jb=1;c=0;baojing=1;LCD_W rite_String0;1;"";}}}}else//当密码不是6位数字时按下确认键也算输错密码一次{i=0;LCD_Write_String0;1;"error"; c++;whilec==3{baojingqi;jb=0;DelayMs255;DelayMs255;ifclose==0{i=0;jb=1;bj=1;c=0;baojing=1;LCD_W rite_String0;1;"";}}}}ifclose==0{i=0;bj=1;jb=1;c=0;jdq=1;baojing=1;LCD_Write_String0;1;"";jdq=1;}}四、软硬件调试结果4.1电路总原理图电路总原理图如下所示:4.2调试结果各种情况下的的调试结果如下个图所示:依次为开机、开锁、成功修改密码、密码错误..五、总结在这次实验中;用到了单片机和C语言的知识;这两门知识都是非常具有实用性的..在这次实验中再次加深了对此的认识..首先;在一开始输程序的时候;在程序仿真过程中出现了不能打开头文件的现象;后来经老师知道后知道了头文件的具体作用和使用方式..这些都是以前所没能掌握的..在后面的硬件电路调试过程中也遇到了很多问题;经过不懈努力之后都一一解决了..本次试验为期一周;不得不说;这次试验让我学到了好多东西..也感谢老师的辛勤指导。
基于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后蜂鸣器停止报警,新密码失效,恢复初始密码使用。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计一、电子密码锁的工作原理电子密码锁主要由输入模块、控制模块、存储模块和执行模块组成。
用户通过输入模块(如键盘)输入密码,控制模块(单片机)对输入的密码进行处理和判断,并与存储模块中预先设定的密码进行比对。
如果输入密码正确,控制模块将向执行模块发送开锁指令,实现开锁;如果输入密码错误,则执行相应的错误处理操作,如报警、锁定等。
二、硬件设计(一)单片机的选择在本设计中,选用了_____型号的单片机。
该单片机具有性能稳定、功耗低、接口丰富等优点,能够满足电子密码锁的控制需求。
(二)输入模块输入模块采用了矩阵键盘,通过行列扫描的方式获取用户输入的密码。
矩阵键盘具有按键数量多、占用端口少的特点,能够有效节省单片机的资源。
(三)存储模块为了存储预设的密码,选用了_____型号的EEPROM芯片。
EEPROM具有掉电不丢失数据的特性,能够保证密码的安全性和可靠性。
(四)显示模块为了给用户提供反馈信息,使用了_____型号的液晶显示屏。
可以显示开锁状态、输入错误提示等信息。
(五)执行模块执行模块包括电磁锁和报警装置。
当输入密码正确时,单片机控制电磁锁打开;当输入密码错误次数超过设定值时,启动报警装置。
三、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、EEPROM读取预设密码等。
然后进入密码输入等待状态,当检测到有按键输入时,进行密码处理和判断,并根据判断结果执行相应的操作。
(二)密码输入处理在密码输入过程中,对输入的按键进行去抖处理,防止误判。
同时,对输入的密码进行加密处理,提高密码的安全性。
(三)密码比对将输入的密码与存储在EEPROM中的预设密码进行比对。
比对过程中,采用逐位比较的方式,确保密码的准确性。
(四)错误处理当输入密码错误时,记录错误次数。
如果错误次数超过设定值,则启动报警装置,并锁定键盘一段时间,防止暴力破解。
四、系统调试与测试(一)硬件调试首先检查电路连接是否正确,有无短路、断路等情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 绪论随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性和方便性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点随着人们对安全的重视和科技的发展,对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
具有报警功能的电子密码锁保密性高,使用灵活性好,安全系数高,密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有推广价值。
电子密码锁采取电子电路控制,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务。
本次设计使用AT89S52单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。
2 设计任务、功能要求说明及总体方案介绍2.1 设计目的与任务本设计采用AT89S52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD 1602A等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统。
2.2 设计内容及要求(1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。
(2)其密码为方8位十进制代码(代码自设定)。
(3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。
当开锁密码与存储密码不一致时,电路则报警并实现自锁。
(报警动作为响1分钟,停10秒)(4)选择电路方案,完成对确定方案电路的设计。
计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。
安装调试设计电路,查阅至少5篇参考文献。
按《湖南工学院课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
2.3 设计总体方案及工作原理说明采用以单片机AT89S52为核心的控制方案,总体框图见图1。
单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用。
一般来说在选择单片机时下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O 端口,以及控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接加以3×4矩阵键盘、LED、蜂鸣器等。
矩阵键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入。
系统开始显示“INPUT PASSWORD:”,提示输入密码;当密码输入完毕按下Enter键时,若输入密码与设定的密码相同,即密码正确,液晶屏显示为“Mission Success!”提示锁打开,同时LED绿灯亮;若密码不正确,LED显示电路显示提示“Forgot Password?”,LED红灯亮,发出警报声同时锁定键盘,不能进行任何操作。
投在输入过程中发现输入错误的数字,可通过重新输入AC键清除所有数字。
图1 系统设计框图如图1所示,系统主要由电源(由三角电源口、六角开关、红色LED灯、电阻组成),3×4键盘(键盘分别为0、1、2、3、4、5、6、7、8、9、重新输入、确认输入),复位电路,LED灯(密码输入错误时亮红灯,密码输入正确时亮绿灯),蜂鸣器(输入密码时,输入一位响一次,密码输入错误时有报警功能),以及液晶显示电路(显示功能)组成。
3 系统硬件设计3.1 硬件系统各模块功能简要介绍3.1.1 复位以及振荡电路如图2所示,即为AT89S52复位和振荡电路结构。
图2 系统的复位电路时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。
本设计晶振选择频率为12MHZ,电容选择33pF。
经计算得单片机工作胡机器周期为:12×(1÷12M)=1us。
3.1.2 3×4矩阵键盘如图3所示,本系统采用3×4矩阵键盘,12个按键分为输入数字键:0、1、2、3、4、5、6、7、8、9;功能键:确认输入Enter、重新输入AC。
键盘与单片机相连接,其连接方式为前三行分别P1.0—1.3连接;后四行分别与PP1.5—1.8连接分别控制;图3 系统的键盘电路3.1.3 报警蜂鸣器报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P35引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警其电路如图4所示:图4 系统的报警电路3.1.4 液晶显示电路为了使该电子锁能人性化的显示输入密码的状态以及密码输入正确与否,添加了液晶显示放弃了数码管显示。
本次设计使用的是LCD 1602A液晶显示器,采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个1K的电阻调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光电源正极第16脚:背光电源负极LCD 1602A自带英文字库,各引脚分别接入P2.0口,其接入电路如图5所示:图5 系统的液晶显示电路3.2 电路原理图、PCB图、元器件布局图设计电路原理图、PCB图、元器件布局图分别见附录A、附录B、附录C。
3.3 硬件实物图实物图见附录D。
3.4 元器件清单元器件清单见附录E。
4 软件系统的设计4.1 软件设计所用到的单片机资源情况P0口作为显示输出,P2口作为键盘输入,用到外部中断0即P3.2脚,P1.2脚和P1.3脚分别与开锁电路与报警电路相连,P1.5、P1.6、P1.7分别于液晶显示器的E、RW、RS脚相连。
4.2 软件系统的模块功能如图6所示为系统的主程序流程图,图7所示为开锁流程图。
图6 主程序流程图主程序清单:void main() /*主程序*/{uint i; /*预置初始化*/P30=1;/*开启数据/命令*/P31=0; /*禁止读写*/P35=0; /*关闭报警*/P36=0; /*关闭开锁*/write_com(0X38); /*设置数据总线为8位,分2行显示*/ del(5);write_com(0X01); /*显示器清零,光标归位*/del(5);write_com(0X0f); /*打开显示功能*/del(5);write_com(0X06); /*每写入一个数据光标右移*/del(5);write_com(0X80+0X00); /*写入字符码,使显示器显示相应字符*/del(5);for(i=0;i<15;i++){write_dat(table[i]); /*显示器输出内容*/del(10);}write_com(0Xc0);del(5);while(1){if(ky_press()) /*如果有键按下*/{ky_scan(); /*键盘扫描*/}}}uchar ky_press() /*检查是否有按键按下*/{ P1=0Xf0; /*按键口初始化*/if((P1&0xf0)!=0xf0) /* 若有键按下*/del(1); /* 延时去抖动*/if((P1&0xf0)!=0Xf0){return 1; } /* 有键按下,返回值为1*/ else{return 0;} /* 无键按下,返回值为0*/}void ky_scan() /*确认所按按键的具体位置*/ { uchar ky,i=0X7F,j;del(10);if(ky_press()); /* 如果有键按下*/{do{i=(i<<1)|(i>>7); /* 行列扫描*/P1=i; /* 输出扫描码*/ky=P1;j=ky&0XF0;}while(j==0XF0); /*有键按下*/图7 开锁流程图开锁程序清单:void jiaodui(){ uchar i=0,j=0;while(password[i]==new[i]) /*密码比较*/{ i++; /*i自加1*/if(i==8) break;}if(i==8) /*如果密码全部正确*/{ P36=1; /*开锁*/write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/del(5); /*调用延时程序*/for(i=0;i<17;i++){write_dat(table2[i]); /*显示器显示Mission Success! */ del(20);}}else if(i<8) /*密码错误*/{ P35=1; /*报警*/write_com(0X80+0X40); /*写入字符码,显示器显示相应字符*/del(5);for(i=0;i<17;i++){write_dat(table3[i]); /*显示密码错误*/del(20);}while(1);}else if(j!=3){ k=0;write_com(0X80+0X40); /*锁定键盘*/}}4.3 软件系统程序清单软件系统程序清单见附录F。
5 设计结论、仿真结果、误差分析、教学建议5.1 设计结论及使用说明本程序从经济实用的角度出发,采用美国Atmel公司的单片机AT89S52作为主控芯片,结合外围的键盘输入、显示、报警、开锁等电路并用C语言编写主控芯片的控制程序,研制了一款可以多用户使用可多次更改密码具有报警功能的电子密码锁。