基于51单片机的电子密码锁设计_第1页
基于51单片机的电子密码锁设计_第2页
基于51单片机的电子密码锁设计_第3页
基于51单片机的电子密码锁设计_第4页
基于51单片机的电子密码锁设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目基于51单片机的电子密码锁设计院(系):专业:班级:学号:姓名:指导教师:完成日期:目录第1章总体设计方案 8 第1章总体设计方案1.1课程设计的内容和要求一、课程设计内容:密码锁设计具体内容如下:状态显示功能:锁定状态时系统用三位数码管显示OFF,用三位数码管显示成功开锁次数;成功开锁时用三位数码管显示888,用三位数码管显示成功开锁次数。2.密码设定功能:通过一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度)。3报警和加锁功能: 密码的输入时间大于12秒或者连续三次输入失败,声音报警同时锁定系统,不让再次输入密码。此时只有使用管理员密码方能对系统解锁。二、课程设计要求:1.独立完成课程设计任务;2.通过老师现场验收;3.交出完整的课程设计报告。1.2课程设计原理根据题目要求,要完成密码锁的设置密码,解锁,显示等功能,在本次设计中主要使用了键盘、数字数码管以及片选连线来完成密码锁的设计。编制键盘扫描程序,实现密码的设定和开锁功能,同时在开锁和开锁成功的时候显示不同数据。通过两个函数,分别调用。通过中断服务程序完成对12秒的计时,当开锁的时候开启定时器,开锁完成后关闭定时器并还原定时器相应数据。课程设计思路一.提出方案首先,设计三种数码管显示方案:开锁成功、开锁失败、系统态、在实现不同的功能的时候分别调用每一种函数。另外编钟键盘扫描程序,根据矩阵键盘的原理,编写扫描程序,把按下的键作为返回值,供其他函数使用。编写设定密码程序,通过调用键盘扫描程序以0xff为结束标志,并把密码存贮进数组内,实现密码的设定。开锁功能可以通过开锁函数把输入的密码存入另一个数组,待输入完成后,跟密码进行比较,当开锁成功时和不成功是返回不同的值,这样在主函数内根据函数的不同返回值对成功次数和失败次数进行处理,同时在开锁函数内开启定时器,开锁结束时关闭计时器。如果计时到12秒或者输入密码次数三次时进入系统态,只能输入实现设定好的系统密码才能回到普通状态。二.方案论证由于单片机执行程序的时候每一条函数的执行时间基本可以忽略,所以显示函数放在主函数内会出现一闪而过的现象。但是函数大部分的时间都停在检测是否有键按下函数中,所以在可以在键盘扫描程序内调用显示函数,并通过函数传递判断该显示哪些数字。这样在一个功能内在视觉上就会看到一直显示要显示的信息。1.4实验环境·硬件环境:Lab6000通用微控制器,PC机。·软件环境:WAVE应用软件xxxxxx大学课程设计报告第2章详细设计方案 第2章详细设计方案2.1实现方法开始运行时,数码管显示OFF0,开始设定密码。设定完成后显示OFF0,进入开锁函数,当输入密码的时候显示OFF0,开锁成功后显示8881,当不继续操作时,停留在这。继续输入密码可继续开锁,当连续输入密码三次或者输入密码时间超过12秒时。数码管显示000000,蜂鸣器响,此时只能通过输入系统密码,才能函数返回,否则一直在系统态内死循环。返回后显示OFF,继续循环进行。模块设计程序由设定密码模块、开锁模块、系统模块组成。2.2.1设定密码模块设定密码模块要实现密码的初始化,先在程序开始申请全局数组PASS用来存放密码。根据功能,当没有数据输入时要等数据输入,显示OFF。当有键按下时通过键盘扫描程序判断输入的程序在数组内的位置,最后通过查找数组返回输入的数据。如果返回的数据为0XFF,则密码设定功能完成。如图2.1所示。开始开始Y通过超找数组确定输入的数据是否有键按下Y通过超找数组确定输入的数据是否有键按下YY显示OFF把输入的数据存入数组PASSPPPPPPAPASS值Y显示OFF把输入的数据存入数组PASSPPPPPPAPASS值YYY输入数据输入数据是否为0xffYYYYY返回输入值返回输入值图2.1设定密码模块流程图2.2.2开锁模块开锁模块实现开锁功能。在系统进入开锁过程后,通过键盘扫描把输入的开锁密码输入到开锁数组PASSBUFF中,并且以RST键结束开锁密码的输入。开锁密码输入结束后,对密码数组PASS和开锁数组PASSBUFF进行比较,如果两数组内数据完全相同,则返回1,否则返回2,这样就可以根据返回值判断开锁是否成功。如图2.2所示。开始开始是否有键按下N是否有键按下NYY开启定时器开启定时器Y是否有键按下把输入的值存入数组Y是否有键按下把输入的值存入数组PASSBUFF NN显示OFF输入值是否为0XFF显示OFF输入值是否为0XFFNN YYY关闭定时器关闭定时器PASS与PAABUFFPASS与PAABUFF是否一样NN返回2返回2YY返回1返回1图2.2开锁模块流程图2.2.3系统模块系统模块实现对系统的保护,当三次密码输入错误或者输入密码时间大于12秒时,进入系统状态,提醒用户,并且保护系统。本模块跟开锁模块大致相同。从键盘上输入数据后,然后和系统数据进行比较。如果和系统密码相同时,则返回。否则一直在系统函数内循环,知道输入正确的系统函数。开始开始是否有键输入是否有键输入把输入的数据存入PASSBUFFY把输入的数据存入PASSBUFFN输出000000,蜂鸣器响输出000000,蜂鸣器响输入的数据是否为0XFF输入的数据是否为0XFFNY比较PASSBUFF与系统函数是否一样比较PASSBUFF与系统函数是否一样NY结束结束图2.3系统模块流程图2.2.4主函数流程图开始开始初始化定时器初始化定时器设置密码设置密码开锁开锁YY显示开锁成功开锁是否成功显示开锁成功开锁是否成功NN密码错误是否超过三次密码错误是否超过三次YY系统状态系统状态NN显示开锁失败显示开锁失败是否继续开锁是否继续开锁YYNN结束结束 主函数内先对密码进行设定,设定完成后进行开锁,在主函数内申请变量SUCCESS和FAILURE。存储开锁的成功次数和失败次数。设定密码完成之后,进行开锁操作。根据开锁函数的返回值判断开锁是否成功。如果成功则显示开锁成功。按键后继续开锁,显示关闭。如果开锁为成功。则显示关闭、当连续开锁失败三次或者开锁时间大于12秒后。进入系统态。通过系统密码解锁返回开锁操作。硬件连线硬件电路由矩阵键盘和片选控制构成,如图2.4所示。LED/KEYCSCS0LED/KEYCSCS0键盘8031键盘8031脉冲输入P1.0蜂鸣器脉冲输入P1.0蜂鸣器图2.4硬件连线图本试验使用了6位数码管,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。本试验中8位段码输出地址位0X004H,位码输出地址为0X002H。同时试验提供一个6的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值为0。如无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下以后,要有一定的延时,防治键盘抖动。此处X由KEY/LEDCS决定。蜂鸣器电路可以输入不同时间的高低电平驱动蜂鸣器发生。 xxxxxx大学课程设计报告第3章调试及结果分析 第3章调试及结果分析3.1调试步骤及方法编译并连接程序后全速运行,在数码管上显示OFF0之后通过矩阵键盘设定密码。密码设定的输入以RST键结束。密码设定完成之后。数码管显示OFF0。之后完成开锁操作。输入密码并以RST结束。成功后。数码管显示8881。并且每次开启成功的时候后面的数字都会增加1。当输入密码错误的时候显示OFF1,连续第二次错误的时候,显示OFF1,连续的第三次错误的时候显示000000。进入系统态,此时输入系统密码,输入系统密码成功后。退出系统态,显示OFF1。当开锁是输入密码的时间超过12秒的时候。同样进入系统态。3.2实验结果及分析本程序实现了课设的基本要求,能够实现密码锁的基本功能。并且能够实现基本的保护功能。当输入密码错误三次的时候或者输入密码时间大于12秒的时候,进入系统状态。进入系统态后,只能通过系统密码解锁进入正常状态。实现了课程设计的基本要求。PAGE24PAGE24xxxxxx大学课程设计报告参考文献9参考文献[1]张毅刚.MCS-51单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社.2004[2]高峰.单片微型计算机原理与接口技术[M].北京:科学出版社.2003[3]胡汉才.单片机原理极其接口技术[M].北京:清华大学出版社.2001[4]薛栋梁.单片机原理及应用[M].西安:中国水利水电出版社.2001xxxxxx大学课程设计报告附录xxxxxx大学课程设计报告附录10 附录1(源程序)#include<reg51.h>xdataunsignedchardat_at_0x8004;xdataunsignedcharkey_at_0x8001;xdataunsignedcharled_at_0x8002;unsignedintK=120;sbitL=P1^0;codeunsignedcharledmap[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};codeunsignedcharkeytable[]={0x16,0x15,0x14,0xff,0x13,0x12,0x11,0x10,0x0d,0x0c,0x0b,0x0a,0x0e,0x03,0x06,0x09,0x0f,0x02,0x05,0x08,0x00,0x01,0x04,0x07};unsignedcharpass[16];unsignedcharpassbuf[16];unsignedcharsword[16]={0x00,0x01,0x02,0x03,0xff};voiddelay(inta);voidledoff(intsuccess);voidledsys();voidsystem();voidTimer0()interrupt1{K--;TR0=0;TH0=0X3C;TL0=0XB0;TR0=1;if(K==0)system();}unsignedchartestkey(){led=0;return(~key&0x0f);}unsignedchargetkey(inttest,intsuccess){intpos;inti;intk;if(test==1){while(!testkey())ledsys();}if(test==0){while(!testkey())ledoff(success);}i=6;pos=0x20;do{led=~pos;pos>>=1;k=~key&0x0f;}while((--i!=0)&&(k==0));if(k!=0){i*=4;if(k&2)i+=1;elseif(k&4)i+=2;elseif(k&8)i+=3;led=0;dodelay(4);while(testkey());return(keytable[i]);}elsereturn(0xff);}voidsetpassword(intsuccess){unsignedchari;for(i=0;i<16;i++){pass[i]=getkey(0,success);if(pass[i]==0xff)break;}}voiddelay(inta){inti=0,j=0,q=0;for(;i<a;i++)for(;j<a;j++)for(;q<a;q++){}}voidledoff(intsuccess){led=1;dat=ledmap[success];delay(4);led=8;dat=0x71;delay(4);led=16;dat=0x71;delay(4);led=32;dat=0x3f;delay(4);}voidledsys(void){led=0x3f;key=0x64;delay(4);L=1;delay(50);L=0;delay(50);}voidledopen(intsuccess){led=1;dat=ledmap[success];delay(4);led=8;dat=ledmap[8];delay(4);led=16;dat=ledmap[8];delay(4);led=32;dat=ledmap[8];delay(4);}voidtimer0init(void){TMOD=0x01;TR0=0;TH0=0X3C;TL0=0XB0;ET0=1;EA=1;}intopen(intsuccess,intfailure){inti=0;while(!testkey());TR0=1;for(i=0;i<16;i++){passbuf[i]=getkey(0,success);if(passbuf[i]==0xff){TR0=0;break;}}i=0;while(pass[i]!=0xff){if(passbuf[i]!=pass[i]){failure++;K=120;return1;}i++;}K=120;return2;}voidsystem(){intq,x;x=0;K=120;while(!testkey())ledsys();for(;1;){for(q=0;q<16;q++){passbuf[q]=getkey(1,0);if(passbuf[q]==0xff)break;}q=0;while(sword[q]!=0xff&&q<16){if(sword[q]!=passbuf[q])break;q++;}if(sword[q]==0xff){K=120;break;}}}voidmain(void){intsuccess=0;intfailure=0;inta;inti;unsignedcharx;timer0init();setpassword();for(;1;){a=open(success,failure);if(a==2){success++;

温馨提示

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

评论

0/150

提交评论