密码锁参考论文.docx

上传人:b****1 文档编号:1138677 上传时间:2023-04-30 格式:DOCX 页数:19 大小:136.78KB
下载 相关 举报
密码锁参考论文.docx_第1页
第1页 / 共19页
密码锁参考论文.docx_第2页
第2页 / 共19页
密码锁参考论文.docx_第3页
第3页 / 共19页
密码锁参考论文.docx_第4页
第4页 / 共19页
密码锁参考论文.docx_第5页
第5页 / 共19页
密码锁参考论文.docx_第6页
第6页 / 共19页
密码锁参考论文.docx_第7页
第7页 / 共19页
密码锁参考论文.docx_第8页
第8页 / 共19页
密码锁参考论文.docx_第9页
第9页 / 共19页
密码锁参考论文.docx_第10页
第10页 / 共19页
密码锁参考论文.docx_第11页
第11页 / 共19页
密码锁参考论文.docx_第12页
第12页 / 共19页
密码锁参考论文.docx_第13页
第13页 / 共19页
密码锁参考论文.docx_第14页
第14页 / 共19页
密码锁参考论文.docx_第15页
第15页 / 共19页
密码锁参考论文.docx_第16页
第16页 / 共19页
密码锁参考论文.docx_第17页
第17页 / 共19页
密码锁参考论文.docx_第18页
第18页 / 共19页
密码锁参考论文.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

密码锁参考论文.docx

《密码锁参考论文.docx》由会员分享,可在线阅读,更多相关《密码锁参考论文.docx(19页珍藏版)》请在冰点文库上搜索。

密码锁参考论文.docx

密码锁参考论文

毕业设计

基于单片机的密码锁的设计

目录

1绪论1

1.1课题背景1

1.2课题设计目标1

2系统方案论证2

2.1主控部分的选择2

2.2密码输入方式的选择2

3系统总体设计和主要芯片介绍3

3.1系统总体设计3

3.2主要芯片介绍4

4系统硬件构成11

4.1系统整体电路图11

4.2单片机最小系统原理图11

4.3电源输入部分12

4.4键盘输入部分12

4.5密码存储部分13

4.6显示部分14

4.7报警部分15

5软件的设计与实现15

5.1 设计原理15

5.2主程序流程图16

6结论16

[参考文献]17

基于单片机的电子密码锁的设计

摘要

本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。

系统能完成开锁、超次锁定、报警、修改用户密码基本的密码锁的功能。

除上述基本的密码锁功能外,还具有掉电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。

本系统成本低廉,功能实用

[关键词]AT89S51AT24C02电子密码锁矩阵键盘

 

1绪论

随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。

锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。

随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。

1.1课题背景

由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。

电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。

电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。

但较实用的还是按键式电子密码锁。

1.2课题设计目标

本设计采用AT89S51单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:

1.正确输入密码前提下,开锁提示;

2.错误输入密码情况下,蜂鸣器报警;

3.密码可以根据用户需要更改;

4.断电存储功能

 

2系统方案论证

系统从主控部分和密码输入方式两方面进行论证

2.1主控部分的选择

方案一:

采用数字电路控制

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。

采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。

方案二:

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

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

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

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

2.2密码输入方式的选择

方案一:

指纹输入识别

指纹识别技术主要涉及四个功能:

读取指纹图像、提取特征、保存数据和比对。

通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。

软件从指纹上找到被称为"节点"(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。

通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。

这些数据,通常称为模板。

通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。

考虑到本方案软硬件太过复杂,而且成本也高,故不采用。

方案二:

矩阵键盘输入识别

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

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

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

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

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

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

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

 

3系统总体设计和主要芯片介绍

系统主要芯片有AT89S51,AT24C02及液晶等

3.1系统总体设计

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

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

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

系统整体框图如图3.1所示。

图3.1系统结构框图

各模块功能如下:

1.矩阵键盘输入模块:

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

2.显示模块:

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

3.报警电路:

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

4.密码存储模块:

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

5.电源模块:

用于对系统电路提供+5V的直流电压

3.2主要芯片介绍

3.2.1AT89S51

AT89S51是美国Atmel公司生产的低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),AT89S51有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。

主要功能特性:

·兼容MCS51指令系统。

·8k可反复擦写(>1000次)FlashROM,32个双向I/O口,256x8bit内部RAM,时钟频率0-24MHz,可编程UART串行通道。

·3个16位可编程定时/计数器中断,2个串行中断,2个外部中断源,共6个中断源,2个读写中断口线。

其引脚排列图如下图3.2:

图3.2AT89S51的引脚排列

引脚功能如下:

·Vcc:

电源电压

·GND:

·P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

·P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

·P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。

Flash编程或校验时,P2亦接收高位地址和一些控制信号。

·P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上位电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表3.1所示:

表3.1P3口的第二功能

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INT0(外中断0)

P3.3

INT1(外中断1)

P3.4

T0(定时/计数器0)

P3.5

T1(定时/计数器1)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

 

 

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片复位。

·ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

·EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。

·XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

·XTAL2:

振荡器反相放大器的输出端。

3.2.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]。

管脚图如图3.3所示。

图3.3AT24C02引脚图

3.2.3显示电路(LCD1602)

LCD1602:

