基于C语言STC89C52单片机电子密码锁的设计

上传人:笛音 文档编号:36295788 上传时间:2018-03-27 格式:DOC 页数:34 大小:364.18KB
返回 下载 相关 举报
基于C语言STC89C52单片机电子密码锁的设计_第1页
第1页 / 共34页
基于C语言STC89C52单片机电子密码锁的设计_第2页
第2页 / 共34页
基于C语言STC89C52单片机电子密码锁的设计_第3页
第3页 / 共34页
基于C语言STC89C52单片机电子密码锁的设计_第4页
第4页 / 共34页
基于C语言STC89C52单片机电子密码锁的设计_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基于C语言STC89C52单片机电子密码锁的设计》由会员分享,可在线阅读,更多相关《基于C语言STC89C52单片机电子密码锁的设计(34页珍藏版)》请在金锄头文库上搜索。

1、- 1 -基于基于 C C 语言语言 STC89C52STC89C52 单片机电子密码锁的设计单片机电子密码锁的设计摘要摘要:本设计阐述通过 Proteus 软件成功仿真的电子密码锁的实现过程, 选用 STC89C52 单片机为核心的系统来实现按键输入、开锁和密码识别。采用具 备 I2C 总线接口的 E2PROM 芯片来完成密码的存储,通过 1602A 液晶显示器提示 程序运行状态和使用步骤,利用蜂鸣器模拟报警,发光二极管模拟锁的开关。 该系统用 C 语言编写程序,与汇编语言相比具有更好的移植性和可读性,便于 修改和增减功能。 关键词关键词:Proteus;密码锁;单片机;C 语言Design

2、Design ofof ElectronicElectronic CodeCode LockLock UsingUsing STC89C52STC89C52 MCUMCU BasedBased onon C C LanguageLanguageAbstractAbstract: The paper introduces the implementation of the electronic code lock which was successfully simulated by Proteus. It uses STC89C52 single-chip microcomputer to a

3、chieve key input, the unlocking and identification of the code. It adopts I2C bus based E2PROM chip to complete the codes storage, using LCD 1602A to prompt the programs running state and working procedures, adopting buzzer to imitate the alarm and LED to imitate the switch. It is convenient to modi

4、fy and add functicccon by using C language program, which is more transplantable and reliable compared to assembly language.KeywordsKeywords: Proteus; code lock; single-chip microcomputer; C language- 2 -一、一、 前言前言随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民 最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高, 即要求可靠地防盗,又要使用方便。传统的

5、门锁既要备有大量的钥匙,又要担 心钥匙丢失后的麻烦。随着单片机的问世,出现了电子密码锁,其保密性高, 使用灵活性好,安全系数高,故受到广大用户的青睐。 电子密码锁通常使用 ARM 和单片机控制1,单片机相对 ARM 实现较为简单,功 能较为完善,因此使用单片机控制较多。用单片机控制的密码锁常使用汇编语 言编写程序,数码管做显示器 2。但本设计使用移植性及可读性强的 C 语言3- 5编写;同时采用显示清楚、功率消耗小而且寿命长的 1602A 液晶显示器。从经济实用的角度出发,采用 STC89C52 单片机设计出一种具有密码设置、报警等 功能的电子密码锁,并通过 Proteus6软件成功地进行了仿

6、真。二、二、 总体方案设计总体方案设计2.1 方案论证与比较方案一:以 STC89C52 单片机为电子密码锁系统核心,使用 4*4 矩阵键盘作 为数据输入方式,驱动 1602A 显示器提示程序运行过程和开锁的步骤,利用 AT24C02 芯片实现掉电存储。图 1 为单片机控制密码锁的系统原理框图。STC89C52 单片机AT24C02 存储芯片矩阵 键盘 控制LCD 1602A蜂鸣器提示电路电源模块LED 密码校验提示图 1 单片机控制密码锁的系统原理框图 方案二:以74LS112双JK触发器构成的数字逻辑电路控制方案,如图2。- 3 -输入按扭开关组输入锁 存电路密码存 储电路开锁控 制电路机

7、械动 作构件5 秒定时 电路20 秒定 时电路声光指 示电路图2 数字逻辑控制方案电子密码锁原理框图2.2 方案选择由于利用单片机灵活的编程设计和强大的 I/O 端口,及其控制的准确性, 不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能,故选 用方案一。三、三、 单元模块设计单元模块设计3.1 硬件支持使用的元器件有:核心芯片 STC89C52、存储芯片 AT24C02、液晶显示 1602A、44 矩阵键盘、报警蜂鸣器、发光二极管和三极管。3.2 功能单元模块设计3.2.1 开锁机构 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目 的。如图 3 所示,为密码锁开

8、锁电路原理图。 当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路, 然后驱动电磁锁,达到开门的目的。本次设计中,基于节省成本考虑,用发光 二极管代替电磁锁,信息通过 LCD 显示,并利用蜂鸣器和二极管声光指示。其 中,绿发光二极管亮,表示开锁;否则,表示密码输入错误并开启报警电路。- 4 -开锁驱动电路STC89C52 单片机密码 正确超次锁定电磁锁是否图 3 密码锁开锁电路原理图3.2.2 矩阵键盘设计电路 每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按 键来连通,利用这种行列式矩阵结构只需要 M 条行线和 N 条列线,即可组成 具有 MN 个按键的键盘。由于

9、本设计中要求使用 16 个按键输入,为减少键 盘与单片机接口时所占用的 I/O 线的数目,故使用矩阵键盘。本设计中,矩阵 键盘行线和单片机 P1.0-P1.3 相连,列线与单片机 P1.4-P1.7 相连。矩阵键盘 设计电路图,如图 4 所示。 键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高 电平,扫描列线电平状态,为低电平即表示该键按下。1234567890输入密码确认更改密码*图 4 矩阵键盘设计电路图- 5 -3.2.3 声音提示电路设计 声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的 频率发出各种不同的声音,这样可以根据系统要求在密码出入正确和密码输

