单片机课程设计-密码锁

上传人:aa****6 文档编号:29986658 上传时间:2018-01-26 格式:DOC 页数:28 大小:399KB
返回 下载 相关 举报
单片机课程设计-密码锁_第1页
第1页 / 共28页
单片机课程设计-密码锁_第2页
第2页 / 共28页
单片机课程设计-密码锁_第3页
第3页 / 共28页
单片机课程设计-密码锁_第4页
第4页 / 共28页
单片机课程设计-密码锁_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《单片机课程设计-密码锁》由会员分享,可在线阅读,更多相关《单片机课程设计-密码锁(28页珍藏版)》请在金锄头文库上搜索。

1、11 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务与要求设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.” , 进入准备工作状态。该密码锁具有系统原始密码,用户可以在原始密码输入正确后,即开锁后才可以设定并存储用户密码,当按修改密码键时,显示英文“CODE”,输入的新密码显示具体按下的数字和字母 0-9 或A-F。密码锁锁定时,密码输入应处于保密显示状态,显示“-” ,密码输入正确时应显示密码输入正确提示信息主人的英文“HOST” ,且指示灯亮,否则,显示密码输入错误提示信息:错误的英文字母“FAULT” ,当输入错误 3 次时,蜂鸣器报警,显示小偷

2、的英文“THIEF” ,且指示灯亮。1.2 设计课题总体方案介绍及工作原理说明此密码锁主要由单片机芯片 AT89S52、4X4 矩阵键盘、8 位数码管显示电路和复位电路构成,设计课题的系统框图如图 1.1 所示:A T 8 9 S 5 2按键复位电路晶振电路数码管驱动数码管限流数码管LEDP 1P 0P 2图 1.1 系统框图实现密码锁功能的软件程序存放在 AT89S52 的 ROM 中。22 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块(1)单片机最小系统模块:AT89S52 单片

3、机芯片;复位电路;晶振电路。本模块 AT89S52 系统控制核心,单片机系统复位由按键电平复位电路完成,通过按键 S1 来控制,单片机通过芯片引脚 XTAL1、 XTAL2,外并接石英晶体振荡器和两只电容。这样就为能为单片机提供频率为 12MHz 的晶振。(2)4X4 矩阵键盘模块:四条列线接 P1.7-P1.4;四行线接 P1.3-P1.0(3)显示模块:本次设计显示为 8 位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。数码管用 8 个 PNP 三极管驱动。(4)电源模块:直接由 PC 的 USB 接口提供。2.2 各功能模块详细介绍2.2.1 AT89S52

4、 介绍(1) 具有 8KB 可改写的 Flash 内部程序存储器,可写/擦 1000 次;(2) 256 字节内部 RAM;(3) 32 根可编程 I/O 口;(4) 3 个 16 位定时器/计数器。 (5) 8 个中断源;(6) 低功耗空闲和掉电方式。它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。2.2.2 时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂3的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。本次课程设计我们用的是 12MHz 的晶振与电容并联形成一个稳定的自激振荡器

5、。电路图如图 2.2 所示 。图 2.1 时钟电路2.2.3 键盘电路本次设计采用 4X4 矩阵式键盘嵌在在单片机 P1 口上,矩阵式键盘电路图 2-3:图 2.2 键盘电路2.2.4 复位电路复位电路采用按键复位方式,当按下复位键时,单片机复位,恢复初始状态,4各寄存器清零。当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。RST 引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续 24 个振荡周期(即 2 个机器周期)以上,使用频率为 12MHz 的晶振,则复位信号持续时间应超过 2us 才能完成复位操作。复位电路如下图 2.4 所示