所谓的1602即是16字符*2行的字符型LCD显示器,它由32个字符点阵块组成,每个字符点阵块由5×7或5×10个点阵组成,可以显示ASCII码表中的所有可视的字符。

它内置了字符产生器ROM(CGROM)、字符产生器RAM(CGRAM)和显示数据RAM(DDRAM)。

CGROM中内置了192个常用字符的字模,CGRAM包含8个字节的RAM,可存放用户自定义的字符,DDRAM就是用来寄存待显示的字符代码。

1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用

3.2.3.11602引脚及其具体功能如下表:

表11602引脚及功能

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

DataI/O

2

VDD

电源正极

10

D3

DataI/O

3

VL

液晶显示偏压信号

11

D4

DataI/O

4

RS

数据/命令选择端(H/L)

12

D5

DataI/O

5

R/W

读/写选择端(H/L)

13

D6

DataI/O

6

E

使能信号

14

D7

DataI/O

7

D0

DataI/O

15

BLA

背光源正极

8

D1

DataI/O

16

BLK

背光源负极

3.2.3.2LCD1602基本操作时序:

读状态:

输入:

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

D0~D7=状态字

写指令:

输入:

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

读数据:

输入:

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

D0~D7=数据

写数据:

输入:

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

1)读操作时序图

图6读操作时序图

2)写操作时序图

图3.4写操作时序图

3)时序参数表

表2时序参数表

时序参数

符号

极限值

单位

测试条件

最小值

典型值

最大值

E信号周期

tc

400

----

----

ns

引脚E

E脉冲宽度

tpw,tF

150

----

----

ns

E上升/下降沿时间

tR

----

----

25

ns

地址建立时间

tsp1

30

----

----

ns

引脚E、RS、R/W

地址保持时间

tHD1

10

----

----

ns

数据建立时间(读操作)

tD

----

----

100

ns

引脚

DB0~DB7

数据保持时间(读操作)

tHD2

20

----

----

ns

数据建立时间(写操作)

tsp2

40

----

----

ns

数据保持时间(写操作)

tHD2

10

----

----

ns

3.2.3.3状态字说明表

表3状态字说明

STA7

D7

STA6

D6

STA5

D5

STA4

D4

STA3

D3

STA2

D2

STA1

D1

STA0

D0

注意:

对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7=0

3.2.3.6数据控制

控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。

1)数据指针设置如表4

表4数据指针设置

指令码

功能

80H+地址吗(0-27H,40-67H)

设置数据地址指针

2)其他设置如表5

表5其他设置

指令码

功能

01H

显示清屏:

1.数据指针清零

2.所有显示清零

02H

显示回车:

1.数据指针清零

Lcd初始化显示设置为:

初始化过程(复位过程)延时15ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)5延时5ms写指令38H(不检测忙信号)(以后每次写指令、读/写数据操作之前均需检测忙信号)写指令38H:

显示模式设置写指令08H:

显示关闭写指令01H:

显示清屏写指令06H:

显示光标移动设置写指令0CH:

显示开及光标设置。

 

4系统硬件构成

4.1系统整体电路图

本密码锁系统硬件电路是由AT89S51单片机、存储器AT24C02和LCD1602液晶显示、键盘输入以及输出控制报警5个模块组成的。

其整体电路图如下4.1所示:

图4.1整体电路图

4.2单片机最小系统原理图

由AT89S51,复位电路,时钟产生电路组成。

其原理图如下:

图4.2最小系统电路原理图

4.3电源输入部分

密码锁主控制部分电源需要用5V直流电源供电,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。

其主要原理是把单相电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。

由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。

降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。

由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。

需通过低通滤波电路滤波,使输出电压平滑。

稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流压。

本电路使用充电器解决电源稳压问题。

4.4键盘输入部分

由于本设计所用到的按键数量较多而不适合用独立按键式键盘。

采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。

本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。

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

其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4.3所示

图4.3键盘输入原理图

4.5密码存储部分

用EPROM芯片AT24C02存储密码。

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

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

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

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

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

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

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

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

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

主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。

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

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

其接线如图4.4所示:

  图4.4密码存储电路原理图

4.6显示部分

为了提高密码锁的密码显示效果能力。

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

显示器一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。

当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“RIGHT”,LCD显示屏会显示“ERROR”,P2.0输出的是低电平,电子密码锁不能被打开。

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

其显示部分引脚接口如图4.5所示

图4.5显示电路原理图

4.7报警部分

报警部分由喇叭电路组成,当有键按下时,每按一下,喇叭koi响一次,当密码输入错误时,单片机的P2.1引脚为低电平,喇叭发出噪鸣声报警。

如图4.6所示:

图4.6报警电路原理图

 

5软件的设计与实现

软件的设计从设计原理和主程序流程图两方面进行说明

5.1 设计原理

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

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

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

本系统共有两部分构成,即硬件部分与软件部分。

其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、显示部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。

5.2主程序流程图

主程序对模块进行初始化,而后调用密码输入子程序、密码比较子程序、判断密码是否输入正确。

主程序流程图如图5.1所示。

图5.1系统主程序流程图

6结论

本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51与低功耗CMOS型E2PROMAT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警等电路并用汇编编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。

设计完全可行可以达到设计目地。

使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。

该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。

可在意外泄密的情况下随时修改密码。

保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2