10、入 错误时发出不同的声音提示,已达到报警的要求。蜂鸣器电路,如图 5 所示。图 5 蜂鸣器电路3.2.4 显示模块设计 本设计中,显示电路采用 1602A 液晶显示器显示7。如下所示,图 6 为 1602A 液晶显示器的接口示意图,表 1 为接口说明。图 6 1602A 液晶显示器的接口示意图表 1 接口说明 管脚序名称电平功能描述 1VSS0V接地 2VCC5.0V电源输入 3V0LCD 驱动电压输入4RSH/L寄存器选择:RS=H,选择数据寄存器; RS=L,选择指令寄存器 5R/WH/L读写信号线:R/W=H,读操作;R/W=L,写操作 6EH,HL使能信号 7DB0H/L数据线 8DB

11、1H/L数据线 9DB2H/L数据线- 6 -10DB3H/L数据线 11DB4H/L数据线 12DB5H/L数据线 13DB6H/L数据线 14DB7H/L数据线 15BLA5.0V背光电源正极 16BLK0V背光电源负极 本设计中液晶串口一共用到 11 根导线与单片机相连, 具体连接情况如表 2 显示模块与 MCU 连接说明所示。 表 2 显示模块与 MCU 连接说明 序号1602A 液晶显示器引脚STC89C52 单片机引脚 1RS 引脚P2.5(A13) 2R/W 引脚P2.6(A14) 3E 引脚P2.7(A15) 4D0 引脚P0.0(AD0) 5D1 引脚P0.1(AD1) 6D

12、2 引脚P0.2(AD2) 7D3 引脚P0.3(AD3) 8D4 引脚P0.4(AD4) 9D5 引脚P0.5(AD5) 10D6 引脚P0.6(AD6) 11D7 引脚P0.7(AD7)3.2.5 AT24C02 掉电存储单元的设计 本设计中掉电存储单元采用 AT24C02 外部存储器8-9,其作用是在系统电 源断开的时候,存储当前设定的密码数据。 AT24C02 是一个 2K 位串行 CMOS E2PROM,内部含有 256 个 8 位字节, 含一个 16 字节页写缓冲器 ,具有写保护功能。 其采用两线串行的总线和单 片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10

13、Ua(5.5V),芯 片内的资料可以在断电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使 用方便。如下所示,图 7 为 AT24C02 管脚示意图,表 3 为 AT24C02 管脚说明。A0A1A2GNDSDASCLWPVCC12348765C02图 7 AT24C02 管脚示意图 表 3 AT24C02 管脚说明- 7 -管脚名称功能管脚名称功能 A0 A1 A2器件地址选择SDA串行数据/地址 SCL串行时钟信号WP写保护 VCC1.8V-6.0V 工作电压VSS接地本设计中,AT24C02 的 SCL 和 SDA 引脚接上拉电阻后与单片机的 P3.4(T0)和 P3.5

14、(T1)脚相连,其电路图如图 8 所示。图 8 AT24C02 掉电存储单元设计图4 4、 程序设计与系统仿真程序设计与系统仿真4.1 模块介绍与硬件电路相关联,本系统软件包括主程序模块、密码比较判断模块、键 盘扫描模块、修改密码模块、1602A 液晶显示模块等10。系统程序流程如图 9 所示。- 8 -开始系统初始化调用 E2PROM 密码显示主界面输入密码判断密码确定密码开锁模拟声光锁定键盘YN返回Y判断次数 N超过 N 次未超过 N 次再次输入密码密码设置完毕N设置新密码Y按键N判断按键值返回主界面NY设 置 解 码 次 数产 生 随 机 密 码输 入 密 码N=0x84N=0x82N=

15、0x11图 9 系统程序流程图 4.1.1 主程序模块- 9 -主程序主要用于定义全局变量,给全局变量赋初值,初始化 E2PROM,启动 定时器以及从 AT24C02 中读取密码,为整个程序提供数据;检测按键;调用显 示等功能。4.1.2 密码比较判断模块 该模块的功能是将键盘输入的密码利用 if 语句与设定的密码进行逐个比较, 若密码完全正确则开锁;若不正确,则开启报警电路,复位后重新输入密码。 其密码输入和比较判决流程图如图 10 所示。输入密码核对键盘锁定,开启报警电 路开锁,灯亮,可密码修改NY复位图 10 密码输入和比较判决流程图4.1.3 键盘扫描模块 键盘使用矩阵式键盘,由行和列

16、组成,CPU 对所有键盘进行监视,从而实 现逐列扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、 判断闭合的键是否释放等功能。如图 11 所示,为键盘扫描流程图。- 10 -开始延时去抖动计算输入键值键值送入单片机有按键输入?有按键输入?有按键输入?返回NNYY图 11 键盘扫描流程图 4.1.4 修改密码模块 在密码输入正确情况下,可以按下“重置密码”对密码进行重新设置,每 设定一位就将密码送给 AT24C02 存储起来,当设置 6 位密码完毕后,系统将自 动跳到程序开始,调用新设置的密码。图 12 为修改密码流程图。- 11 -开始输入原密码密码比较比较正确?输入新密码再次输入新密码调用 AT24C02 中密码比较正确修改成功返回菜单键盘锁定,启动报警电 路复位YN图 12 修改密码流程图4.1.5 1602A 液晶显示模块 此模块包括液晶初始化、命令的输入等。4.2 Proteus 仿真电路- 12 -图 13 电子密码锁仿真图五、系统功

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

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