6、。图 2.3 复位电路2.2.5 数码管驱动电路与显示电路本次课程设计我们采用的是共阳极的数码管,用三极管与电阻来做驱动。电路图如下图 2.5 所示。5图 2.4 数码管驱动及显示电路图2.3 设计课题电路原理图、PCB 图、元器件布局图电路原理图、PCB 图、元器件布局图、元件清单见附录。63 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况选择设计课题使用单片机资源的情况如下:P0 口输出数码管段选信号,P2 口输出数码管位选信号;40H-45H 作为初始密码存储单元,60H-65H 作为输入密码存储区;50H-55H为查表变址缓存单元,数码管显示内容做成表格供查询;堆栈栈底设置

7、在30H。3.2 设计课题软件系统各模块功能简要介绍本程序通过以下各子模块程序实现:主程序、数码管显示子程序、定时 1ms 程序、定时 10ms 子程序、 。主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制,包括键扫功能,密码输入与修改功能,密码校对功能,报警功能等。数码管显示子程序:主要是用于对于密码锁不同状态显示不同内容,例如,当待锁状态显示 P.当开锁状态显示 HOST,当报警状态显示 THIEF 等。定时 1ms 子程序:用于数码管显示延时。定时 10ms 子程序:用于键扫去抖动。3.3 程序设计思路与流程图本密码锁设计采用 4X4 矩阵式键盘来输入

8、数字密码 0-9 和字母密码 A-F,将输入的密码存入 60H-65H,与 40H-45H 单元的原始密码比较,相等则开锁,不等则显示错误,当 3 次输入错误就报警。同时仅开锁状态下用户才可以修改密码。软件系统流程图:8开始学号显示 , 判 K S 1 键闭合读原始密码 , R 6 赋 1 , 调显示子程序数码管显示 P .键扫R 6 内容与 1 是否相等保存键值于 R 4按 F 键确认输入YN开锁R 6 赋 0报警按 D 重新输入存入密码是否满 6 位密码是否相等 是否错误 3 次是 3 键还是 E 键E 键按下3 键按下YNYY修改密码N修改密码是否满 6 位R 6 赋 1YNNYNNY3

9、.1 主程序流程图9开始地址指针 R 1 初始化 、 位控寄存器 R 2 初始化位控右移显示缓存区地址加一位控码送 P 2 口查段控码段控码给 P 0延时 1 毫秒8 位 L E D 数码管显示完否NY返回图 3.2 显示子程序流程图程序见附录104 设计仿真结果及误差分析4.1 设计课题的设计结论及使用说明本设计为基于单片机的密码锁的设计。设计成功实现了以下功能:(1)本设计用 4X4 矩阵式键盘输入密码,完成了密码可以为数字 0-9 和字母 A-F 组合的要求,并在输入密码时做到了保密处理,即每输入一位密码显示“-”符号。(2)仅在开锁状态下才能密码修改,为了使用户更容易记忆密码,采用实际

10、密码显示,不再保密。(3)2 个四位一体的共阳数码管做为显示器,它能在锁关显示 P.;在锁开时显示开锁者主人的身分,即显示英文 HOST;在输入错误后提示错误信息,即显示英文 FAULT;在 3 次输入错误后显示小偷的英文 THIEF。(4)3 次输入错误后将进入报警死循环,指示灯全亮,此时 4X4 键盘任何按键失去作用,即小偷不能关闭警报。这样的结果与设计要求完全相符,本设计成功完成了设计任务。本密码锁使用简单,只要稍加注意 F,E,D,3 按键的双重功能。4.2 设计课题的仿真结果在 Proteus 中的模拟仿真,系统仿真结果如图 4.1-图 4.8 所示。 实现功能:本设计可调整运行两种

11、工作状态:学号显示状态、密码锁运行状态、 。(1)学号显示状态为老师附加要求,复位键即可进入学号显示状态,在此状态下,按 KS1 键可以进入密码锁功能。(2)密码锁状态,在此状态下,密码锁有锁闭,锁开,修改密码,密码错误以及报警四种工作状态11图 4.1 学号显示状态仿真图 4.2 密码锁锁定状态显示图 4.3 输入密码保密状态仿真图 4.4 密码锁开运行状态仿真图 4.5 修改密码运行状态仿真12图 4.6 修改密码明码运行状态仿真图 4.7 密码输入错误运行状态仿真图 4.8 密码锁报警运行状态仿真由仿真效果可以说密码锁设计成功,仿真成功后就可以着手实物的制作。经实物测试,运行结果与仿真结

