1、 课课 程程 设设 计计 课程名称 单片机原理单片机原理 题目名称 密码锁密码锁 学生学院 信息工程 专业班级 学 号 学生姓名 指导教师 2012 年 6 月 8 日 密码锁密码锁 一设计构思:一设计构思: 单片机控制的密码锁设计。 STC89C52 单片机 P1 引脚外接独立式按键 S1-S8, 分别代表 数字键 0-5、确定键、取消键。单片机从 P3.0-P3.3 输出 4 个信号,分别为 1 个电磁开锁驱动 信号和密码错误指示、报警输出、已开锁指示信号,分别用发光二极管 L1-L4 指示。P3.4 接一有源蜂鸣器,用于实现提示音。 (1)初始密码为 123450,输完后按确定键开锁,取
2、消键清除所有输入,每次按键有短 “滴”声按键提示音。 (2)密码输入正确后,输出一个电磁锁开锁信号与已开锁信号,并发出两声短“滴”声 提示。4 秒后开锁信号与已开锁指示清零。 (3)密码输入错误时,发出一声长“滴”声错误指示提示音,并密码错误指示灯亮,三 次密码错误时,发出长鸣声报警,并密码错误指示灯亮,报警指示灯亮,此后 15 秒内无法 再次输入密码,15 秒过后,清除所有报警和指示。 (4)5 秒内无任何操作后,清除所有输入内容,等待下次输入。 二系统设计:二系统设计: (1)分析构思要求。写出系统整体设计思路 根据题目的要求,需要考虑如下几个任务:按键的输入,密码的判断,密码输入正确或
3、错误的计时、输出信号的控制等。 键盘的输入:由于需要输入 6 个数字作为密码,先要判断按键时数字键还是功能键,若 判断为数字键按下, 则需要将每次键盘的输入内容依次暂存在一个数组中。 在每次按键输入 时,需要启动定时器实现待机计时(5 秒) 。若 5 秒内没有输入内容则清除已输入的内容。 密码的判断和计时:在按下确认键之后,要将输入的内容与初始密码核对,如果密码正 确,输出相应的指示,同时还要启动定时器实现 4s 的计时。如果密码错误,错误计数变量 增 1,同时输出密码指示信号,若错误次数超过 3s,则输出报警等信号,同时启动定时器实 现 15 秒的计时。 输出信号的控制主要根据按键输入与密码
4、的核对情况来决定。 整体程序设计思想: 程序分为主程序和中断服务程序两个主要部分, 主程序完成变量和单片机特殊功能寄存 器的初始化后,进入一个循环结构。在循环中,首先判断有无按键按下,若有按键则判断是 否数字键还是功能键, 根据按键的情况执行相应的功能。 然后根据密码是否正确的判断情况, 执行相应的操作。循环中最后将需要显示的内容通过动态扫描在数码管上显示。 中断服务程序只要实现三个状态的计时,待机时需要计时 5 秒,密码正确需要计时 5s, 密码 3 次输入错误需要计时 15 秒。 当前处于何种计时, 由主程序根据密码判断结果来决定。 (2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 采用 MCS51 系列单片机 At89S51 作为主控制器,外围电路器件包括数码管驱动、蜂鸣 器的输出驱动、独立式键盘以及发光二极管的输出等。 数码管驱动采用 2 个四联共阴极数码管显示, 由于单片机驱动能力有限, 采用 74HC244 作为数码管的驱动。在 7