基于单片机的密码锁的设计毕业设计.docx
- 文档编号:4921908
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:22
- 大小:141.39KB
基于单片机的密码锁的设计毕业设计.docx
《基于单片机的密码锁的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码锁的设计毕业设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于单片机的密码锁的设计毕业设计
毕业设计
基于单片机的密码锁的设计
目录
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作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警等电路并用汇编编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。
设计完全可行可以达到设计目地。
使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。
该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。
可在意外泄密的情况下随时修改密码。
保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 密码锁 设计 毕业设计