具有掉电保护和时钟显示的LCD显示密码锁.docx

上传人:b****3 文档编号:4634220 上传时间:2022-12-07 格式:DOCX 页数:24 大小:416.70KB
下载 相关 举报
具有掉电保护和时钟显示的LCD显示密码锁.docx_第1页
第1页 / 共24页
具有掉电保护和时钟显示的LCD显示密码锁.docx_第2页
第2页 / 共24页
具有掉电保护和时钟显示的LCD显示密码锁.docx_第3页
第3页 / 共24页
具有掉电保护和时钟显示的LCD显示密码锁.docx_第4页
第4页 / 共24页
具有掉电保护和时钟显示的LCD显示密码锁.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

具有掉电保护和时钟显示的LCD显示密码锁.docx

《具有掉电保护和时钟显示的LCD显示密码锁.docx》由会员分享,可在线阅读,更多相关《具有掉电保护和时钟显示的LCD显示密码锁.docx(24页珍藏版)》请在冰豆网上搜索。

具有掉电保护和时钟显示的LCD显示密码锁.docx

具有掉电保护和时钟显示的LCD显示密码锁

 

课程设计报告

LCD显示电子密码锁设计

(TheDesignofLCDElectronicPassword-Lock)

 

学院电气与控制工程

专业测控技术与仪器

班级0803班

成员江文涛

学号0806070313

日期2011-7-15

摘要

单片机技术是智能化检测与控制领域应用非常普及并且具有很大潜力的技术。

论文阐述一个基于单片机的液晶显示电子密码锁的设计与实现。

系统采用美国Atmel公司的AT89C52单片机作为系统核心,液晶显示器LCD1602作为输出设备显示系统提示信息,时钟芯片DS12C887,温度显示器18B20,4*4矩阵薄膜键盘作为输入设备,CMOS串行E2PROM存储器AT24C02作为数据存储器,无线通信装置,配合蜂鸣器、继电器等电路构成整个系统硬件;系统软件采用汇编语言编写。

设计的系统液晶显示,密码修改方便,具有报警、锁定等功能,使用便捷简单,符合住宅、办公等用锁需求,具有一定的实用价值。

一.设计背景:

锁具是源流千古的社会性用品,主要用于日常生活和工作中,住宅与部门的安全防范。

当前门锁的主流是弹子锁,其保密性不强,钥匙容易被仿制和意外丢失;且持有者需随时携带钥匙,使用不方便。

保存贵重物件的保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高昂,且易出现故障。

随着科技、经济和社会的发展,当今社会公共安全防范系统对锁具的保密性、牢固性、可靠性、耐用性以及安装使用等提出了新的更高的要求。

针对原有锁具的特点和缺陷,为满足人们对锁的使用需求,增加其安全性,用密码代替钥匙的电子密码锁应运而生。

早期开发的电子密码锁由于电子器件所限,种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但不安全。

后来多是基于EDA实现,其电路结构复杂,电子元件繁多,也有使用早先2051系列单片机来实现的,但密码简单,容易破解。

随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,保密安全性更强;由以前的单密码输入发展到现在密码加感应元件,实现了真正的电子加密。

电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。

电子密码锁的出现给人们带来了极大的方便,有很广阔的市场前景。

现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。

本系统采用STC89C52单片机,应用液晶显示器1602作为输出显示系统提示信息的电子密码锁的设计与实现。

实现功能:

1,电源保护功能,能够实现电池供电与市电供电相互切换;

2,具有小型万年历功能且时钟数据能在掉电后存入2402保持数据不变;

3,具有密码锁功能,并且具有限定时间内输入密码并给予三次机会然后进入初始密码程序,如果四次密码出错,就进入报警否则密码锁打开;

4,密码锁代开后能够更改密码,防止密码被盗。

5.另外,实现无线控制密码锁,远程控制效果良好。

二.系统方案设计:

1主控部分的选择

方案:

采用以单片机为核心的控制方案

选用单片机作为系统的核心部件,实现控制与处理的功能。

单片机具有资源丰富、速度快、编程容易等优点。

利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,因此综合考虑,本系统采用本方案。

2密码输入方式的选择

方案:

矩阵键盘输入识别

由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。

行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。

通过不断读行线口线,或者中断方式触发键位扫描。

当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。

当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。

每个按键都可通过程序赋予功能,从而完成密码识别[8]。

本方案简单易行,故采用。

三.系统总体设计:

本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。

其中矩阵键盘用于输入数字密码和进行各种功能的实现。

