单片机课程设计-电子密码锁
51单片机课程设计 电子密码锁
华中师范大学武汉传媒学院传媒技术学院电子信息工程2011仅发布百度文库,版权所有.基于单片机的密码锁的设计1设计题目:电子密码锁要求采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统2设计框图3方案设计课题设计目标本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1.正确输入密码前提下,开锁提示;2.错误输入密码情况下,蜂鸣器报警;3.密码可以根据用户需要更改;4.断电存储功能主控部分的选择选用单片机作为系统的核心部件,实现控制与处理的功能。
单片机具有资源丰富、速度快、编程容易等优点。
利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标。
密码输入方式的选择由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。
行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。
通过不断读行线口线,或者中断方式触发键位扫描。
当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。
当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。
每个按键都可通过程序赋予功能,从而完成密码识别。
4 硬件原图设计5程序流程图主程序流程图键功能程序流程图开锁程序流程图6仿真图7制作本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。
51单片机四位密码锁课程设计
51单片机四位密码锁课程设计51单片机四位密码锁是一种常见的电子锁,它使用51单片机作为控制核心,通过输入四位密码来控制锁的开关。
本文将介绍关于51单片机四位密码锁的课程设计。
我们需要明确设计的目标和要求。
本设计的主要目标是实现一个四位密码锁系统,并且需要满足以下要求:1.能够输入四位数字密码。
2.密码输入正确时,能够解锁并输出解锁信号。
3.密码输入错误时,不能解锁。
4.能够重置密码。
接下来,我们将详细介绍设计的步骤和实现。
1.硬件设计:在硬件设计方面,我们需要准备以下器件:- 51单片机-数码管显示模块-按键模块-继电器模块-电源模块2.软件设计:在软件设计方面,我们需要编写51单片机的程序,通过编程实现密码锁的功能。
以下是设计的主要步骤:-初始化:设置输入输出引脚,并初始化时钟和数码管显示。
-输入密码:设计密码输入的函数,通过按键模块获取用户输入的密码。
-检验密码:设计密码检验的函数,将用户输入的密码与预设的密码进行比对。
-解锁信号:如果密码输入正确,输出解锁信号,通过继电器控制开关,实现解锁。
-密码错误:如果密码输入错误,通过数码管显示密码错误的提示信息。
-重置密码:设计密码重置的函数,将新设置的密码保存。
3.程序流程:根据以上设计的步骤,我们可以得到以下主要的程序流程:-初始化引脚和时钟。
-设置初始密码。
-进入主程序循环。
-接收用户输入的密码。
-检验密码是否正确。
-如果密码正确,显示解锁信号并控制继电器解锁。
-如果密码错误,显示密码错误信息。
-进入下一次循环。
4.调试和测试:完成程序编写后,我们需要进行调试和测试。
在测试过程中,我们需要输入正确和错误的密码进行验证,检查程序是否能够正常运行,并且能够正确判断和处理用户输入的情况。
5.优化改进:如果在测试中发现问题或不足之处,我们可以对程序进行优化和改进。
例如,可以增加密码输入的最大尝试次数,增加延时等待时间,增加密码保护等功能。
总结:通过对51单片机四位密码锁的课程设计,我们学习了如何使用51单片机编写程序,实现密码锁的功能。
电子密码锁-课程设计报告
1、总体方案设计设计本课题时构思了两种方案:一种是用以A T89C2051为核心的单片机控制方案;另一种是用CMOS数字集成电路控制方案。
考虑到单片机方案原理复杂,而且调试较为繁琐,所以本文采用后一种方案。
1:采用数字电路控制。
其原理方框图如图数字电路控制方案采用数字密码锁电路的好处就是设计简单。
用以CMOS构成的数字逻辑电路作为密码锁的核心控制,共设了8个用户输入键;如果用户输入密码的时间超过5秒(一般情况下,用户不会超过5秒,若用户觉得不便,还可以修改)电路将报警20秒。
通过比较以上两种方案,单片机方案有较大的活动空间,但是成本昂贵;采用数字密码锁电路只要设计合理,仍然能够满足保密性要求。
所以我们采用后一种方案。
2.1设计说明要求用电子器件设计制作密码锁的控制电路,使之在输入正确的代码时输出信号,以启动执行机构动作,并用红,绿LED灯指示开锁、关锁状态。
设计完成的要求:(1)密码锁控制器中存储一个八位代码(二进制),当开锁按钮开关(共设置了11位,其中只有8位有效密码键,其余三位为干扰位和密码更改位)的输入代码等于存储代码时启动开锁控制电路,并且绿灯亮,红灯灭表示开锁状态。
(2)从第一个按钮触动后的5秒内若未能将锁打开,则电路自动复位并有扬声器发出报警信号,报警信号持续时间20秒,同时绿灯灭,红灯亮表示关锁状态。
(3)本设计完成了发挥部分的要求即密码修改电路,通过按钮开关(space 键)控制,用户可以自行修改八位密码,修改后的密码将进入电路锁存。
2.2设计思路根据题目要求,我们设计了这款实用稳定的数字电子密码锁,由密码按钮键、预置密码锁存器、密码比较识别电路、5s计时电路和20s计时电路等组成。
整机采用CMOS数字集成电路,电路新颖,线路简单,保密性强,性能可靠,误码报警等特点。
2.3总体方框图3、设计原理分析电路组成:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入锁定电路3.1 密码输入和修改电路:电路总共设计了11个用户输入键,其中有8位是有效的密码按键,其余的分别是M键(仿真电路中采用此按键表示开始输入密码,但是实际电路中可以用灵敏度较高的端口来代替,当人走近门时,触摸了敏感端,由于人自身带电,端口变成高电平,黄色指示灯亮表示电子锁处于待命状态,当然这在仿真电路中通过按键也可以实现),L键(输入密码结束,按下确认键即L键),space键(这个按键装在电路内部,是密码修改键,修改前后分别按space 按键表示修改密码和密码修改结束)3.2报警电路:报警电路实现的功能是:当输入密码的时间超过5s(一般情况下用户输入不会超过)或者密码输入错误,电路报警20s,防止他人恶意开锁。
电子密码锁课程设计
电子密码锁设计1.1 设计要求利用单片机作为控制核心,完成一个电子密码锁可以修改密码设计具体要求如下:1、密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“12345共6位密码;2、密码的输入:采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键。
输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程;3、密码输入正确按确认键,绿灯亮,输入密码错误、红灯亮蜂鸣器响。
1.2 设计内容:1、设计合理、正确的方案;2、系统硬件设计及焊接制作;3、系统软件设计及调试;4、系统联调。
1.3 主要设计条件:1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件;3、单片机应用系统板1套;4、系统设计所需的元器件。
2 方案论证与对比2.1 方案一采用数字电路控制,其原理方框图如1-1所示。
键盘输入开锁电路密码校验电路执行电路限时报警消除报警信号正确开锁市电供电电路电子切换开关充电电路蓄电池断电检测220V 6V 电源Vcc图1-1 数字电路控制图采用数字密码锁电路的好处就是设计简单。
用74LS112双JK 触发器构成的数字逻辑电路做为密码锁的核心控制,共设了9用户输入键,其中只有5个是有效的密码按键,其它的都是干扰按键,如果按下干扰按键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入,。
电路有两大部分组成:密码锁电路和备用电源,其中备用电源是防止停电造成的密码锁电路失效,是用户免遭麻烦。
密码锁电路包含:键盘输入,密码检测,开锁电路,执行电路,报警电路。
2.2.1单片机系统:此次课程设计采用一种是用以STC98C52为核心的单片机控制方案。
利用单片机灵活编程设计和丰富的I/O 端口,及其控制的准确性,进行电子密码锁的设计。
此次课题用8255课编程芯片的PC 口与键盘相连,做输入口,PA,PB 口与数码管相连,做显示。
2.2.2矩阵键盘接口电路:此次课程设计采用4*4矩阵键盘,与PC 相连,采用扫描法。
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周:实践操作与创新能力培养。
单片机程序设计—电子密码锁
目录目录 (1)中文摘要 (2)第一章概述 (5)第二章系统总体方案设计 (6)第三章硬件电路设计 (10)3.1键盘电路设计 (10)3.2 LED显示电路 (12)3.3 开锁警电路 (15)第四章软件设计 (17)4.1 软件设计思路 (17)4.2各子程序设计 (17)第五章系统调试 (22)第六章心得体会 (23)第七章参考文献 (24)附录 (25)源程序清单 (25)中文摘要摘要:在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣,随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁得使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐替代传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的只能密码锁,它除了具有电子密码锁的功能外,还引进了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是,这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
基于以上思路,本次设计使用ATMEL公司的AT89C51实现—基于单片机的电子密码锁的设计,其主要具有如下功能:密码通过键盘输入,若密码正确,则将锁打开。
32单片机 电子密码锁设计实验
32.电子密码锁设计1.实验任务根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。
2.电路原理图图4.32.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;(2).把“音频放大模块”区域中的SPK OUT端子接喇叭和;(3).把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;(4).把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;(5).把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;4.程序设计内容(1).密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2).密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。
5.C语言源程序#include <AT89X52.H>unsigned char code ps[]={1,2,3,4,5};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; unsigned char pslen=9;unsigned char templen;unsigned char digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf[9];bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsigned int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void main(void){unsigned char i,j;P2=dispcode[digitcount];TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1){if(cmpflag==0){if(P3_6==0) //function key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_6==0){if(hibitflag==0){funcount++;if(funcount==pslen+2) {funcount=0;cmpflag=1;}P1=dispcode[funcount]; }else{second3=0;}while(P3_6==0);}}if(P3_7==0) //digit key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_7==0){if(hibitflag==0){digitcount++; if(digitcount==10){digitcount=0;}P2=dispcode[digitcount];if(funcount==1){pslen=digitcount;templen=pslen;}else if(funcount>1){psbuf[funcount-2]=digitcount; }}else{second3=0;}while(P3_7==0);}}}else{cmpflag=0;for(i=0;i<pslen;i++){if(ps[i]!=psbuf[i]) {hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;}}cc=0;errorflag=0;rightflag=1;hibitflag=0;a: cmpflag=0;}}}void t0(void) interrupt 1 using 0 {TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)) {bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(aa==800){aa=0;P0_1=~P0_1;}second3++;if(second3==6400){second3=0;hibitflag=0;errorflag=0;rightflag=0;P0_1=1;alarmflag=0;bb=0;aa=0;}}if((errorflag==0) && (rightflag==1)) {P0_1=0;cc++;if(cc<1000){okflag=1;}else if(cc<2000){okflag=0;}else{errorflag=0;rightflag=0;hibitflag=0;cmpflag=0;P0_1=1;cc=0;okb=0;okflag=0;P0_0=1;}if(okflag==1){oka++;if(oka==2){oka=0;P0_0=~P0_0; }}else{okb++;if(okb==3){okb=0;P0_0=~P0_0; }}}}。
单片机课设--密码锁
1 设计课题任务、功能要求说明及方案介绍1.1设计课题任务与要求设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“0”,进入准备工作状态。
该密码锁具有系统原始密码也是万能密码为,用户可以在原始密码输入正确后,即开锁后才可以设定并存储用户密码,当用户设置密时,万能密码仍可以解锁,输入的新密码并按下设定时回到系统初始状态。
密码锁锁定时,密码输入应处于保密显示状态,显示“0”,密码输入正确时应显示密码输入正确提示信息8个“8.”,即数码管全亮,否则,显示密码输入错误提示信息:8个“-”并且蜂鸣器响一会,当输入错误3次时,蜂鸣器报警一直报警,显示错误信息8个“-”,并且锁死系统。
1.2设计课题总体方案及工作原理此密码锁主要由单片机芯片AT89S52、4X4矩阵键盘、8位数码管显示电路和复位电路构成,设计课题的系统框图如图 1.1 所示:图 1.1系统框图实现密码锁功能的软件程序存放在AT89S52的ROM中。
2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块介绍本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块(1)单片机最小系统模块:AT89S52单片机芯片;复位电路;晶振电路。
本模块AT89S52系统控制核心,单片机系统复位由按键电平复位电路完成,通过按键S1来控制,单片机通过芯片引脚XTAL1、 XTAL2,外并接石英晶体振荡器和两只电容。
这样就为能为单片机提供频率为12MHz的晶振。
(2)4X4矩阵键盘模块:四条列线接P1.7-P1.4;四行线接P1.3-P1.0 (3)显示模块:本次设计显示为8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。
数码管用8个PNP三极管驱动。
(4)电源模块:直接由PC的USB接口提供。
2.2 各功能模块详细介绍2.2.1 AT89S52介绍(1) 具有8KB可改写的Flash 内部程序存储器,可写/擦1000次;(2) 256字节内部RAM;(3) 32根可编程I/O口;(4) 3个16位定时器/计数器。
51单片机设计电子锁密码锁含代码
电子锁设计报告一,实验目的1. 学习8051定时器时间计时处理,键盘扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,设计带有报警功能的可掉电保存的电子密码锁。
3.通过本次实验,加强对所学知识的理解,增强编程能力及实践能力。
二,实验要求A.基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码,能够掉电保存。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
4:自由发挥其他功能.5:要求有单片机硬件系统框图,电路原理图,软件流程图B.拓展部分:无三,实验基本原理单片机密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。
本系统考虑到单片机密码锁成本及体积因素,在设计单片机密码锁部分时,以AT89S52单片机为核心,24C04、LED等构成外围电路。
本系统单片机密码锁硬件部分结构简单、成本低,软件部分使用电子加密提高锁的安全性,具有比较好的市场前景。
同时,由于本电子密码锁可以实现掉电保存,而且可以自行设计或者删除8位密码,所以具有较高的实用价值。
本密码锁采用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led 发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led 发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
此项功能方便用户使用。
单片机电子密码锁课程设计
单片机电子密码锁课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握电子密码锁的基本工作原理。
2. 使学生掌握电子密码锁设计中涉及的编程知识,如C语言基础、寄存器操作等。
3. 帮助学生了解电子密码锁电路的组成,熟悉相关电子元器件的使用。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的单片机电子密码锁的能力。
2. 提高学生动手实践能力,学会使用编程软件、烧录器和相关调试工具。
3. 培养学生团队协作和问题解决能力,学会分析电子密码锁故障并找出解决办法。
情感态度价值观目标:1. 激发学生对电子制作的兴趣,培养创新意识和动手能力。
2. 培养学生严谨的科学态度,注重实验数据和实验结果的准确性。
3. 引导学生关注单片机技术在日常生活中的应用,提高对科技的认识和热爱。
本课程针对高年级学生,他们在之前的学习中已经具备了一定的电子和编程基础。
因此,课程设计将注重实践操作,以项目为导向,让学生在动手实践中巩固知识,提高技能。
通过本课程的学习,学生将能够独立设计并实现一个具有实用价值的单片机电子密码锁,提升解决实际问题的能力。
二、教学内容1. 单片机基础原理:回顾单片机的组成、工作原理,重点讲解51单片机的内部结构、时钟电路和复位电路。
教材章节:第三章《单片机原理与接口技术》2. C语言编程基础:介绍C语言在单片机编程中的应用,讲解数据类型、运算符、控制语句等基本语法。
教材章节:第四章《单片机C语言编程》3. 电子密码锁原理:讲解电子密码锁的基本工作原理,分析锁体的电路组成和功能。
教材章节:第七章《单片机应用实例》4. 硬件设计:学习并设计电子密码锁的硬件电路,包括键盘输入、显示模块、锁驱动电路等。
教材章节:第五章《单片机接口技术》5. 软件设计:编写电子密码锁的控制程序,实现密码输入、校验、开锁等功能。
教材章节:第四章《单片机C语言编程》6. 系统调试与优化:学习使用调试工具,对电子密码锁系统进行调试和优化。
单片机控制的电子密码锁(电路图 流程图 原理图)-课程设计
单片机控制的电子密码锁(电路图+流程图+原理图)-课程设计单片机控制的电子密码锁(电路图+流程图+原理图) 摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。
除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用关键词:AT89S51,AT24C02, 电子密码锁,矩阵键盘一、引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了两种方案:一种是用以AT89s51为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。
考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。
二、方案论证与比较方案一:采用数字电路控制。
其原理方框图如图1-1所示。
图2-1 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:采用一种是用以AT89S51为核心的单片机控制方案。
课程设计 基于8051单片机电子密码锁的设计
一、设计总说明随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
本次基于8051单片机电子密码锁的设计,其主要具有如下功能:(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确以防止误操作。
(3)报警、锁定键盘功能。
密码输入用发光管显示,当连续3次输入错误密码,系统声光报警。
电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED提示灯等。
密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)密码更改功能:将输入的值作为新的密码。
(4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果确锁打开,否则不打开。
主要的设计实施过程:首先,选用8051单片机,以及选购其他电子元器件。
第二步,设计硬件电路。
第三步,编写单片机语言实现功能。
第四部,分别进行软件和硬件的调试。
最后,联合软、硬件调试整个系统,完成本次课程设计。
关键词:4×4矩阵键盘;8051单片机;密码锁;密码二次确认二、绪论2.1背景随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
51单片机电子密码锁
苏州市职业大学课程设计说明书名称单片机原理与应用课程设计——电子密码锁2012年9月3日至2012年9月14日共2周院系机电工程系班级10机电一体化1姓名夏秀文系主任陶亦亦教研室主任陆春元指导教师钟鸣目录摘要-----------------------------------------------------------------------------------------------------3 绪论-----------------------------------------------------------------------------------------------------4第1章 Proteus仿真软件简介----------------------------------------------------------- 4 第2章 Proteus软件原理图绘制-------------------------------------------------------5 2.1 课题要求-----------------------------------------------------------------------------------5 2.2 工作原理-----------------------------------------------------------------------------------6 2.2.1 复位电路和时钟电路--------------------------------------------------6 2.2.2 矩阵键盘-------------------------------------------------------------------72.2.3 74LS245说明-------------------------------------------------------------------72.2.4单片机引脚说明--------------------------------------------------------------7 2.3 原理图绘制过程-------------------------------------------------------------------------82.3.1 元件清单表----------------------------------------------------------------------8 2.3.2 原理图---------------------------------------------------------------------------9第3软件流程图绘制--------------------------------------------------------------------------9 3.1 软件流程图------------------------------------------------------------------------------10 3.2 汇编程序---------------------------------------------------------------------------------10 第4章Proteus软件仿真--------------------------------------------------------------------16 4.1 程序调试---------------------------------------------------------------------------------164.2 仿真设计---------------------------------------------------------------------------------174.3 仿真调试过程----------------------------------------------194.4 仿真结果--------------------------------------------------20第5章课程设计总结------------------------------------------------------------------------20参考文献-------------------------------------------------------------------------------------------- 21摘要在日常的生活和工作中, 使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
单片机课程设计密码锁
单片机课程设计密码锁一、课程目标知识目标:1. 理解单片机的基础知识,掌握其基本原理和编程方法;2. 学习并掌握密码锁的原理与设计,能够运用单片机实现密码锁功能;3. 了解并掌握相关传感器和执行器的使用,实现密码锁的输入和输出控制。
技能目标:1. 能够运用所学知识,设计并编写出实现密码锁功能的单片机程序;2. 掌握使用相关调试工具,对单片机程序进行调试和优化;3. 提高学生的动手能力,培养实际操作中解决问题的能力。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养创新意识和实践精神;2. 培养学生团队协作精神,学会与他人共同解决问题;3. 引导学生关注科技发展,了解单片机在现实生活中的应用,增强社会责任感。
课程性质:本课程为实践性较强的课程,旨在通过单片机实现密码锁的设计与制作,让学生在动手实践中掌握单片机知识。
学生特点:学生处于高年级阶段,已具备一定的单片机基础,对实际应用有较高的兴趣。
教学要求:结合学生特点和课程性质,注重实践操作,强调理论知识与实际应用相结合。
通过课程学习,使学生能够独立完成一个具有实际应用价值的单片机项目。
在教学过程中,关注学生的学习进展,及时调整教学策略,确保课程目标的实现。
将目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 单片机基础知识回顾:C语言编程基础,单片机工作原理,I/O口编程。
教材章节:第一章单片机基础。
2. 密码锁原理与设计:- 密码锁的组成和工作原理;- 矩阵键盘原理与编程;- 密码比对算法;教材章节:第三章输入输出接口,第六章矩阵键盘。
3. 单片机与外部设备接口:- 传感器与执行器的应用;- 单片机与继电器、电磁锁等执行器的连接;教材章节:第四章传感器与执行器,第五章单片机与外部设备接口。
4. 程序设计与调试:- 程序结构设计;- 程序编写与调试;- 优化程序性能;教材章节:第七章程序设计与调试。
5. 实践操作:- 搭建电路,连接硬件;- 编写程序,实现密码锁功能;- 调试与优化;教材章节:实践操作部分。
单片机电子密码锁课程设计
单片机技术及应用综合训练设计报告前言随着人们生活水平的提高;如何实现家庭防盗这一问题也变得尤为突出..在科学技术不断发展的今天;电子密码防盗锁作为防盗卫士的作用显得日趋重要..本文从经济实用的角度出发;系统由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语言的知识;这两门知识都是非常具有实用性的..在这次实验中再次加深了对此的认识..首先;在一开始输程序的时候;在程序仿真过程中出现了不能打开头文件的现象;后来经老师知道后知道了头文件的具体作用和使用方式..这些都是以前所没能掌握的..在后面的硬件电路调试过程中也遇到了很多问题;经过不懈努力之后都一一解决了..本次试验为期一周;不得不说;这次试验让我学到了好多东西..也感谢老师的辛勤指导。
电子密码锁课程设计任务书
目录1 系统总体方案设计11.1 系统方案11.2 系统设计思路:12 硬件电路设计22.1 键盘电路设计22.2 LED显示电路32.3 解锁电路52.4 报警电路53 软件设计63.1 软件设计思路63.2 每个子程序的设计64 系统调试104.1 系统硬件连接示意图:104.2 部分系统测试115 经验12参考文献13发送13附录131 系统总体方案设计1.1 系统方案的选择综合其他方案的优缺点,采用基于AT89S51的单片机控制方案。
凭借单片机灵活的编程设计和丰富的IO口,以及其控制的精确性,不仅可以实现基本的密码锁功能,而且还增加了功率调节和存储、声光提示等功能。
遥控。
原理如图1-1所示。
图1-1 单片机控制方案该方案活动空间大,既能实现所需功能,又能在很大程度上扩展功能,还可以方便地进行系统升级。
本方案采用以89S51为核心的单片机控制方案。
凭借单片机灵活的编程设计和丰富的I/O端口,以及其控制的准确性,实现了基本的密码锁功能。
1.2 系统设计思路:1. 使用矩形键盘进行密码输入,包括数字键和功能键。
2.LED数码管显示输入密码,74JS247用于驱动数码管点亮并显示数字,74LS138用于控制各个位置的显示及时显示。
3. 将解锁电路更换为LED,表示解锁。
4、密码输入错误次数超过3次,系统会报警。
5、上电后显示屏显示“”,原密码为“123456”。
只需输入此密码即可开门。
这样可以防止断电后再次调用时没有密码可用。
000000”6. 按“C”键清除显示为“.000000”7. 要重置密码,首先在记录“*”上输入密码。
8. 输入密码,然后按“D”键。
如果密码与设置的密码相同,开门。
否则,显示清零为“00000”。
9、软件设计主要包括键盘读键、LED显示程序、密码比对程序和报警程序。
2 硬件电路设计2.1 键盘电路设计采用矩阵键盘,因此本设计采用行列式键盘,同时可以减少键盘与单片机接口时占用的I/O线数。
电子密码锁系统设计
一、任务及要求设计任务:本课题要求以单片机核心,设计一个电子密码锁系统。
设置密码为6~10位十进制码。
由0~9十个按键输入密码,当输入密码与预设密码一致时,锁被打开,信号灯亮;当密码不一致时要求重新输入密码,输入三次密码错误,则声光报警。
具有密码重置功能(重置密码可以保存,掉电不丢失)。
设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成应用程序设计;4)应用系统的硬件和软件的调试。
5)企业指导工程项目.二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。
开发板焊接与测试。
周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。
周五进行答辩和设计结果检查。
三、参考资料1、王迎旭等.单片机原理及及应用. 2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术.3版.清华大学出版社,2010.3、戴灿金.51单片机及其C语言程序设计开发实例.清华大学出版社,2010目录第1章设计任务及要求 (1)1.1设计任务: (1)1.2设计要求: (1)第2章系统方案设计 (1)2.1系统概述 (1)2.2系统硬件方案设计 (1)2.3系统软件方案设计 (2)第3章系统硬件电路设计 (2)3.1主控芯片电路设计 (2)3.2矩阵键盘电路设计 (3)3.3蜂鸣器电路设计 (3)3.4警示灯电路设计 (4)3.5显示电路设计 (4)3.6掉电保护电路设计 (5)第4章系统软件设计 (5)4.1软件总体设计 (5)4.2各子程序设计 (6)4.2.1矩阵键盘程序 (6)4.2.2修改密码程序 (6)4.2.3密码比较程序 (6)4.2.4报警系统程序 (8)第5章系统仿真及调试 (8)第6章企业工程项目训练..................................................................... 错误!未定义书签。
基于单片机电子密码锁的课程设计
基于单片机电子密码锁的课程设计本文将介绍基于单片机电子密码锁的课程设计,包括设计目的、设计理念、硬件设计、软件实现和实验结果。
通过这篇文档,读者可以了解到使用单片机进行电子密码锁设计的方法和步骤,并了解到电子密码锁在现代生活中的应用。
一、设计目的本次课程设计的主要目的是为了加深学生对单片机的理解和应用,同时锻炼学生的设计能力和实践能力。
通过电子密码锁的设计,可以培养学生的系统思维和解决问题的能力,同时也可以让学生了解到电子密码锁在现代生活中的应用。
二、设计理念电子密码锁是一种智能化的安全设备,其设计理念是通过输入密码来进行开锁,实现门禁控制和安全防护的功能。
本次课程设计的设计理念是通过单片机控制电子密码锁的开关,实现对门禁的控制和管理。
同时,本次设计还考虑到了密码的安全性和可靠性,确保用户信息的安全和可靠性。
三、硬件设计1、硬件模块本次课程设计的硬件模块主要包括单片机模块、显示屏模块、键盘模块、电子锁模块和电源模块。
2、模块连接单片机模块、显示屏模块、键盘模块、电子锁模块和电源模块之间通过连线进行连接。
其中,单片机模块和显示屏模块之间通过串口进行通讯,单片机模块和键盘模块之间通过IO 口进行通讯,单片机模块和电子锁模块之间通过IO口进行通讯,电源模块则为整个系统提供电源供应。
四、软件实现1、程序流程本次课程设计的程序流程主要包括初始化、密码输入、密码验证、开锁和关闭等步骤。
其中,初始化主要是对各个模块进行初始化和设置,包括显示屏、键盘、电子锁等模块的初始化和设置;密码输入是通过键盘输入密码,将密码存储在单片机中;密码验证是对密码进行比对,如果密码正确,则开锁,否则显示密码错误的提示信息;开锁则是对电子锁进行控制,将开关状态进行切换;关闭则是对电子锁进行控制,将开关状态进行切换。
2、代码实现本次课程设计的代码实现主要采用C语言进行编写,并通过Keil C IDE进行编辑和调试。
具体代码可以参照下面的代码:int main(void){ //初始化模块Init_LCD(); Init_Keypad(); Init_Lock(); while (1) { //获取用户输入的密码Get_Password(); //判断密码是否正确if(Check_Password()) { //解锁Unlock_Lock();//显示解锁成功信息Display_LCD("UnlockSuccessed"); } else { //显示解锁失败信息Display_LCD("Unlock Failed"); } }}五、实验结果通过本次课程设计,设计并制作出了一款基于单片机电子密码锁。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子密码锁的设计说明书院系:机电汽车工程学院专业:机械设计制造及其自动化班级:姓名:学号:指导老师:同组人员:中文摘要摘要:随着经济的发展,人们对日常生活质量的要求也越来越高,从工作、学习、出行、购物等的各个方面,人们也对现代安全设施提出来更高的要求。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
密码锁具有安全性高、成本低、功耗低、易操作等优点,同时还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
本次电子密码锁的设计主要就针对于这种社会需求,从程序设计到硬件设计以及硬件安装连接都做了详细的说明。
设计说明本次设计使用 ATMEL公司的 AT89C51 实现一基于单片机的电子密码锁的设计,其主要具有如下功能:①密码通过键盘输入,若密码正确,则将锁打开。
②报警、锁定键盘功能。
密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。
电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED 提示灯,报警蜂鸣器等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:①密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
②密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
③开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
主要的设计实施过程:首先,选用 ATMEL公司的单片机AT89C51,以及选购其他电子元器件。
第二步,使用 DXP 2004设计硬件电路原理图,并设计 PCB图完成人工布线(后因 PCB 板损坏决定采用万能板焊接的方法)。
第三步,使用 Keil uVision3 软件编写单片机的 C 语言程序、仿真、软件调试。
第四部,使用 PROTEUS 软件进行模拟软、硬件调试。
最后,联合软、硬件调试电路板,完成本次毕业设计。
关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确认;电子密码锁目录中文摘要 (2)设计说明 (3)目录 (5)第1章系统总体方案设计 (1)1.1 系统法案的选择 (1)1.2 系统设计思路 (2)第2章硬件电路设计 (3)2.1 键盘电路设计 (3)2.2 LED显示电路 (4)2.3 开锁电路 (6)2.4 报警电路 (7)第3章软件设计 (9)3.1 软件设计思路 (9)3.2 各子程序设计 (10)第4章系统调试 (15)4.1系统硬件连接示意图 (15)4.2系统测试的局部示意图 (16)第5章心得体会 (17)第6章参考文献 (18)附录 (19)源程序清单 (19)第一章:系统的总体方案设计1.1 系统方案的选择:综合其他多种方案设计的优缺点,采用以AT89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图1-2所示。
图2-2单片机控制方案该方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。
本方案采用一种是用以89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
1.2系统的设计思路:1.输入密码用矩形键盘,包括数字键和功能键。
2.LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
3.用发光二极管代替开锁的电路,发光表示开锁。
4.输入密码错误次数超过3次,系统报警。
5.打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
6.按“C”键,清除显示器为“000000”。
7.欲重新设定密码,先输入密码在案“*”。
8.输入密码,再按“D”键。
若密码与设定密码相同,则开门。
否则显示器清为“000000”。
9.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
第2章硬件电路设计2.1 键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图2.1。
图2.1 矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图2.1所示的4×4键盘,说明线反转个工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
具体的功能设计如表2.1:表2.1 按键功能2.2LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图2.2所示。
用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。
通过软件实现数字和位控制。
图2.2 LED显示电路用74LS247可以控制输出什么字型。
74LS247的逻辑功能表如表2.2:表2.2 74LS247的逻辑功能表用74LS138控制位循环显示,其逻辑功能表如表2.3:表2.3 74LS138逻辑功能表C B A Y1 Y2 Y0 Y3 Y4 Y5 Y6 Y70 0 0 0 1 1 1 1 1 10 0 1 1 0 1 1 1 1 1 10 1 0 1 1 0 1 1 1 1 10 1 1 1 1 1 0 1 1 1 11 0 0 1 1 1 1 0 1 1 11 0 1 1 1 1 1 1 0 1 11 1 0 1 1 1 1 1 1 0 11 1 1 1 1 1 1 1 1 1 02.3 开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
电路图如2.3所示。
当P2.0口输出低电平时,二极管发光,表示开锁。
图3.3 开锁电路2.4报警电路图2.4 报警电路报警模块由蜂鸣器和单片机组成。
选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。
蜂鸣器电路如图2.4所示。
当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。
第三章软件设计3.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H 中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
3.2 各子程序设计1. 键盘扫描子程序键盘扫描流程图如图3.2.1图3.2.1 键盘扫描流程图键盘扫描子程序如下(请结合总程序进行阅读):L2: MOV R3,#0F7HMOV R1,#00HL3: MOV A,R3MOV P1,AMOV A,P1MOV R4,ASETB CMOV R5,#04HL4: RLC AJNC KEYININC R1DJNZ R5,L4CALL DISPMOV A,R3SETB CRRC AMOV R3,AJC L3JMP L22. LED显示子程序LED显示流程图如图3.2.2图3.2.2 LED显示流程图LED显示子程序如下(请结合总程序进行阅读):DISP:MOV R0,#45HDISP1: MOV A,@R0ADD A,#50HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#40HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#30HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#20HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#10HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#00HMOV P0,ACALL DELAYRET3 密码比较和报警程序密码比较和报警流程图如3.2.3图3.2.3 密码比较和报警流程密码比较和报警程序(请结合总程序进行阅读):COMP: MOV R1,#45HMOV R0,#35HMOV R2,#06HC1: MOV A,@R1XRL A,@R0JNZ C3DEC R1DEC R0DJNZ R2,C1CLR P2.0MOV R2,#200C2: MOV R6,#248DJNZ R6,$DJNZ R2,C2C3: INC R5MOV A,R5MOV R5,ACJNE R5 ,#03H,C4 CLR P2.1MOV R5,#00HC4: JMP START第四章系统调试4.1系统硬件连接示意图:4.2 系统测试的局部本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。