利用单片机模拟密码门锁

上传人:mg****85 文档编号:34319657 上传时间:2018-02-23 格式:DOC 页数:7 大小:46.50KB
返回 下载 相关 举报
利用单片机模拟密码门锁_第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 来实现密码输入完成的确认

2、以及比较。3)用一个复位开关来引起 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)画出电路如

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

4、蜂鸣器报警通过对 P1.5 的取反来实现报警。2)5 位密码的输入通过开关 SW 来输入密码,将高 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 的中断服

5、务程序Main: MOV SP, #5FH ;对堆栈顶赋初值MOV R0,#00H ;给 R0 初值MOV R2,#00H ;给 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 为方式 1MOV TH0,#4CH ;送定时初值MOV TL0,#00HSETB TR0 ;启动 T/C0 定时CLR P1.6 ;P1.6 清零RE:

6、CJNE R0,#00H,RE ;判断 R0 是否清 0,延时是否结束SETB P1.6 ;置位 p1.6LJMP MainINT0SV: 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 ;判断延时是否达到

7、5SCLR TR0 ;停止 T/C0 中断CLR ET0 ;关 T/C0 中断MOV R0,#00H ;R0 清零NEXT: MOV TH0,#4CH ;送定时初值MOV TL0,#00HRETI ;中断返回END五、调试程序的方法1、将各部分按电路图连接好2、执行软件程序,看硬件是否按预想运行,若不,先调试软件,在程序中插入断点,执行程序到断点处,看各储存单元数据是否正确,待软件调试完成后, 执行程序,看硬件是否能按预想的运行,若不能,查看接线是否正确,同时修改软件语句,直到完成预定的功能为止。六、你所设计的程序最终完成的功能1、密码输入正确,指示灯亮,错误次数超过 3 次,报警灯亮,同时蜂

8、鸣器持续报警,延时 5S,可以继续输入密码。2、输入密码 10100B,灯 LED2 亮。输入错误答案 3 次后,灯 LED1亮,同时蜂鸣器持续报警 5 秒。证明功能实现。七、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。程序执行的很好,功能也都实现,但蜂鸣器响声低,需要提高蜂鸣器的频率来提高蜂鸣器的声音。2、对课题提出更完善的方案。将蜂鸣器频率提高,用 DPTR 和硬件延时来实现,修改程序如下:ORG 8000HLJMP MainORG 8003HLJMP INT0SVORG 800BH AJMP TOSMain: MOV SP, #5FHMOV R0,#00HMOV R2,#

9、00HSETB EASETB IT0SETB EX0HERE: CJNE R0,#03H,HERECLR EX0SETB ET0MOV TMOD,#01HMOV TH0,#4CHMOV TL0,#00HSETB TR0 CLR P1.6RE: CJNE R0,#00H,RESETB P1.6LJMP 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号