由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。

系统整体框图如图所示。

无线通信模块

 

 

●各模块功能如下:

1.键盘输入模块:

分为密码输入按键与几个功能按键,用于完成密码锁输入功能。

2.密码存储模块:

用于完成掉电存储功能,使修改的密码断电后仍能保存。

3.蜂鸣器报警电路:

用于完成输错密码时候的警报功能。

4.晶振电路:

用于单片机的起振。

5.复位电路:

完成系统的复位。

6.显示模块:

用于完成对系统状态显示及操作提示功能。

7.无线通信模块:

实现无线控制密码锁。

8.LED显示模块:

用于辅助报警与输入提示。

9.开锁电路:

应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。

四.所用芯片介绍:

1.STC89C52

STC89C52单片机是一个低功耗,高性能CMOS8位单片机,片内含8KBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案[10]。

STC89C52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

AT89S52的管脚分布如图3-2所示。

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入

STC89C52芯片管脚

此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P3口作为STC89C52的一些特殊功能管脚备选功能,

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

STC89C52主要特性如表所示。

STC89C52主要特性

兼容MCS-51指令系统

8k可反复擦写(>1000次)ISPFlashROM

32个双向I/O口

4.5-5.5V工作电压

3个16位可编程定时/计数器

时钟频率0-33MHz

全双工UART串行中断口线

256x8bit内部RAM

2个外部中断源

低功耗空闲和省电模式

中断唤醒省电模式

3级加密位

看门狗(WDT)电路

软件设置空闲和省电功能

灵活的ISP字节和分页编程

双数据寄存器指针

2.存储芯片AT24C02

AT24C02是美国Atmel公司的低功耗CMOS型E²PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。

而且他是采用了I²C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。

AT24C02中带有的片内地址寄存器。

每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。

所有字节均以单一操作方式读取。

为降低总的写入时间,一次操作可写入多达8个字节的数据。

I2C总线是一种用于IC器件之间连接的二线制总线。

他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。

AT24C02正是运用了I²C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。

主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并

产生开始和停止的条件。

无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。

AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。

管脚描述:

●SCL为串行时钟:

串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。

●SDL为串行数据/地址:

双向串行数据/地址管脚用于器件所有数据的发送或接收SDL,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线。

●A0、A1、A2为器件地址输入端:

当使用24C02时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。

● WP为写保护:

如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP,管脚连接到Vss或悬空,允许器件进行正常的读/写操作[12]。

管脚图如图所示。

AT24C02引脚

 

3.LCD1602显示器

现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。

1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。

1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。

 

1)LCD器件引脚图如下:

 

 

2)显示地址如下:

 

3)接口信号说明:

1602型LCD的接口信号说明如表所示。

1602型LCD的接口信号说明

第1脚

VSS电源地

第9脚

D2双向数据线

第2脚

VDD+5V电源

第10脚

D3双向数据线

第3脚

VEE液晶显示偏压信号

第11脚

D4双向数据线

第4脚

RS数据/命令选择端

第12脚

D5双向数据线

第5脚

R/W读/写选择端

第13脚

D6双向数据线

第6脚

E使能端

第14脚

D7双向数据线

第7脚

D0双向数据线

第15脚

BLA背光源正极

第8脚

D1双向数据线

第16脚

BLK背光源负极

 

4)主要技术参数:

1602型LCD的主要技术参数如表所示。

1602型LCD的主要技术参数

显示容量

16×2个字符

芯片工作电压

4.5~5.5V

工作电流

2.0mA(5.0V)

模块最佳工作电压

5.0V

字符尺寸

2.95×4.35(WXH)mm

 

5)基本操作程序:

读状态:

令RS=L,RW=L,E=H输出:

D0~D7=状态字

读数据:

令RS=H,RW=H,E=H输出:

写指令:

令RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:

D0~D7=数据

写数据:

令RS=H,RW=L,D0~D7=数据,E=高脉冲输出:

密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。

本设计中使用的这个4×4键盘不但能完成密码的输入还能作特别功能键使用。

键盘的每个按键功能在程序设计中设置。

它与单片机的连接如图所示。

键盘输入模块

4.时钟芯片DS12C887

1)器件特性

DS12C887实时时钟芯片功能丰富,可以用来直接代替IBMPC上的时钟日历芯片。

同时,它的管脚也和MC146818B、DS12887相兼容。

由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题;DS12C887中自带有锂电

池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。

在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。

2引脚功能

DS12C887的引脚排列如图1所示,各管脚的功能说明如下:

