王仁杰毕业设计新.docx
《王仁杰毕业设计新.docx》由会员分享,可在线阅读,更多相关《王仁杰毕业设计新.docx(54页珍藏版)》请在冰豆网上搜索。
王仁杰毕业设计新
基于单片机控制电子密码锁都的毕业设计
王仁杰(10港控11)
摘要
随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器.随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要.
本文从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51与低功耗CMOS型E2PROMAT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用汇编语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报警功能的电子密码锁.经实验证明,该密码锁具有设计方法合理,简单易行,成本低,安全实用,符合住宅、办公室用锁要求,具有推广价值.
关键词:
单片机密码锁
毕业设计说明书(论文)外文摘要
TitleElectronicCipherLock
Abstract
Aselectronicproductsaredevelopingtowardsintelligenceandminimiza,single—chipcomputers(SCM)havebecomethefirstchoiceforcontrollersinthedevelopmentofelectronicproducts.Withtheimprovementofpeople'slivingstandards,ithasbecomeparticularlyprominentabouthowtoachieveAnti-theftfamily.Thetraditionalmechanicallockhassuchshortcomingassimplestructure,Lowsecurity,itcan'tmeetpeople'sdemands.
Forpracticality,thispaperdesignsanewelectroniccipherlock,whichhasthefunctionofalarmandwhoseciphercanbechangedmanytimes.ThiscipherlockusesAT89S51SCMandE2PROMAT24C02asmainchipanddatamemorycell.TheauthormadethisciphorlockbyuseofmakingcontrolledprogramofmasterCMOSwithperipheryelectrocircuitofkeyboardinput,display,alarmandunlock.
Experimentsshowthatthedesignedcipherlockischaracterizedbyitsreasonabledesigningmethods,simpleoperation,lowcostandpropertyofsafetyandpracticality.Besides,itworkswellasaresidencelockandhasgreatpotentialforcommercialdevelopment.
KeywordsCipherlockSCMAlarm
1引言
1.1电子密码锁简介
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品.它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品.现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的.其性能和安全性已大大超过了机械锁.其特点如下:
1)保密性好,编码量多,远远大于弹子锁.随机开锁成功率几乎为零.
2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员更替而使锁的密级下降.
3)误码输入保护,当输入密码多次错误时,报警系统自动启动.
4)无活动零件,不会磨损,寿命长.
5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁.
1.2电子密码锁的发展趋势
在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决.目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣.针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生.它的出现为人们的生活带来了很大的方便,有很广阔的市场前景.由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解.随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的
提高出现了越来越多的电子密码锁出于安全、方便等方面的需要许多电子密码锁已相继问世.但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等.由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁.组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”.可以看出组合使用电子信息是电子密码锁以后发展的趋势.
1.3本设计所要实现的目标
本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警.密码可以由用户自己修改设定,锁打开后才能修改密码.修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作.
2设计方案
2.1采用以单片机为核心的控制
由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比.一般来说在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等.
在开发过程中单片机还受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持等.基于以上因素本设计选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能.在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用.当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码.密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码.新密码输入无误后按确认键使新密码将得到存储,密码修改成功.可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案.
3硬件电路设计
3.1主要元器件介绍
3.1.1主控芯片AT89S51
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案.
AT89S51具有如下特点:
40个引脚,其引脚排列如图3-1所示,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器.此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式.空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位.同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求.
图3-1AT89S51芯片引脚图
其主要功能特性:
兼容MCS-51指令系统
32个双向I/O口
4k可反复擦写(>1000次)ISPFlashROM
4.5-5.5V工作电压
2个16位可编程定时/计数器
全双工UART串行中断口线
2个外部中断源
中断唤醒省电模式
看门狗(WDT)电路
灵活的ISP字节和分页编程
时钟频率0-33MHz
128x8bit内部RAM
低功耗空闲和省电模式
3级加密位
软件设置空闲和省电功能
双数据寄存器指针
可以看出AT89S51提供以下标准功能:
4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟.同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式.空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作.掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位.
AT89S51引角功能说明:
Vcc:
电源电压;GND:
地;P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口.在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻.在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻.
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址.
部分P1口具有第二功能;
端口引脚第二功能
P1.5MOSI(用于ISP编程)
P1.6MISO(用于ISP编程)
P1.7SCK(用于ISP编程)
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路.对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I.在访问8位地址的外部数据存储器(如执行:
MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变.Flash编程或校验时,P2也接收高位地址和其它控制信号.P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口.P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I.P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如表3-1所示.
表3-1P3口的第二功能
端口引脚
第二功能
端口引脚
第二功能
RXD(P3.0)
串行输入口
T0(P3.0)
定时|计数器0外部输入
TXD(P3.1)
串行输出口
T1(P3.0)
定时|计数器1外部输入
INT0(P3.2)
外中断0
WR(P3.0)
外部数据存储器写选通
INT1(P3.3)
外中断1
RD(P3.0)
外部数据存储器读选通
RST:
复位输入.当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位.WDT益出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能.DISRTO位缺省为RESET输出高电平打开状态.
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节.即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:
第当访问外部数据存储器时将跳过一个ALE脉冲.如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作.该位禁位后,只有一条MOVX和MOVC指令ALE才会被激活.此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效.
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲.当访问外部数据存储器,高有两次有效的PSEN信号.
EA/VPP:
外部访问允许.欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地).需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态.如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令.Flash存储器编程时,该引脚加上+12V的编程电压Vpp.
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端.
XTAL2:
振荡器反相放大器的输出端.
AT89S51芯片内部结构包括:
特殊功能寄存器:
特殊功能寄存器的片内空间分存地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值.而写这些地址单元将不能得到预期的结果.
中断寄存器:
各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器.
双时钟指针寄存器:
为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:
PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1.在使用前初始化DPS.
电源空闲标志:
电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响.
存储器结构:
MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间.
程序存储器:
如果EA引脚接地(GND),全部程序均执行外部存储器.在AT89S51,假如接至Vcc(电源+),程序首先执行从地址0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器.
数据存储器:
在AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间.
看门狗定时器(WDT):
WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成.外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST输出高电平的复位脉冲.
3.1.2存储芯片AT24C01
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位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向.
图3-2AT24C02两种引脚图
24C02中带有片内地址寄存器.每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写.所有字节均以单一操作方式读取.为降低总的写入时间,一次操作可写入多达8个字节的数据.
3.1.3LCD1602显示器
现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了.1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点.1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能.
表3-21602型LCD的接口信号说明:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DATAI/O
2
VDD
电源正极
10
D3
DATAI/O
3
V0
液压显示偏压信号
11
D4
DATAI/O
4
RS
数据\命令选择端
12
D5
DATAI/O
5
R\W
读写选择端
13
D6
DATAI/O
6
E
使能信号
14
D7
DATAI/O
7
D0
DATAI/O
15
BLA
背光源正极
8
D1
DATAI/O
16
BLK
背光源负极
表3-31602型LCD的主要技术参数
显示容量
16*2个字符
芯片工作电压
4.5~5.5V
工资电流
20ma(5V)
模块最佳工作电压
5V
字符尺寸
2.98*4.35MM
其基本操作程序如下
读状态:
输入:
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=高脉冲输出:
无
3.1.4晶体振荡器
晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率.以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率.如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振.但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题.现在应用最广泛的是石英晶体振荡器.
石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件.石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中.为数据处理设备产生时钟信号和为特定系统提供基准信号.在单片机中为其提供时钟频率.
石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:
从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振.其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的.只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应.当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大.
3.2硬件电路设计
本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成.其中矩阵键盘用于输入数字密码和进行各种功能的实现.由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈.
本系统共有两部分构成,即硬件部分与软件部分.其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成.其原理框图如图.
电源输入
AT89S51
键盘输入
显示电路
复位电路
报警电路
密码存储电路
开锁电路
晶振电路
图3-3系统原理框图
3.2.1电路总体构成
在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键