1、毕业设计(论文)学 生 姓 名: 赵军成学 号:21专 业 : 应用电子技术系 部 : 电子工程学院设计 (论文 )题目 :用 24C04 与 1602LCD 设计电子密码锁课程设计指 导 教 师 : 陈爱文第 1 页,共 31 页年 月 日目 录.01引言 .22 设计任务和要求 .32.1 系统总结构设计图 .32.2 单元电路设计与参数计算 .42.3 各模块的功能 .42.3.2 矩阵键盘键值读取 .52.3.3 1602 液晶显示模块 .52.4.延时模块 .62.4.2 密码设置模块 .62.4.3 密码比较模块 .72.4.4 改密处理 . .72.5 单片机及其外围电路 .82
2、.6 时钟电路 .92.7 矩阵键盘电路的设计 .102.8 操作面板 .112.9 液晶显示电路 .112.9.2 液晶显示子程序 .132.10 系统软件设计 .142.11 系统主程序 .142.12 初始化及按键识别 .152.13 源程序如下所示: .163 实现与检测 .283.1 原理图及元器件清单 .283.2 综合逻辑功能检测 .29参考文献 .30第 2 页,共 31 页摘要:随着信息技术的不断发展,信息化时代也逐步进入普通家庭,人们对个人的信息安全以及隐私等私密信息的安全要求不断提高,传统的机械锁已经不能满足要求。针对此现状设计一款安全可靠廉价的电子密码锁有着十分重要的意
3、义。本设计以 AT89C51 为主控芯片,带有一个密码输入键盘、外围时钟复位电路、存储单元 24C04、显示单元1602LCD,通过 LED 灯的亮与灭表示电子锁的锁闭与打开。利用单片机灵活的编程设计和丰富的 IO 端口,能实现密码锁的基本功能。用户可以任意设置密码增加了密码锁的保密性,同时如果增加指纹识别、光电识别能进一步增加密码锁的保密性。为了提高可读性采用了 1602 作为显示单元,使用户对密码锁的运行情况一目了然。 关键词:单片机;电子密码锁;24C04;1602LCD; 汇编语言; 程序设计 1 引言 随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,锁是置于可启闭的
4、器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开扣件。传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。盗贼还想方设法利用高科技手段撬门开锁,使广大居民防不胜防。传统锁具都存在致命的弱点:第一、 锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;第二、 锁具制作工艺,技术落后,无法阻止技术手段的开启。目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,主要是锁具的技术原理太过简单。随着科技的进步,
5、锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用,大大提高了主人物资的安全性。目前使用的密码锁种
6、类繁多,各具特色。本文从经济实用的角度出发,采用 AT89S51单机,研制了一款具有防盗自动报警功能的电子密码锁,同时通过 LCD1602增强了可读性。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。 (1)系统设置 6位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码由用户自己设定,在开锁状态下,用户可自行修改密码。 第 3 页,共 31 页(3)具有自动报警功能。一是密码输入错误 3次,则报警;保证了系统的安全性。系统工作时,用户通过按键输入 6位密码,单片机将输入密码与设定密码进行比较,若密码正确,则发出开锁信号,将门打开,系统不报警;若
7、密码不正确,系统提示重新输入密码,重新输入密码的次数不能超过 3次,若 3次输入的密码都不正确,则发出报警信号。本文注重实践和理论相结合,按照单片机初学者的学习过程,由浅入深逐步讲解了设计电子锁的整个设计过程及应用到的编程软件。整个设计报告工分为 4个部分,各部分的安排如下第一部分:是设计电子锁的背景及目的;第二部分:介绍了这个方案的设计任务要求;第三部分:介绍了电子锁的原理图及元器件清单;第四部分:介绍了电子锁的性能测试与分析;2 设计任务和要求设计任务是利用开发板设计一个电子锁;设计要求:自己在自己电脑上写好要连接的电子锁的程序,再在实验室里将已经调试成功的电子锁的程序下载到开发板上,观察
8、并记录开发板上的等的运行情况;如果不是如预期那样运行,要找出原因并进行调试,最后对自己的实验设计进行验收。2.1系统总结构设计图本设计由主控芯片 51单片机,24C04 断电存储电路、单片机时钟电路,LCD1602 显示电路、键盘和开锁电路组成。单片机负责控制整个系统的执行过程。开锁控制电路89S51单片机24C02掉电存储LCD1602显示电路矩阵键盘控制指示电路输入错误锁定键盘延时报警控制电路第 4 页,共 31 页2.2 单元电路设计与参数计算图 2.2-1电子锁的仿真图2.3各模块的功能1键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。2密码存储模块:用于完成掉电
9、存储功能,使修改的密码断电后仍能保存。3蜂鸣器报警电路:用于完成输错密码时候的警报功能。4.晶振电路:用于单片机的起振。5复位电路:完成系统的复位。6显示模块:用于完成对系统状态显示及操作提示功能。7. LED 显示模块:用于辅助报警与输入提示。8开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。第 5 页,共 31 页2.3.2 矩阵键盘键值读取矩阵键盘接 P1口,行接低 4位,列接高 4为。先让行为高,列为低,若有键按下,则所在行为低,得到按键的所在行数,之后令 P1口,行为低,列为高,运用相似的方法得到所按键的所在列数,及确定按键位置,返回键值。由于机械键盘会出现信号抖动的情
10、况,固在发现有按键后延时 5毫秒再次确定,若让有按键,证明按键稳定,否则认为接收到的是抖动信号,不予处理。2.3.3 1602液晶显示模块1602具有三个工作状态控制端,调节他们的高低变化配合数据口的信息,可以显示216的字母或者数字,通过子函数可以实现检测初始化 LCD、写指令到 LCD、LCD 状态、LCD清屏、输入一个字节数据到 LCD、LCD 光标定位到 x处、LCD 光标归位、输入一个字符到LCD、输入一个字符串到 LCD等功能。液晶显示子程序在每次更新显示内容时都会被调用,其流程如图所示。开始清显示写指令入I R字符地址入D P T R字符 = 0 0 H ?写结束字符代码送入P
11、0 口 写 数据入D R地 址+ 1返 回液晶显示子程序流程图每次更新显示内容前,需清显示清空 LCD原先的显示内容,清屏指令的指令码为 01H,即将 P0口赋值 01H,然后写入指令寄存器 IR。LCD1602要显示的内容是根据其控制器内置的字符码表,事先列出要显示的 ASCII字符串。每次送一个字符的 ASCII码入 P0口,然后写入数据寄存器 DR,最后将字符地址加一,第 6 页,共 31 页LCD1602会将写入的 ASCII码对应的字符依次显示出来。由于显示字符串的长度不尽相同,约定每串字符以 00H结尾;程序检测到字符码为 00H时,即停止写入,返回。LCD 显示的内容在下次更新前
12、会一直保持。2.4.延时模块一个程序会有许多地方需要进行延时操作,例如矩阵键盘的消抖延时。一般延时可以通过空循环与中断响应两种方法进行。由于本程序对于时间精度要求不高,故使用相对简单的空循环的方法进行延时。进过实验,单片机每空循环 110次耗时 1ms。故用两次循环,里面一次空循环 110,外面的一次由输入决定循环次数,这样就会进行输入数值时长的延时。2.4.4密码读取模块首先预读入密码的字符数组清零,显示位置清空,然后读取键值。先判断此时是否是在第九个键值输入了数字键值,如果是不响应重新读入,这样可以防止读入字符串溢出,造成密码读取错误。然后通过 switch语句 5处理键值(字母键值),并
13、将读取位置、显示位置进行相关调整;如果输入的是数字有效键值,存入当前指向的字符数组空间,其后将键值变量清零准备读取下一个键值。进行循环读取,直到成功读取 8位密码或者因为输入了确定键提前完成读取工作。2.4.2密码设置模块在系统进行初始化时,要求设置密码。整体思路是要求读取一组密码,保存在临时空间,然后再次读取密码,如果相同,证明设置成功,将新密码覆盖进标准密码数组里,如果两次的密码不同,显示错误信息,要求重新输入。第一次读入密码第二次读入密码保存密码,提示成功判断两次密码相同不相同图 2.3.5密码设置模块第 7 页,共 31 页2.4.3 密码比较模块该模块将输入密码字符串与设定密码字符串
14、比较。如果相同,执行开锁动作并将输入错误次数清零;如果不同,累计错误次数,如果是第三次输入错误,系统锁死并发出声光告警;如果小于三次,显示密码错误信息,返回密码输入环节。逻辑框图如图 2.3.6图 2.3.6密码比较模块2.4.4改密处理.如图,可以看出,改密键的处理流程跟开锁键类似,都需检查密码是否正确,错误的话,提示重新输入,只有输入密码正确才可以进行改密。然后再按更改键,密码更改程序被调用,进而更改密码,此过程,LCD 都会显示信息。模块启动验证密码判断错误次数显示错误信息并返回发出报警 系统锁死发出报警 系统锁死连续错误次数小于三次连续错误次数小于三次密码正确密码错误第 8 页,共 3
15、1 页开始密码 正确?提示输入新密码密 码错误 重 新输入再次输入新密码对 比两次输 入相同更 改成功否否是改密流程图2.5单片机及其外围电路复位电路第 9 页,共 31 页2.6时钟电路时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,C 1C 2Y 1X T A L 1X T A L 2