GND、VCC:

直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。

MOT:

模式选择脚,DA12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。

本文主要讨论Intel模式。

SQW:

方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用。

5.DS18B20数字温度计

DS18B20基本知识

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

1)DS18B20产品的特点

(1)只要求一个端口即可实现通信。

(2)在DS18B20中的每个器件上都有独一无二的序列号。

(3)实际应用中不需要外部任何元器件即可实现测温。

(4)测量温度范围在-55。

C到+125。

C之间。

(5)数字温度计的分辨率用户可以从9位到12位选择。

(6)内部有温度上、下限告警设置。

2)DS18B20的引脚介绍

TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表:

DS18B20详细引脚功能描述

引脚功能描述:

1.GND:

地信号。

2.DQ:

数据输入/输出引脚。

开漏单总线接口引脚。

当被用着在寄生电源下,也可以向器件提供电源。

3.VDD:

可选择的VDD引脚。

当工作于寄生电源时,此引脚必须接地。

3.DS18B20的使用方法

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

3)DS18B20的复位时序

(1)DS18B20的读时序

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。

DS18B20在完成一个读时序过程,至少需要60us才能完成。

(2)DS18B20的写时序

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

五.系统电路:

1.密码存储模块

图所示AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。

在AT89S51试验开发板上它们都接地,第5脚和第8脚分别为正、负电源。

第8脚SDL为串行数据输入/输出,数据通过这条双向I²C总线串行传送,在AT89C52试验开发板上和单片机的P3.6连接。

第6脚SCL为串行时钟输入线,在AT89C52试验开发板上和单片机的P3.7连接。

SDL和SCL都需要和正电源间各接一个5.1K的电阻上拉。

第6脚接P3.5。

AT24C02中带有片内地址寄存器。

每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。

所有字节均以单一操作方式读取。

为降低总的写入时间,一次操作可写入多达8个字节的数据。

密码存储电路

2.复位部分

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。

该电路在最简单的复位电路下增加了手动复位按键,

在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于

某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。

增加手动复位按键是为了避免死机时无法可靠复位。

当复位按键按下后电容C1通过R5放电。

当电容C1放电结束后,RST端的电位由R5与R6分压比决定。

由于R5<

R5的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电。

其电路如图所示。

复位电路

3.晶振部分

AT89S52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C3按图所示方式连接。

晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C2、C3的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在5~30pF之间。

根据实际情况,本设计中采用12MHZ作为系统的外部晶振。

电容取值为10pF。

其电路图如图所示。

晶振电路

4.显示模块

显示部分由液晶显示器LCD1602取代普通的数码管完成。

开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。

当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示“DOOROPEN”,单片机其中P2.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“CODEWRONG”,P2.0输出的是高电平,电子密码锁不能打开。

通过LCD显示屏,可以清楚地判断出密码锁所处的状态。

电路图如图所示。

显示电路

5.报警部分

报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导通蜂鸣器发出噪声报警。

如图4-7所示。

 

报警电路

6.开锁部分

开锁控制电路的功能是当输入正确的密码后将锁打开。

系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。

用户通过键盘任意设置密码,并储存在E2PROM中作为锁码指令。

只有用户操作键盘时,单片机的电源端才能得到3V电源,否则,单片机处于节电工作方式。

开锁步骤如下:

首先按下键盘上的开锁按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。

当用户输入密码后,单片机自动识别密码,如果密码不符,则报警。

只有当密码正确,单片机才能使继电器处于开锁状态。

具体电路如图所示。

开锁电路

7.电源部分

220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。

为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。

主要有继电器控制。

市电通电正常状态下继电器常开导通,常闭断开,由市电供电。

当市电断开,继电器常闭导通,常开断开。

实现了市电与电池之间的切换。

当市电接通时本电路还有电池充电功能,

 

六.系统程序流程:

1.系统主程序

在KeilC51中设置)。

如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便于修改。

当然也可以直接在Keil中编码。

生成的HEX文件是记录文本行的ASCII文本文件,在HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。

HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用HEX文件。

系统的主程序如图5-1所示。

由于用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。

 

 

 

N

Y

N

 

 

2.初始化及按键识别

如图,系统的初始化包括堆栈起始地址的设定,两个定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化,蜂鸣器初始化发声等操作。

果AT24C02里没有存储密码,或者读取AT24C02失败,则载入系统初始化密码;如果AT24C02里有掉电存储的密码,则会读出该密码。

系统初始化并读取密码完成后,液晶显示"ThePassword

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1