毕业设计论文_基于51单片机控制的电子密码锁设计内容摘要:

平状态读入累加 起 A 中。 如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为 1。 判断键盘中那一个键被按下使通过将列行线逐列置低电平后,检查行输入状态来实现的。 方法是: 依次 给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为 1,则所按下的键必在此列,而且是与零电平行线相交的交点上的那个 键。 按键操作面板如图所示。 共计数字键 10 个,功能键 6 个。 键盘上还有 3 个指示灯和一个蜂鸣器。 11 按键操作面板示意图 10 个数字键用来输入密码,另外 6 个功能键分别是: CLR、 EN、 F FF F4。 其中 CLR 键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。 EN 键的功能是确认输入的密码。 F1 是管理模式切换键,当用户不小心三次输入密码都没有正确,键盘被锁定,这个时候就可以启动管理模式,使用管理员的密码来开门。 F2 是用来进入修改密码的状态。 F3 用来关闭显示器,以来可以节省电量,另外也可以防止不法分子偷窥密码。 F4 用来做电铃。 上面的 3 个指示灯 L L L3 是用来指示操作的状态: L1 锁定及输入指示状态灯,正常的情况下显示红色,当键盘动作的时候, L1 灯开始闪动, 当键盘处于锁定状态时,指示灯也显示红色。 L2 开门指示灯,当用户在规定的时间内正确的输入了密码,此灯转变为绿色,表示开门,否则不显示。 L3 是管理员状态指示灯,当按下 F1 后,指示灯自动点亮。 面板上还有一个蜂鸣器,其中一个功能是用来指示操作的按键是否在成功的按下;另外一个功能是当用户输入密码错误的次数超过了 3 次,鸣笛以示报警。 本系统设计的显示电路是为了给使用者以提示而设置的。 考虑到为了节约单片机的口资源,本系统的显示采用串行显示的方式,只使用单片机的 两个串行口,就可以完成单片机的显示功 能,显示电路的电路原理图如 图所示。 12 电路设定:当程序检测在 5 分钟内没有按键操作的时候,就关闭显示。 这个功能使用程序来实现的,一旦没有按键动作就启动一个定时器,检测在 5 分钟内没有按键动作的时候,启动一个程序,挂壁显示,这样可以达到节省电能的目的。 从单片机串口输出的信号先送到左边的移位寄存器( 74HCL64),由于以为脉冲的作用,使数据向右移,达到显示的目的。 移位寄存器 74HCL64 还兼作数码管的驱动,插头 1( header1)接电源,插头 2( header2)接数据和脉冲输出端。 电路中的三个整流管 D1~D3 的作用是降低数码管的工作电压,增加其使用寿命。 单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位。 复位的作用是使中央处理器 CPU 以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作。 AT89C51 单片机的复位靠外部电路实现信号由 RESET( RST)引脚输入,高电平有效,在震荡器工作时,只要保持 RST 引脚高电平两个机器周期,单片机即复位。 复位后, PC 程序计数器的内容为 0000H,片内 RAM 中内容不变,复位电 路一般哟哟上电复位,手动开关复位和自动复位电路 3 种: 13 单片机复位电路 由于设计所需,我们在这里选用手动式复位电路。 由外部扩展 M24C01 设定功能键控制手动式复位电路。 为了防止情况的发生,本电路后备了 UPS 的电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电池电路组成。 电源电路图如 图 所示。 市电供电电路 220V 市电通过变压器降压成 12V 的交流电,再经过整流桥整流, 7805 稳压到 5V 送往电子切换电路,由于本电路功耗较少,所以选用 10W 的小型变压器。 由 R8, R9, R6, R7 及 IC14 构成电压比较器,正常情况下, V+VIC14 输出高电平,继电器的常闭触点和市电相连;当市电断开, V+VIC14 输出高电平,由T4, T3 构成的达林顿管使继电器 J 开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换, 保证电子密码锁的正常工作(视电池容量而定持续时间)。 其电路图如 图 所示: 14 停电检测及电子开关切换电路 T1, T2 构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中 D1亮为正在充电, D2 为工作指示。 由 R4, R5, T1 构成电压检测电路,蓄电池电压低,则 T1, T2 导通,实现对其充电;充满后, T1, T2 截止,停止充电,同时 D1 熄灭,电路中 C4 的作用是滤出干扰信号。 其电路图如 图 所示: 蓄电池自动充电电路 15 第五章 程序调试 调试本程序需要用到 KEIL C51,及 51 开发板一块及其配套的下载烧录软件 C51简介 Keil C51 是美国 Keil Software 公司出品是 51 系列兼容单片机 C 语言软件开发系统,与汇编语言相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后在使用 C 来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。 另外重要一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51生成目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。 C51 工具包的整体结构: uVision 与 Ishell 分别是 C51 for Windows for Dos 的集成开发环境( IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。 开发人员可用 IDE 本身或其他编辑器编辑 C 或汇编源文件。 然后分别由 C51及 A51 编译器编译生成目标文件( .OBJ)。 目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件( .ABS)。 ABS 文件由OH51 转换成标准的 Hex 文件,以供调试器 dScope51 或 tScope51 使用进行源代码级调试, 也可由仿真器使用直接对目标板进行调试,也可直接写入程序存贮器如 C51 简介 M 中。 调试过程 首先打开 KEIL C51 主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成 51 单片机可执行的 HEX 文件。 然后用 51 开发板相匹配的烧录软件把 HEX 文件写入单片机。 16 图 keil c51 控制介面 图 单片机烧录软件介面 、仿真与实现 系统的设计是不可能一次酒完全实现的,刚开 始时有可能一点现象都没有,这就需要经过不断的调试、分析、再调试、再分析等步骤来逐步解决遇到的各个问题。 调试包括硬件和软件部分的调试: 硬件部分:首先应对制作完成的硬件电流进行检测,主要检查电路是否有短路、断路的地方。 检测时应该分块有序的进行,一面有漏检的地方。 若发现电路有问题,应及时修改,检查到一处便修改一处,以免忘记修改影响调试,耽误时 17 间。 软件部分:首先是对所编的程序用编译软件进行编译,只有通过编译的程序才能加载到控制器中,进行仿真调试。 编译有问题,则要根据编译器给出的提示进行修改。 其次是仿真,仿真是 将程序加载到仿真器中,对硬件电路进行在线调试,仿真的好处是可以边调试边修改,大大简化了调试流程。 在仿真调试过程中,若出现问题,就应该将整个系统按功能分成几块,然后分块调试,一步一步的解决问题。 当各个功能块都能实现之后,就可以将整个功能块组合,然后进行综合调试,整个系统得以实现。 本系统使用 Proteus 仿真软件进行的仿真,仿真线路的接法与主电路的接法完全一样,见图 所示: 图 仿真电路图 18 第六章 软件设计 的总统思想 一个应用系统要完成各项功能,首先必须有较完善的硬件作保证。 同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多有硬件完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。 因此充分利用其内部丰富的硬件资源和软件资源,采用与51系列单片机相对应的51汇编语言和结构化程序设计方法进行软件编程。 程序设计语言有三种:机器语言、汇编语言和高级语言。 机器语言是机器唯一能“懂”的语言,用汇编语言或高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(成为目标程序),计 算机才能“看懂”。 然后逐一执行。 高级语言是面对问题和计算过程的语言,它可以通过各种不同的计算机,用户编程时不必仔细了解所用的计算机的具体性能与指令系统,而且语句的功能强,常常一个语句已相当于很多条计算机指令,于是用高级语言编制程序的速度比较快,也便于学习和交流,但是本系统却选用了汇编语言。 原因在于,本系统是编制程序工作量不大、规模较小的单片机微机控制系统,使用汇编语言可以不用像高级语言那样占用很多的存储空间,适合于存储容量较小的系统。 各子程序设计 1 键盘扫描子程序 键盘扫描流程图如图 19 图 键盘扫描流程图 键盘扫描子程序如下: L2: MOV R3, OF7H MOV R1,OOH L3: MOV A,R3 MOV P1,A MOV A,PI MOV R4,A SETB C MOV R5,04H L4: RLC A JNC KEYIN INC R1 DJNZ R5,L4 CALL DISP MOV A,R3 SETB C RRC A MOV R3,A JC L3 20 JMP L2 2 LED 显示子程序 LED 显示流程图如图 图 LED 显示流程图 LED 显示子程序如下: DISP。 MOV R0.45H DISP:MOV A,@R0 ADD A.50H MOV P0,A CALL DELAY DEC R0 MOV A,@R0 ADD A,40H MOV P0,A CALL DELAY DEC R0 MOV A,@R0 ADD A,30H MOV P0,A CALL DELAY DEC RO MOV A,@R0 ADD A,20H MOV P0,A CALL DELAY DEC R0 MOV A,@R0 ADD A,10H 21 MOV P0,A CALL DELAY DEC R0 MOV A,@R0 ADD A,00H MOV P0,A CALL DELAY RET 3 密码比较和报警程序 密码比较和报警流程图如图 所示 图 密码比较和报警流程 密码比较和报警程序: COMP: MOV R1,# 45H MOV R0,#3 5H MOV R2,# 06H C1: MOV A, @R1 XRL A,@R0 JNZ C3 DEC R1 DEC R0 DJNZ R2,C1 CLR 22 MOV R2,200 C2: MOV R6,248 DJNZ R6,$ DJNZ R2,C2 C3: INC R5 MOV A,R5 MOV R5,A CJNE R5,03H,C4 CLR MOV R5,00H C4: JMP START 键盘扫描流程图 23 整体程序流程图 24 设计总结与展望 实践是检验真理的唯一标准,当然也是检验 学习的唯一标准。 在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识 在实践中来检查。 在毕业设计职期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发挥和巨大的收获,现将工作总结如下:思想上,学会。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。