12、果一致,甚至效果更逼真。4.3 设计课题的误差分析与调整该密码锁运行结果虽然与仿真结果一致,但运行过程存在很多问题,首先,4X4 键盘的灵敏度有待商榷,有时个别键按下时输入 2 或多个相同密码,增加了密码输入错误次数。此外,本密码锁虽然符合设计要求,但与实用生活中密码锁的性能相比有很大差距。比如在密码输入错误时不能后退,即不能擦除已知错误密码,只能让本次输入走向错误的结果。再如密码的修改只是一次性输入确认,这将很大程度上造成重新设定的密码不是用户想要的密码。另外密码锁进入死循环后,任何键不起作用,这将防止小偷再套密码,但同时也使在外的主人打不开锁。由此可见,问题还是很多的,但这些问题都可以解决

13、,比如可以增加退回子程序功能,将错误输入的密码纠正,使本次输入密码正确;另外可以在修改密码时采用 2 次输入相比较的方法以确保修改的密码为用户想要修改的密码,最13后一个问题的解决可以不让程序进入死循环,但仍然一直报警,但小偷将有再套密码的机会。5 课程设计体会及教学建议5.1 设计体会(1)设计过程最深刻的体会是认识了好多的软件,像 Protel99,Proteus 以及Keil。真是让人头疼。都是从零开始,所以学起来吃力。(2)有意思的还是硬件设计,就是做电路板,像什么打孔,腐蚀,焊接都干得津津有味,当千心万苦把数码管弄亮了,感觉很高兴。(3)选题课题时觉得对密码锁有兴趣,但发现很难,好多

14、人都放弃去改课题了,但我兴趣使然,还是一条代码一条代码的敲,花了 3 多天时间才敲出来。付出总有收获,不要放弃才好。5.2 教学建议个人觉得大学这么久,所有老师上课让我觉得课堂有内容的就两个,一个是高一的高数老师,听她课不要费太多心力,耳濡目染。我觉得吴老师也属于润物细无声那种,只要人去了,听了课,考试挂科是很难的。不喜欢上单片机实验课,那几乎不是在上课,希望学校能够给单片机实验添点硬件项目,不要老是在敲代码做仿真。食物能激发人的兴趣,实物也能。14参考文献1 李广弟等.单片机基础M.北京:北京航空航天大学出版社,2007.62马忠梅等.单片机的 C 语言应用程序设计M.北京:北京航空航天大学

15、出版社,2006.11.3 曹巧媛.单片机原理及应用M.北京:电子工业出版社,1997.7.15附录附录 A 电路原理图附录 B PCB 图123456ABCD654321D C B ATitleNumberRevisionSize BDate:21-Aug-2011Shet of File:H:下下下下下下下下下下下下下下下下下下下下下下(20110821).ddbDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P12P123P134P145P156P167P178P039P0138P0237P0336P0435P0

16、534P0633P0732P2021P2122P223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1AT89S52a11 b7c4 d2e1 f10g5 dp3 d4 6d3 8d2 9d1 12LED1 LED1a11 b7c4 d2e1 f10g5 dp3 d4 6d3 8d2 9d1 12LED2R20470R21470R2470R23470R24470R25470R26470R27470P20P21P2P23P24P25P26P27R0 470R012KR02470R03470R04470R05470R06470R07470D1 LEDD2 LEDD3 LEDD4 LEDD5 LEDD6 LEDD7 LEDD8 LEDP0P01P02P03P04P05P06P07VCP0P01P02P03P04P05P06P07 P20P21P2P23P24P25P26P27S1

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

当前位置:首页 > 办公文档 > 其它办公文档

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