1、-_嵌入式系统项目实践课程报告题 目 基于单片机的电子密码锁设计 团队成员 专 业 网络工程 指导教师 2014 年 10 月 9 日嵌入式系统项目实践2目录摘要: .31 绪论 .41.1 选题背景 .41.2 研究意义 .41.3 内容与结构 .42 系统整体设计方案 .42.1 相关知识介绍 .42.1.1 AT89C51 引脚功能描述 .42.1.2 LCD1602 性能描述 .52.1.3 24C04 性能描述 .62.2 系统总体设计 .63 硬件电路 .63.1 单元电路设计 .73.1.1 单片机最小系统 .73.1.2 1602LCD 数码管显示电路 .73.1.3 矩阵键盘
2、电路 .83.2 系统总硬件电路图 .94 软件模块设计 .94.1 系统开发工具使用 .94.2 系统开发流程图 .124.3 系统软件设计模块 .124.3.1 键盘扫描软件设计 .124.3.2 24C04 读写操作的软件设计 .134.3.2 24C04 读写操作的软件设计 .134.3.4 修改密码软件设计 .145 结果分析 .145.1 电子密码锁开锁和上锁 .155.2 修改电子密码锁密码 .15结论 .16参考文献 .17嵌入式系统项目实践3附录: .18嵌入式系统项目实践4基于单片机的电子密码锁设计摘要:随着信息技术的不断发展,信息化时代也逐步进入普通家庭,人们对个人的信息
3、安全以及隐私等私密信息的安全要求不断提高,传统的机械锁已经不能满足要求。针对此现状设计一款安全可靠廉价的电子密码锁。该设计以 AT89C51 为主控芯片,带有一个密码输入键盘、外围时钟复位电路、存储单元 24C04、显示单元 1602LCD,通过 LED 灯的亮与灭表示电子锁的锁闭与打开。利用单片机灵活的编程设计和丰富的 IO 端口,能实现密码锁的基本功能。为了提高可读性采用了 1602 作为显示单元,使用户对密码锁的运行情况一目了然。该系统经软硬件测试,达到要求,系统运行良好。 关键词:单片机;AT89C51;1602LCD;24C04;电子密码锁嵌入式系统项目实践51 绪论1.1 选题背景
4、在人们的生活中,财产与人身安全是被一直关注的问题,于是“锁”也就与人们的生活密不可分了,无论在何地,我们都能看到“锁”的身影,但随着社会的发展,传统的机械锁越来越不能满足人们的生活需求了,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。为了应对这种情况,电子密码锁也就被发明出来了,相比传统的机械锁,电子密码锁具有更高的安全性。1.2 研究意义电子锁可以在日常生活和现代办公中、住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用,大大提高了主人物资
5、的安全性。此次项目实践选择基于单片机的电子密码锁设计题目,采用存储单元 24C04 和显示单元1602LCD 来进行设计。单片机技术是智能化检测与控制领域应用非常普及并且具有很大潜力的技术。论文阐述一个基于单片机的液晶显示电子密码锁的设计与实现。系统采用美国Atmel 公司的 AT89C51 单片机作为系统核心,用串行的 24C04 作为存储器,液晶显示器LCD1602 作为输出设备显示系统提示信息,4*4 矩阵薄膜键盘作为输入设备,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用汇编语言编写。设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公用锁需求,
6、具有一定的实用价值.而且使用 AT89C51 单片机价格相对低廉,成本较低,便于推广。1.3 内容与结构本系统设计实现一个基于单片机控制的电子密码锁。该系统能够实现上锁、开锁、修改开锁密码和报警功能,用串行的 24C04 作为存储器,液晶显示器 LCD1602 作为输出设备显示系统提示信息。该文档主要包括五个部分,第一部分绪论,主要包括选题背景、研究意义和内容与结构;第二部分系统整体设计方案,主要包括相关知识介绍和系统总体结构设计;第三部分硬件电路,主要包括单元电路设计和系统总硬件电路图,其中单元电路设计包括单片机最小系统模块,24C04 存储电路模块, 1602LCD 数码管显示电路和矩阵键
7、盘电路设计模块;第四部分软件模块设计,主要包括系统开发工具使用和系统主要开发流程和各软件设计模块;第五部分结果分析,主要包括测试过程和测试结果分析。2 系统整体设计方案2.1 相关知识介绍2.1.1 AT89C51 引脚功能描述AT89C51 是这几年我国非常流行的单片机,由美国 ATMEL 公司生产,是低电压,高嵌入式系统项目实践6性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和128 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中
8、央处理器(CPU)和 Flash 存储单元。其中的 40 个引脚大致可以分为 4 类:电源、时钟、控制和 I/O 引脚。(1)电源 :VCC 为芯片电源端,一般为+5V,GND 为接地端;(2)时钟 :XTAL1 为晶体振荡电路的反相输入端 ,XTAL2 为晶体振荡电路的输出端;(3)控制线 :MCS-51 单片机的控制线有 4 根,其中 3 根是复用线,具有两种功能。ALE/PROG 为地址锁存允许/ 编程脉冲信号端 ,PSEN 为外部 ROM 读选通信号 ,RST 为复位引脚 ;EA/VPP 为内外 ROM 选择/EPROM 编程电源 ;(4)I/O 引脚 :MCS-51 单片机共有 4
9、个 8 位并行 I/O 端口,共 32 个可编程 I/O 引脚。 其外形引脚如图 2-1 所示:图 2.1 AT89C51 实物图(左)及其引脚图(右)2.1.2 LCD1602 性能描述LCD1602 是工业字符型液晶,能够同时显示 16x02 即 32 个字符,是一种专门用来显示字母、数字、符号等的点阵型液晶模块,字符型 LCD 通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是背光电源线 VCC(15 脚)和地线 GND(16 脚),其控制原理与 14脚的 LCD 完全一样 6。LCD 引脚图如下图 2.6 所示:图 2.2 LCD1602 功能引脚图嵌入式系统项目
10、实践72.1.3 24C04 性能描述24C04 是采用铁电技术生产的 EEPROM,掉电后数据不丢失。相比传统的 EEPROM 具有寿命长,读写速度快的优点,采用 I2C 总线与外界通讯,容量应该是 512 字节。主要用于存储掉电后需要保存的数据。24C04 存储电路如图 2.3 所示:图 2.3 24C04 存储电路2.2 系统总体设计此设计的主要内容与任务如下:(1)设计一单片机控制的智能报警系统,通过按键输入密码,并用 LCD 显示相关信息 ;(2)密码可由键盘设置,键盘有数字键、还有确认按键; (3)密码可通过按键修改; (4)输入字符时,LCD 上显示“*”号,若密码正确,则可以修
11、改密码; (5)系统设置默认初始密码,且可以修改,修改后系统按新密码进行操作。依据设计的要求,可以得到系统软件模块图,如图 2.4 所示:图 2.4 系统的软件模块图3 硬件电路用单片机做主机运算器,能进行密码修改和管理员密码设置,可复位,设置有退出键、基于单片机的电子密码器矩阵键盘输入模块LCD显示模块密码存储模块蜂鸣器报警电路模块时钟震荡电路模块嵌入式系统项目实践8管理员模式键、设定键、删除键和确定键。LCD 在开锁前显示 you password,然后根据密码正确与否显示出相应的提示。本设计初始密码为 123456,密码输入正确后,可以修改密码,密码个数可以是 0-9 的数字。采用 24
12、C04 存储密码,有掉电保护功能,本设计采用4*4 的矩阵键盘作为输入,AT89C51 单片机作为主机, 二极管指示灯和喇叭组成发声系统。根据系统拟达到的总体功能得到系统整体框图如图 3.1 所示:图 3.1 系统整体框图3.1 单元电路设计要实现基于单片机电子密码锁的功能。硬件设计包括单片机最小系统的设计,1602LCD 数码管显示电路设计,矩阵键盘电路设计和系统总电路的设计。3.1.1 单片机最小系统单片机最小系统都是由组成单片机应用系统所必需的一些部件和电路构成的。无论应用系统要完成什么功能,这些部件和电路都是必须的。一个单片机应用系统至少有:单片机芯片、保证单片机正常工作必须要有电源、
13、产生时钟信号的晶体振荡器,还需要能使单片机复位的电路等。单片机最小系统如图 3.2 所示:图 3.2 单片机最小系统3.1.2 1602LCD 数码管显示电路1602LCD 液晶显示器是一种字符点阵式 LCD 显示器模块。它不仅能够显示阿拉伯数字,AT89C51键盘输入掉电存储电路LCD 显示蜂鸣器报警与开锁电路嵌入式系统项目实践9而且还能够显示特殊的符号,以及英文字母(即英文语句提示信息) ,因此其用途比较灵活,应用比较广泛,当然价格也较高。单片机 AT89C51 从接收器得到的数据运算程序后,结果传送给 1602LCD 数据端并在液晶屏上显示出。显示电路如图 3.3 所示: 图 3.3 1
14、602LCD 数码管显示电路3.1.3 矩阵键盘电路矩阵式键盘又叫行列式键盘。用 I/O 接口线组成行、列结构,键位设置在行、列的交点上。例如本设计 4*4 的行、列结构可组成 16 个键盘,比一个键位用一根 I/O 口线的独立式键盘少了一半的 I/O 接口线。而且键位越多,情况越明显。因此,在按键比较多时,往往采用矩阵式键盘。矩阵式键盘的按键识别方法 有“行扫描法” 。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍过程如下。 (1) 判断键盘中有无键按下 将全部行线 Y0-Y3 置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位
15、于低电平线与 4 根行线相交叉的 4 个按键之中。若所有列线均为高电平,则键盘中无键按下。 (2)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。矩阵键盘电路如图 3.4 所示:嵌入式系统项目实践10图 3.4 矩阵键盘电路图3.2 系统总硬件电路图各模块组合之后的总体硬件电路图如下图 3.5 所示:图 3.5 总体硬件电路图 4 软件模块设计4.1 系统开发工具使用本系统使用 keil 软件,打开软件后的界面,如下图 4.1 所示,图 4.1 软件运行界面