- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河北工业大学计算机硬件技术基础(MCS-51)2007年设计报告
用单片机模拟密码门锁
一、问题的提出
密码门锁是通过输入密码与正确密码作比较,当用户输入正确密码后,门锁会打开,当用户输入错误密码并且达到3次后,要过一段时间才允许再次输入。
二、总体设计
1、分析问题的功能
1)鉴于实际条件的限制,我们只是从试验板上模拟这个过程,利用开关来输入密码,将此密码与程序中欲设的密码比较,若正确,则灯LED1亮,若不正确,则在3次输入错误后转入延时程序,待延时结束后方可继续输入密码。同时警示灯亮,并且蜂鸣器持续报警。
2)用外部中断ITN0来实现密码输入完成的确认以及比较。
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)画出电路如图:
2、软件详细设计:
1)密码输入确认部分:通过INTO产生中断来确认密码的输入。
2)密码的比较部分:通过INT0中断程序来比较密码输入是否正确
3)延时、蜂鸣报警部分:通过定时器中断来实现延时控制,定时器延时为50MS,延时用软件与硬件相结合的方式来实现5S的延时,同时控制蜂鸣器的持续报警。
3、设计中的主要困难及解决方案
在这部分论述设计中遇到的主要困难及解决方案。
1)控制蜂鸣器报警
通过对P1.5的取反来实现报警。
2)5位密码的输入
通过开关SW来输入密码,将高3位屏蔽,通过“ANL A,#1FH”来实现5位密码的输入
3)判断错误次数是否超过3次
通过软件“HERE: CJNE A,#03H,HERE”来实现错误次数超过3次后转入延时程序。
四、程序清单
列出.ASM或.LST文件清单。
ORG 8000H
LJMP Main ;上电自动转向主程序
ORG 8003H ;外部中断0的入口地址
LJMP INT0SV ;转向外部中断0的中断服务程序
ORG 800BH ;定时器中断0的入口地址
AJMP TOS ;转向定时器中断0的中断服务程序
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为方式1
MOV TH0,#4CH ;送定时初值
MOV TL0,#00H
SETB TR0 ;启动T/C0定时
CLR P1.6 ;P1.6清零
RE: CJNE R0,#00H,RE ;判断R0是否清0,
文档评论(0)