单片机电子密码锁论文终稿文档格式.docx
- 文档编号:16835653
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:68
- 大小:670.13KB
单片机电子密码锁论文终稿文档格式.docx
《单片机电子密码锁论文终稿文档格式.docx》由会员分享,可在线阅读,更多相关《单片机电子密码锁论文终稿文档格式.docx(68页珍藏版)》请在冰豆网上搜索。
事实上,文中设计的电路和控制方法适用于一般的单片机系统,硬件和软件也有一定的实用性和通用性。
关键字:
单片机;
AT89c51;
密码锁;
模块
Abstract
Theelectronicpasswordlocksiswidelyusedindailylifebecauseofitshighsecrecy,goodflexibility.
ThepapertakesAT89c51asacore,designsanelectronicpasswordtolockthesystem。
Thesystemdividesintothehardwareandthesoftwaretwoparts.Thehardwarepartmainlyincludesthekeyboardentrymodule,thedisplaycircuitmodule,thepasswordmemorymodule,themonolithicintegratedcircuitmoduleandsoon;
Thesoftwarepartmainlyincludesmainmodule,keyboardscanningmodule,LCDread-writemodule,passwordmemoryread-writemoduleandsoon.
Thetestresultindicatedthatthissystemcanrealizethebasicfunctions,suchaspasswordestablishment,revision,recognition.Infact,theelectriccircuitdesignandcontrolmethodsinvolvedinthearticlearesuitableforthecommonmonolithicintegratedcircuitsystem.Sothehardwareandthesoftwarealsohavecertainusabilityandtheversatility.
Keywords:
Microcontroller;
AT89C51;
Passwordlock;
module
第一章绪论
1.1论文的背景和意义
在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流[1]。
1.2论文研究的内容
本次设计使用ATMEL公司的AT89C51实现一基于单片机的智能电子密码锁的设计,其主要具有如下功能:
1、设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
2、密码可以由用户自己修改设定(只支持6位密码),初始密码输入成功后才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
3、报警、锁定键盘功能。
密码输入错误1602LCD会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
4、AT24C02保存密码,支持复位保存,掉电保存功能。
1.3毕业设计的方案
本次设计系统硬件结构框图如图1.1:
图1.1系统硬件结构框图
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:
1、密码输入功能:
插上电源后,LCD提示输入密码,输入密码时在1602LCD上显示“*”每输入一个数字,LCD上向右移一格,同时“*”加一个。
值到输入6个“*”为此,若一次性输入大于6个密码,则只保留前6位密码,按“确定”生效。
若按取消键,锁关闭,所有输入清除。
2、密码更改功能:
将输入的值作为新的密码(初始密码是6个0)。
3、当密码输入成功后,或者密码修改成功后,LCD上有提示成功字符,同时蜂鸣器响两声作为提示。
1.4论文的章节安排
在第一章绪论中介绍了下此次毕业设计的背景,意义,内容和系统的设计方案。
第二章详细介绍了AT89C51芯片。
第三章则介绍了各个模块的工作原理等。
第四章是各个模块软件编写的相关介绍。
第五章则介绍了软硬件的调试。
最后给出结论并对课题未来的发展做出了展望。
第二章AT89C51芯片介绍
2.1主要特性
在本设计中,是以AT89C51单片机为核心的,AT89C51是由ATMEL公司推出的一种小型单片机,95年出现在中国市场。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,且采用ATMEL高密度非易失存储器制造技术制造,将多功能8位CPU和闪烁存储器组合在单个芯片中,可以很快被中国广大用户接受。
其程序的可擦写特性,使得开发与试验比较容易,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[2]。
89C51有很宽的工作电源电压,可为2.7~6V,当工作在3V时,电流相当于6V工作时的1/4。
89C51工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电态仅为20nA。
这样小的功耗很适合于电池供电的小型控制系统。
AT89C51具有以下几个特点[2]:
①AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;
②片内有4k字节在线可重复编程快擦写程序存储器;
③全静态工作,工作范围:
0Hz~24MHz;
④128×
8位内部RAM;
⑤32位双向输入输出线;
⑥两个十六位定时器/计数器;
⑦五个中断源,两级中断优先级;
⑧一个全双工的异步串行口;
⑨间歇和掉电两种工作方式。
2.2AT89C51的功能描述
AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于4K,四个I/O口全部提供给用户。
可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快能慢。
AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作[3]。
AT89C51引脚功能:
图2.1芯片引脚
AT89C51单片机为40引脚芯片,如上图2.1。
地址总线和数据总线:
P0、P1、P2、P3共四个八位口:
①P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
P0口也用以输出外部存储器的低8位地址。
由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。
②P1口是专门供用户使用的I/O口,是准双向口。
③P2口是从系统扩展时作高8位地址线用。
不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。
④P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。
作为第一功能使用时操作同P1口。
P3口的第二功能如表2.1所示[3]。
表2.1P3口的第二功能
控制口线RESET(复位控制)、PSEN(片外选取控制)、ALE/PROG(地址锁存控制)、PSEN(选通信号)、EA/VPP(片外存储器选择)、XTAL1/XTAL2(晶震)。
RST:
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲;
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.3工作模式
工作模式:
AT89C51有间歇和掉电两种工作模式。
间歇模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内部RAM和所有特殊的寄存器值将保持不变。
这种状态可被任何一个中断所终止或通过硬件复位。
掉电模式是VCC电压低于电源下限,振荡器停止振动,CPU停止执行指令。
该芯片内RAM和特殊功能寄存器值保持不变,直到掉电模式被终止。
只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位掉电模式可被终止。
。
第三章硬件电路设计
本次毕业设计硬件模块包括:
键盘输入模块、液晶显示模块、AT24C02存储模块、电源模块以及其他部分。
电路框图如第一章图1.1所示,其中主要的模块有LCD显示模块、键盘输入模块、AT24C02存储模块和蜂鸣器与继电器模块。
下面就这些模块做详细的介绍。
3.1液晶显示模块
本次设计显示部分是采用1602。
电路图如图3.1所示:
图3.1液晶显示原理图
1602的引脚功能:
第1脚:
为地电源。
第2脚:
VCC接5V正电源。
第3脚:
为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个20K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚。
3.2键盘输入模块
单片机及键盘电路原理图如图3.2所示:
图3.2单片机及键盘电路原理图
键盘是一组按键的集合,它是最常用的单片机输入设备.键盘可以分为两类:
独立连接式和矩阵式[4]。
独立连接式键盘是最简单的键盘电路,每个按键独立地接入一根数据线。
平时所有的数据输入线都被连接成高电平,当任何一个键按下时,与之相连的数据输入线将被拉成低电平。
要判断是否有键按下,只要用位处理指令即可。
这种键盘的优点是结构简单,使用方便,但随着键数的增多占用I/O口线也增加。
矩阵式键盘,也即通常所讲的行列式键盘。
本次设计所用的键盘就是矩阵式键盘。
它由行线和列线组成,按键位于行、列的交叉点上,行列分别连接到按键开关的两端,行线通过上拉电阻接到高电平。
无按键按动作时列线处于高电平状态;
有按键按下时,交点的行线和列线相通,列线电平状态将由与此列线相连的行线电平决定。
行线电平如果低,则列线电平为低;
行线电平如果为高,则列线电平也为高。
这是识别矩阵式键盘按键是否被按下的关键所在。
由于矩阵键盘中行、列线为多键公用,各按键均影响该键所在的行和列的电平,所以必须将行、列线信号配合起来作适当的处理,才能确定闭合键所在的位置。
矩阵式键盘节省了好多的I/O口,适用于按键数量比较多的场合。
本设计的4*4键盘即采用矩阵式键盘,如图3.3所示:
图3.3矩阵式键盘
通过行列键盘扫描的方法可获取键盘输入的键值,从而得知按下的哪个键,具体过程如下:
(1)查询是否有键按下。
单片机向行扫描口输出全为“0”的扫描码,然后从列检测口检测信号,只要有一列信号不为“1”,则表示有键按下,且不为“1”的列即对应为按下的按键所在的列。
(2)查询按下按键所在的行、列位置。
前面已经取得了按下键的列,接下来要确定按键所在的行,这需要进行逐行扫描,单片机首先使第1行为“0”,其余各行为“1”,接着进行行列检测,若为全“1”,表示不在第1行,否则即在第1行;
然后使第2行为全“0”,其余各行为“1”,再进行列检测,若为全“1”,表示不在第2行;
这样逐行检测,直到找到按键所在的行。
当各行都扫描以后仍没有找到,则放弃扫描,认为是键的错误动作。
(3)对得到的行号和列号译码,得到键值。
对于4*4的行列式键盘,因为按键的位置由行号和列号唯一确定,且行列各4位,所以用一个字节(8位)来对键值编码是很合适的。
本设计中,将字节的高4位(D7、D6、D5、D4)表示列号(4、3、2、1),低4位(D3、D2、D1、D0)表示行号(4、3、2、1),比如11H(00010001)表示第1行第1列,21H(00100001)表示第1行第2列。
在扫描键盘过程中,应该注意以下问题:
(1)当按下或松开按键时,按键会产生机械抖动。
这种抖动经常发生在按下或松开瞬间,一般持续几到十几秒,抖动时间随按键的结构不同而不同,。
在扫描键盘过程中,必须想办法消除按键,否则会引起错误。
消除按键抖动可以用硬件电路来实现,例如,利用R-S触发器来锁定按键状态。
以消除抖动的影响。
较为简单的方法就是用软件延时方法来消除按键的抖动,一旦发现有键按下,就延时20ms以后再测按键的状态。
这样就避开按键发生抖动的那一段时间,使CPU能可靠地读按键状态。
在编制键盘扫描程序时,只要发现按键状态有变化,即无论是按下还是松开,程序都延时20ms以后再进行其他操作。
(2)在键盘扫描中,应防止按一次键而有多个对应键值输入的情况。
这种情况的发生是由于键扫描速度和键处理速度较快,当某一个键按下还未松开时键扫描程序和键处理程序已执行了多遍。
这样,由于程序执行和按键动作不同步而造成按一个键有多个键值输入的错误状态。
为避免发生这种情况,必须保证按一次键,CPU只对该键做一次处理。
为此,在键扫描程序中不仅要检测是否有键按下,在有键按下的情况,做一次处理,而且在键处理完毕后,还应检测按下的键否松开,只有当按下的键松开以后,程序才往下执行。
这样每按一个键,只做一个键处理,使二者达到同步,消除按一次键有多个键值输入的错误情况。
根据需要,本设计的4*4键盘设定10个数字键(0-9)和3个功能键。
图3.2中第4列前三个暂时不用,可以作以后扩充所用。
因此根据上面提到的4*4键盘的键值编码方法,各按键及其编码对应关系如表3.1。
按键
行号
列号
键值编码
1
11H(00010001)
2
21H(00100001)
3
41H(01000001)
4
12H(00010010)
5
22H(00100010)
6
42H(01000010)
7
14H(00010100)
8
24H(00100100)
9
44H(01000100)
*(取消)
18H(00011000)
28H(00101000)
#(确认)
48H(01001000)
D(修改)
88H(10001000)
表3.1按键与编码对应关系表
3.3AT24C02密码存储部分
密码存储部分如图3.4所示:
图3.4密码存储电路图
为了保存用户设置的密码,本系统使用AT24C02用来保存用户设置的密码,它的SCL、SDA端分别接单片机的T0、T1端,用于与单片机之间读写操作的数据传输;
WP接低电平表示单片机可以对器件进行正常的读/写操作;
A0、A1、A2是器件地址输入端,都接低电平表示只有一个AT24C02被器件寻址。
该电路要注意的是SCL、SDA必须加上一上接电阻,阻值为4.7K。
用户设置的密码存放在AT24C02中,当需要更改或读取用户密码时,只需对AT24C02里的数据更改或读取。
AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含256×
8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。
1、特性:
●与400KHzI2C总线兼容
●2.5到5.5伏工作电压范围
●低功耗CMOS技术
●写保护功能当WP为高电平时进入写保护状态
●页写缓冲器
●自定时擦写周期
●1,000编程/擦除周期
●可保存数据100年
●8脚DIPSOIC或TSSOP封装
●温度范围商业级工业级和汽车级
2、管脚配置,如图3.5所示:
图3.5AT24C02管脚配置
3、管脚描述,如图3.6所示:
图3.6AT24C02管脚描述
4、极限参数:
●工作温度:
工业级:
-55°
C--+125°
C商业级:
0°
C--+75°
C
●储存温度:
-65°
C--+150°
●各管脚承受电压:
-2.0V--+2.0V
●Vcc管脚承受电压:
:
-2.0V--+7.0V
●封装功率损耗:
(Ta=25°
C):
1.0W
●焊接温度(10秒):
300°
●输出短路电流:
100mA
5、可靠性参数如图3.7:
图3.7AT24C02可靠性参数
6、功能描述:
AT24C02支持I2C总线数据传送协议,I2C总线协议规定,任何将数据传送到总线的器件作为发送器。
任何从总线接收数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式,通过器件地址输入端A0A1和A2可以实现将最多8个24WC01和24WC02器件4个242C04器件,2个24WC08器件和1个24WC16器件连接到总线上。
7、管脚描述:
●SCL:
串行时钟
AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,是一个输入管脚。
●SDA:
串行数据/地址
AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚。
●A0A1A2:
器件地址输入端
这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为024WC01除外。
当使用24WC01或24WC02时最大可级联8个器件,如果只有一个24WC02被总线寻址,这三个地址输入脚A0A1A2可悬空或连接到Vss,如果只有一个24WC01被总线寻址,这三个地址输入脚A0A1A2必须连接到Vss。
当使用24WC04时,最多可连接4个器件该器件,仅使用A1A2地址管脚,A0管脚未用可以连接到Vss或悬空,如果只有一个24WC04被总线寻址,A1和A2地址管脚可悬空或连接到Vss。
●WP:
写保护
如果WP管脚连接到Vcc,所有的内容都被写保护只能读,当WP管脚连接到Vss或悬空,允许器件进行正常的读/写操作。
3.4电源部分
该电源部分电路,可以通过USB线连接到电脑上,输出5V电压供单片机工作。
接通电源时LED灯亮,用以提示用户。
,这时打开开关就可以进行操作。
其电路图如图3.8:
图3.8电源部分原理图
3.5晶体振荡电路
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容Cl、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30pF±
10pF,而如使用陶瓷谐振器建议选择40pF±
10F。
用户也可以采用外部时钟。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 密码锁 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)