利用单片机模拟密码门锁

上传人:夏** 文档编号:561493268 上传时间:2023-03-23 格式:DOC 页数:7 大小:46.51KB
返回 下载 相关 举报
利用单片机模拟密码门锁_第1页
第1页 / 共7页
利用单片机模拟密码门锁_第2页
第2页 / 共7页
利用单片机模拟密码门锁_第3页
第3页 / 共7页
利用单片机模拟密码门锁_第4页
第4页 / 共7页
利用单片机模拟密码门锁_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《利用单片机模拟密码门锁》由会员分享,可在线阅读,更多相关《利用单片机模拟密码门锁(7页珍藏版)》请在金锄头文库上搜索。

1、河北工业大学计算机硬件技术基础(MCS-51)2007年设计报告学院 班级 姓名 学号 成绩 _ _用单片机模拟密码门锁一、问题的提出密码门锁是通过输入密码与正确密码作比较,当用户输入正确密码后,门锁会打开,当用户输入错误密码并且达到3次后,要过一段时间才允许再次输入。二、总体设计1、分析问题的功能1)鉴于实际条件的限制,我们只是从试验板上模拟这个过程,利用开关来输入密码,将此密码与程序中欲设的密码比较,若正确,则灯LED1亮,若不正确,则在3次输入错误后转入延时程序,待延时结束后方可继续输入密码。同时警示灯亮,并且蜂鸣器持续报警。2)用外部中断ITN0来实现密码输入完成的确认以及比较。3)用

2、一个复位开关来引起INT0的中断,及密码输入的确认。4)用T/C0中断和软件一起来完成5S延时。2、系统总体结构设计1)硬件设计:根据问题确定单片机、I/O接口、定时器、I/O设备、中断等; 2)软件设计:按问题功能分模块,简述各模块功能。三、详细设计:1、硬件详细设计:IBM PC机 一台 DP - 51PROC 单片机综合仿真实验仪 一台 导线若干 排线一条1)进行硬件资源分配:接线方式:用排线连接P1口与开关SW连接。 用导线分别连接P1.6、P1.7和LED1、LED2。 用导线连接P1.5和蜂鸣器。 用INT0连接K1。2)画出电路如图:输入密码将输入的密码和预设密码进行比较YN密码

3、输入正确,灯LED2亮。密码输入错误次数是否超过3次NY密码输入错误次数超过3次,灯LED1亮,同时蜂鸣器报警,延时5S。延时结束,返回密码输入端。开始2、软件详细设计:1)密码输入确认部分:通过INTO产生中断来确认密码的输入。2)密码的比较部分:通过INT0中断程序来比较密码输入是否正确3)延时、蜂鸣报警部分:通过定时器中断来实现延时控制,定时器延时为50MS,延时用软件与硬件相结合的方式来实现5S的延时,同时控制蜂鸣器的持续报警。3、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。1)控制蜂鸣器报警通过对P1.5的取反来实现报警。2)5位密码的输入 通过开关SW来输

4、入密码,将高3位屏蔽,通过“ANL A,#1FH”来实现5位密码的输入3)判断错误次数是否超过3次 通过软件“HERE: CJNE A,#03H,HERE”来实现错误次数超过3次后转入延时程序。四、程序清单列出.ASM或.LST文件清单。ORG 8000HLJMP Main ;上电自动转向主程序ORG 8003H ;外部中断0的入口地址LJMP INT0SV ;转向外部中断0的中断服务程序ORG 800BH ;定时器中断0的入口地址 AJMP TOS ;转向定时器中断0的中断服务程序Main: MOV SP, #5FH ;对堆栈顶赋初值 MOV R0,#00H ;给R0初值 MOV R2,#0

5、0H ;给R2初值 SETB EA ;CPU开中断 SETB IT0 ;开INT0中断 SETB EX0 ;令INT0为边沿触发HERE: CJNE R0,#03H,HERE ;判断错误次数,等待中断 CLR EX0 ;关INT0中断 SETB ET0 ;开T/C0中断 MOV TMOD,#01H ;置T/C0为方式1 MOV TH0,#4CH ;送定时初值 MOV TL0,#00H SETB TR0 ;启动T/C0定时 CLR P1.6 ;P1.6清零RE: CJNE R0,#00H,RE ;判断R0是否清0,延时是否结束 SETB P1.6 ;置位p1.6 LJMP MainINT0SV:

6、 MOV P1,#0FFH ;给p1口的D锁存器写入读指令MOV A,P1 ;将P1给AANL A,#1FH ;屏蔽高3位,获得输入密码CJNE A,#14H,FAL ;判断输入密码是否正确CLR P1.7 ;P1.7清零SJMP RIGHTFAL: INC R0 ;R0加一RIGHT: RETI ;中断返回TOS: CPL P1.5 ;对P1.5取反INC R2 ;R2加一CJNE R2,#64H,NEXT ;判断延时是否达到5SCLR TR0 ;停止T/C0中断CLR ET0 ;关T/C0中断MOV R0,#00H ;R0清零NEXT: MOV TH0,#4CH ;送定时初值MOV TL0

7、,#00HRETI ;中断返回END五、调试程序的方法1、将各部分按电路图连接好2、执行软件程序,看硬件是否按预想运行,若不,先调试软件,在程序中插入断点,执行程序到断点处,看各储存单元数据是否正确,待软件调试完成后, 执行程序,看硬件是否能按预想的运行,若不能,查看接线是否正确,同时修改软件语句,直到完成预定的功能为止。六、你所设计的程序最终完成的功能1、密码输入正确,指示灯亮,错误次数超过3次,报警灯亮,同时蜂鸣器持续报警,延时5S,可以继续输入密码。2、输入密码10100B,灯LED2亮。输入错误答案3次后,灯LED1亮,同时蜂鸣器持续报警5秒。证明功能实现。七、对该设计题目有何更完善的

8、方案1、对自己完成程序进行自我评价。程序执行的很好,功能也都实现,但蜂鸣器响声低,需要提高蜂鸣器的频率来提高蜂鸣器的声音。2、对课题提出更完善的方案。将蜂鸣器频率提高,用DPTR和硬件延时来实现,修改程序如下: ORG 8000HLJMP MainORG 8003HLJMP INT0SVORG 800BH AJMP TOSMain: MOV SP, #5FH MOV R0,#00H MOV R2,#00H SETB EA SETB IT0 SETB EX0HERE: CJNE R0,#03H,HERE CLR EX0 SETB ET0 MOV TMOD,#01H MOV TH0,#4CH MO

9、V TL0,#00H SETB TR0 CLR P1.6RE: CJNE R0,#00H,RE SETB P1.6 LJMP MainINT0SV: MOV P1,#0FFHMOV A,P1ANL A,#1FHCJNE A,#14H,FALCLR P1.7SJMP RIGHTFAL: INC R0RIGHT: RETITOS: CPL P1.5INC R2CJNE R2,#200,NEXTCLR TR0CLR ET0 MOV R0,#00HNEXT: MOV TH0,#07HMOV TL0,#80HRETIEND八、收获及心得体会通过这次单片机设计实习,在实践过程中运用理论知识,不仅使我能够牢固的记清课本上的知识,而且还能体会到设计给我带来的巨大的乐趣,虽然在实习过程中遇到种种困难,可是还是坚持到了最后,成功的完成了任务。用自己所学的知识去解决遇到的难题更能加深对知识的理解,同时我也更深层次地明白了理论联系实际,在今后的学习过程中,我会更加注重这方面的提高,用实验的方法去检测自己学习的效果。宋祥利 日期: 2008年1 月 2 日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号