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

下载本文档

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

文档简介

西安文理学院课程设计报告 目录1 概述11.1 选题的依据和意义11.2 电子密码锁的背景12 系统设计12.1设计目标12.2系统设计23 系统硬件设计33.1键盘设计33.2密码显示设计43.3开锁电路与报警电路设计54 系统软件设计54.1主程序设计54.1.1系统软件分析54.1.2主程序流程图64.2子程序设计74.2.1初始化程序74.2.2键盘扫描流程图84.2.3中断服务子程序84.2.4密码修改子程序95 电路仿真与调试95.1软件调试95.2硬件电路图95.3电路仿真105.3.1电路初始状态105.3.2输入密码电路图116 分析与结论12致谢12参考文献13附录113附录2301西安文理学院课程设计报告1 概述1.1 选题的依据和意义单片机,亦称单片机微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口I/O等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟大,微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们生活在各个领域,我们的生活中都离不开单片机。以前没有单片机时这些东西做,但是只能使用复杂模拟电路,然而这样做出来的产品不仅体积大,而且成本不高并且由于长期使用,元器件会不断老化,控制的精度自然达不到标准。单片机产生后,我们就将这些变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这些产品体积小,成本低,长期使用不会担心精度达不到了,而且容易升级改善1。电子密码锁可以在日常生活和现代办公来完成,住宅与办公室的安全防范,单位的文件档案财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性。目前使用的密码锁种类多,各具特色2。1.2 电子密码锁的背景 随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义3。2系统设计2.1设计目标设定密码为12345。密码通过4x4矩阵键盘输入,若密码正确,则门开,用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。2.1.3数码管显示功能。8位数码显示,初始化时,显示“P”,接着输入最大5位数的密码,当密码输入完后,按下确认键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“8.”。当数字输入超过5个时,数码管提示密码长度超出,当数字输入超过6个时,扬声器给出报警信息。在密码输入过程中,若输入错误,可以利用“DEL”键删除刚才输入的错误的数字。密码修改功能。当输入正确密码后,按下修改键,修改密码,输入新设置的密码,确认。密码修改成功。主要的设计实施过程:首先,使用keil uVision3软件编写单片机的C语言程序,仿真,软件测试。第二步,使用PROTEUS软件进行模拟软、硬件调试。2.2系统设计 单片机AT89C51数码管及LED显示密码输入设备单片机时钟电路开锁机构 图2.1系统总设计结构图本系统以AT89C51单片机最小系统为核心,结合矩阵键盘,数码管显示和报警系统组成。系统能完成开锁显示,密码输入错误显示及发生警报,锁住键盘等功能。本次设计就是通过单片机为主控电路,通过电路仿真而实现。首先使用keil软件进行编程与调试,最终生成hex文件,传入单片机内部,从而实现仿真效果4。3 系统硬件设计3.1键盘设计键盘采用4x4矩阵键盘,采用线扫描法识别按键的按下, 把“单片机系统”区域中的P3.0P3.7用8芯排线连接到“44行列式键盘”区域中的R1R2R3R4C1C2C3C4端子上。 图3.1矩阵键盘电路对照图3.1所示的4*4键盘,说明线反转法的工作原理。首先辨别键盘中有无按键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向列线输出全扫描字00H,把全部列线置为低电平,然后将行线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断哪个键被按下:将P3.4P3.7都置低,检测P3.0P3.3是否有低的,若有,则证明有键按下,记下低的端口。然后,将P3.0P3.3置低,检测P3.4P3.7是否有低的端口,如有,则证明端口与上次的一个为地的端口交叉位置的键被按下5。表3.1 键盘功能表按键键名功能说明09数字键输入密码DEL删除键删除密码ENTER确认键确认密码ALT修改键修改密码Esc退出键重新输入密码3.2密码显示设计密码显示采用8位7段共阴极数码管,把“单片机系统”区域中的P0.0P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGDP端子上;把“单片机系统“区域中的P2.0P2.7用8芯排线连接到“动态数码显示”区域中的X0X1X2X3X4X5X6X7端子上;接上拉电阻增加单片机的驱动6。 图3.2 显示电路如图3.2所示,8位数码显示,初始化时,显示“P”,接着输入最大5位数的密码,当密码输入完后,按下确认键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“8.”。当数字输入超过5个时,数码管提示密码长度超出。当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以利用“DEL”键删除刚才输入的错误的数字。3.3开锁电路与报警电路设计 把“单片机系统”区域中的P1.7用导线连接到“音频放大模块”区域中的SPK IN端子上; 把“音频放大模块”区域中的SPK OUT接到喇叭上。 图3.3开锁电路与报警电路 如图3.3所示,开锁采用LED发光二极管和扬声器表示,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。4 系统软件设计4.1主程序设计4.1.1系统软件分析系统软件部分采用C语言编写程序,实现各个部分的功能。本实验的工作流程是:通过键盘扫描来实现功能,用09来输入密码,用DEL来删除密码,用ENTER来确认密码。数码管显示数字“8”代替输入的密码。当键盘输入的数大于6时,扬声器发出警报。未输入数字,按下功能键,同样发出报警声。当ENTER按下时,如果输入值与设定密码相同,则LED灯亮,并且扬声器发出“叮咚”声;否则LED闪烁,扬声器发出“嘀、嘀、嘀”声,禁止键盘输入3秒;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。当数字输入超过5个时,数码管提示密码长度超出。当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以利用“DEL”键删除刚才输入的错误的数字。4.1.2主程序流程图主程序说明:开始,设置初始密码为“12345”,扫描键盘,有键按下,调用显示子程序,在数码管上显示,输入完成,比较密码是否正确,并作出相应的响应。当密码正确时,可实现改密码的功能。开始初始化输入密码数码管显示密码比较LED亮,扬声器“叮咚”LED闪烁,扬声器“嘀、嘀、嘀”,同时锁键盘3s重新输入密码修改密码重新输入密码修改成功返回正确错误 图4.1 主程序流程图4.2子程序设计4.2.1初始化程序开始选择定时器/计数器的工作方式为方式1,16位定时器,仅有运行控制位TRX=1来启动定时器运行,允许T0中断,CPU开中断。4.2.2键盘扫描流程图有键闭合键盘扫描延时去键抖动扫描键盘找到闭合键确定键盘位置闭合键释放建立有效标志返回建立无效标志YN 图4.2 键盘扫描流程图键盘扫描程序说明:给键盘所接的P3口赋扫描码,确定按键的数值,比如数字7的扫描码为0x0e,当temp=0x0e时,key=7。如此循环,扫描键盘。4.2.3中断服务子程序中断服务子程序说明:重装初值,键盘扫描过程中,当ENTER按下时,比较输入密码与设定密码,中断服务响应,如果输入值与设定密码不同,则LED闪烁,扬声器发出“嘀、嘀、嘀”声,禁止键盘输入3秒;闪4次后(8次变换),自动复位到按ENTER前的状态,若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。否则LED灯亮,并且扬声器发出“叮咚”声,自动复位到按ENTER前的状态。若输入密码长度大于6,则扬声器“嘀”一声。4.2.4密码修改子程序密码修改子程序说明:判断修改密码标志位为1,将重新输入的密码放入原始密码数组中存储,使该密码为新的开锁密码。5 电路仿真与调试5.1软件调试在keil环境中编辑程序,通过编译,调试程序,正确无误后保存程序。5.2硬件电路图在proteus软件中画电路图,连接各个元器件,检查无误后完成硬件连接部分,如图5.1所示。图5.1 硬件电路图5.3电路仿真点击AT89C51,添加hex文件,保存。开启电路仿真开关,进行仿真。5.3.1电路初始状态电路初始状态数码管显示“P ”,进入初始状态,如图5.2所示。图5.2 初始状态电路图5.3.2输入密码电路图输入密码后,数码管显示“8”,保证了免得安全,如图5.3所示。图5.3输入密码电路图6 分析与结论总体来说,已经完成了题目要求的基本功能,在完成基本功能后还扩展了锁键盘,报警,解除警报等功能,这个使系统的功能更加完美,成本也不高。通过这次设计,我熟悉了使用PROTEUS的技巧,学会了使用C语言对单片机进行编写程序,熟悉使用Keil软件,并且加深了对单片机的编程技巧。这次的设计是我对模拟电子,数字电子知识更加深了了解,尤其是在对电路进行调试的时候,出现了很多这方面的问题,通过对以往知识的复习巩固,将问题解决。这次的设计有很多的不足,和市场上的产品有一定的差距,例如没有加改锁功能等,还可以做得更好,还请老师同学们提出宝贵意见。致谢课程设计是培养学生综合运用所学知识,发现提出和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体考察。随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在,因此作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。本次课程设计经过两周的查资料、整理材料、做实验,今天终于可以顺利的完成论文了, 论文得以完成,要感谢的人实在太多了,首先要感谢我的两位指导老师和同学。本论文从选题到完成因为论文是在他们的悉心指导和帮助下完成的,倾注了他们大量的心血。我的组员屈薇帮助了我很多,我进步了不少,在此,谨向他们表示崇高的敬意和衷心的感谢! 论文的顺利完成,也离不开其它各位老师、同学和朋友的关心和帮助。在此感谢辅导我实验的各位老师及同学,在整个的论文写作中,各位老师、同学和朋友积极的帮我查资料和提供有利于论文写作的建议和意见,论文得以不断的完善,最终帮助我完整的写完了整个论文。真心谢谢你们。参考文献1 石文轩,宋薇.基于单片机MCS一51的智能密码锁设计M.武汉工程职业技术学院学报,2004 ,(01)2祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002,(01) 3杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J电子工业出版社,20064 叶启明.单片机制作的新型安全密码锁J.家庭电子,2005,(10) 5张毅刚,彭喜元,姜守达,乔立岩.新编MCS51单片机应用设计.哈尔滨工业大学出版社6夏继强:单片机实验与实践教程,北京航空航天大学出版社,2001附录1源程序: #include unsigned char ps=1,2,3,4,5; unsigned char code dispbit=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0x00,0x40,0x73,0xff; unsigned char dispbuf8=18,16,16,16,16,16,16,16; unsigned char dispcount; unsigned char flashcount; unsigned char temp; unsigned char key; unsigned char keycount; unsigned char pslen=5; unsigned char getps6; bit keyoverflag; bit errorflag; bit rightflag; unsigned int second3; unsigned int aa,bb; unsigned int cc,dd,ee; bit okflag; bit alarmflag; bit hibitflag; unsigned char oka,okb; void main(void) unsigned char i,j; TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1; ET0=1; EA=1; while(1) if(ee&(key=15)ee=0 ;dispbuf0=18; dispbuf1=16;dispbuf2=16;dispbuf3=16;dispbuf4=16;dispbuf5=16;dispbuf6=16;dispbuf7=16; keycount=0;if(dd) P3_3=0; P3_5=1; P3_4=1; while(1) if(!P3_5) dispbuf0=18; dispbuf1=16;dispbuf2=16;dispbuf3=16;dispbuf4=16;dispbuf5=16;dispbuf6=16;dispbuf7=16; keycount=0; dd=0; break ; if(!P3_4) ee=1; dd=0;dispbuf0=18;dispbuf1=16;dispbuf2=16;dispbuf3=16;dispbuf4=16;dispbuf5=16;dispbuf6=16;dispbuf7=16; keycount=0; break ; P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) for(i=10;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)&(!ee)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)&(!ee)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=12; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key ove

温馨提示

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

评论

0/150

提交评论