单片机课程设计-电子密码锁
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位定时器/计数器。
- 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软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。