电子密码锁课程设计100703.doc_第1页
电子密码锁课程设计100703.doc_第2页
电子密码锁课程设计100703.doc_第3页
电子密码锁课程设计100703.doc_第4页
电子密码锁课程设计100703.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

电子密码锁课程设计说明书 目 录第一部分 设计任务要求2 第二部分 设计项目简介2 第三部分 系统功能设计描述2第四部分 电路原理图4第五部分 程序框图7 第六部分 程序清单7第七部分 设计总结11 第八部分 参考文献12 电子密码锁课程设计一、设计任务要求:1、 密码锁由4X4键盘和4位数码管组成2、 当输入密码时,只显示8,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟作为提示。若密码不正确,则可以从新输入密码。如连续三次输入错误,则禁止输入。二、设计项目简介:电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下: 1保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。 3误码输入保护。当输入密码多次错误时,报警系统自动启动。 4. 电子密码锁操作简单易行,一学即会。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。设计本课题时构思了的方案是:用以AT89C51为核心的单片机控制。三、 系统功能设计描述:1)电子密码锁的工作原理电子密码锁是以MCS-51系列单片机AT89C51为核心,配以相应硬件电路,完成密码的识别和显示、驱动电磁执行器并检测其驱动电流值。 单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,如连续三次输入错误,则禁止输入.单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。 2)系统硬件组成如图(一)所示,系统采用单片机ATC89C51作为控制的核心,完成系统的控制操作。单片机核心接受来自键盘扫面电路的道德键值,判断是数字键还是操作键,并送相应的处理程序。单片机提供动态扫描电路的显示码和位选信号,使动态显示电路正常工作。键盘扫面电路采用4*4键盘,编号09做为数字键“09”,编号14做为关锁操作功能键,编号15做为确定功能键。编号13为修改密码键,编号12作为电子锁报警后的解锁键,编号11为清除显示屏键。动态扫描电路采用4块LED数码管,利用人眼的延迟效应通过合理的软件设计使显示电路显示数字。供电采用5V直流电压电源3)矩阵键盘扫描工作原理矩阵式键盘又成为行列式键盘,是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,如图(四)所示。这种设计减少键盘与单片机I/O接线的数目。只需要N个行线和M个列线就可以实现N*M个键的操作。行扫描法识别键值的原理:A.将第0 行变为低电平,其余行为高电平,输出编码为1110.然后读取列的电平,判别第0行是否有键按下。在第0行上若有键按下,则相应的列被拉低为低电平,则表示第0行和此列相交的位置上有键按下,进而判别哪一列有键按下。若没有任一条列线为低电平,则说明0行上无键按下。B.用此方法扫描第1行,第2行,第3行,判断是哪个键按下。由此指出,按键的位置码比不等于按键的实际定义键值,因此还需要进行转换。4) LED数码管动态显示原理将所有的位选线并联在一起,由一个8位I/O口控制,实现各位的分时选通。如图(五)所示。5)电子密码锁系统硬件设计1、键盘部分如图(四)所示,采用行列式键盘,P1口作为与行列式键盘的接口。低四位做为行选线,高四位作为列选线。采用逐行扫描的方法完成。2、LED动态显示部分采用7SEG-MPX4-CC 八段数码管,总共有四个八段数码管,共阴极的方法,未选信号为低电平有效。数据接口与P2相连,P2.0P2.7对应adp。未选信号与P3相连,P3.0P3.3对应41.仿真电灯一端与P0.0相连,另一端与5V的直流电源相连。6)电子密码锁系统软件设计软件是系统的核心,控制硬件的工作。对于单片机的开发,可以采用C语言,也可以采用汇编语言。本次设计中,使用汇编语言。从可读性来讲C语言相对要好一点。从简洁性来说汇编要好一点。四、电路原理图: 图(一)系统硬件组成图显示的数字LED码03FH106H25BH34FH466H56DH67DH707H87FH96FH-40H 图(二)LED编码表参考电路图:图(三)总体电路图图(四)键盘接口电路图(五)LED显示接口电路图(六)开锁显示等电路五、程序框图:图(七)程序框图六、程序清单RELEQU60H ;赋初值RELBUFEQU61H ;赋初值KEYNOEQU 62H ;赋初值FKEYEQU 20H.0 ;赋初值F0_0EQU 20H.1 ;赋初值ORG 0000HLJMPMAINORG 0030HMAIN: MOV SP,#6FH ;设置堆栈栈顶地址ACALLCLEAN ;调用子程序START: MOV R3,03H SETB P3.1ACALLDISPLAYCLR FKEYACALLSCANJB FKEY,G1 ;条件转移指令 ;若(FKEY)=1,则PC为PC+3+rel ; 若(FKEY)=0,则PC为PC+3SJMPSTARTG1: ACALLSCAN ;短调用指令JB FKEY,G1MOVA,KEYNOCJNEA,#14,G2AJMPG4G2: CJNEA,#15,ONEACALLCMPJNB F0_0,G4CLR P0.0LCALLDELAY1CLR F0_0ACALLCLEANAJMPSTARTG3: MOV 43H,42HMOV 42H,41HMOV 41H,40HMOV 40H,KEYNOAJMPSTARTG4: SETBP0.0ACALLCLEANAJMPSTARTCMP: MOV REL,#00HMOV R0,#40HMOV R7,#4HCMP1: MOV DPTR,#PASSMOV RELBUF,R0MOV A,RELMOVCA,A+DPTRCJNEA,RELBUF,CMPOUTINC RELINC R0DJNZ R7,CMP1SETB F0_0CMPOUT: MOV REL,#00HONE: CLR P3.4 ;错误输入警告 ACALL DELAY1 SETB P3.4 DJNZ R3,GETPW CLP P3.1 ;三次错误输入报警THERE: AJMP THERE RET;=键盘输入程序=SCAN: MOV R3, #0FEHMOV R4,#0HMOV R1,#4HCLR PSW.5 ;PSW.5清零L1: MOV A,R3 MOV P1, A MOV R5,#1 ACALLDELAY ;调用DELAY子程序 MOV A, P1 ANL A,#0F0H ;做“与”逻辑运算 MOV R2,#4L2: JB ACC.4,N1 MOV KEYNO,R4 SETB PSW.5 ;PSW.5置“1”N1: INC R4 RR A ;右循环 DJNZR2,L2 MOVA,R3 RLA ;左循环 MOVR3,A DJNZR1,L1BACK: JNBPSW.5,NO_KEY SETBFKEY AJMPSCANOUTNO_KEY: CLR FKEYSCANOUT: RETCODESW: MOV R0,#40H MOVR1,#50H MOVR7,#4SW1: MOV DPTR,#TAB MOV A,R0 MOVCA,A+DPTR ;片外ROM指令 MOVR1,A INC R0 ;R0自加“1” INC R1 DJNZR7,SW1 RET;=查表显示程序=DISPLAY: ACALLCODESW MOV A,#0FEH MOVR5,#4 MOVR0,#50HDIS1: MOV P3,A MOVP2,R0 ACALLDELAY INC R0 SETBC RLC A DJNZR5,DIS1 RET;=初始化程序=CLEAN: MOV40H,#0AH MOV41H,#0AH MOV 42H,#0AH MOV 43H,#0AH RET ;子程序返回指令,只用在子程序尾;=消除按键抖动程序=DELAY: MOV R7,#19HD1: MOVR6,#64H DJNZR6,$ DJNZR7,D1 ;循环指令消除按键抖动 RET ;=显示延时程序=DELAY1: MOV R7,#F5HD11: MOV R6,#E1HD12: DJNZR6,D12 DJNZR7,D11 ;循环指令显示延时 RETPASS: DB4,3,2,1TAB: DB3FH,06H,5BH,4FH,66H DB6DH,7DH,07H,7FH,6FH DB40H,40H,40H,40H,86H,8EH END七、设计总结:由于时间紧迫,所以整个设计做得比较快,难免有个别小错误。通过这次的实践,自己不仅巩固了所学的知识,而且在设计过程中,学会了如何快速正确地画图、查手册等等,为以后的学习工作提供了很好的经验。我相信,在以后的设计中,会避免很多不必要的工作,有能力设计出结构更紧凑,性能更稳定精确的设备。 同时,在设计过程中我清楚了设计的一般流程,首先把设计任务书认真读懂,搞清楚所要做的工作,及其需要实现的功能。和本次任务需要解决的首要问题。然后将各个功能划分成子模块,各项任务逐个实现。在把任务搞明白以后,然后收集资料,查阅相关参考书籍的知识点。然后分析明白,将别人的知识转为自己的知识,同时通过网络查询自己不懂得知识点。下一步开始汇编程序,根据划分的子模块逐次编程,然后通过程序调用把子程序附加到主程序中去,进一步调试程序,通过显示的错误,进一步修改程序。在程序调试成功后,绘制程序框图,根据需要实现的功能绘制。接下来绘制电路图,运用PROTEL软件绘制电路图,对软件进一步学习。在这个过程中首先选择所需要芯片,及其所用的管脚,和所用的LED数码管,和按键的连接。接下来整理设计说明书,设计说明书保证所有内容全面的前提下,尽量保证格式一致。通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我可能会记住很多的书本知识,我学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。把握重点、攻克难关,学到用到、活学活用。在设计过程中由于时间仓促有很多地方难免存在不足之处,硬件设计已经完成,在软件设计中有些功能还尚未开发出来。但在以后的工作中,我们会严格要求自己,追求完美。

温馨提示

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

评论

0/150

提交评论