电子密码锁防盗门.docx
- 文档编号:9000840
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:44
- 大小:381.44KB
电子密码锁防盗门.docx
《电子密码锁防盗门.docx》由会员分享,可在线阅读,更多相关《电子密码锁防盗门.docx(44页珍藏版)》请在冰豆网上搜索。
电子密码锁防盗门
西安航空职业技术学院
毕业设计(论文)
论文题目:
电子密码锁防盗门
所属系部:
电子工程系
指导教师:
职 称:
学生姓名:
学号:
专 业:
电子信息工程
西安航空职业技术学院制
西安航空职业技术学院
毕业设计(论文)任务书
题目:
电子密码锁防盗门
任务与要求:
时间:
年 月 日至 年 月日共 周
所属系部:
电子工程系
学生姓名:
学号:
专业:
电子信息工程
指导单位或教研室:
指导教师:
职称:
西安航空职业技术学院制
摘要
电子技术的迅速发展,特别是大规模集成电路的出现,给人类生活带来了根本性的改变。
尤其是单片机技术的应用产品已经走进了千家万户。
作为单片机技术应用之一的数字密码锁,在日常生活、工业场合甚至军事领域都有应用。
本文对目前楼宇门禁装置应用现状进行了分析,结合应用广泛的串行通信技术设计并实现了一个以AT89S52为核心的数字密码锁。
阐述了系统的结构、组成及软硬件设计,并介绍了系统的功能。
本系统具有自动报警、日历显示、掉电密码保护、权限管理、实时监控等功能,并可查询监控记录。
系统基于RS-232通信,监控主机和密码锁之间采用自定义协议进行串行通信。
监控软件采用VisualBasic6.0实现。
实践结果表明该数字密码锁系统结构简单、性能稳定、智能化程度较高,监控软件具有友好的人机界面和较好的实时性,系统实用性较强。
关键词:
单片机,数字密码锁,实时监控,串行通信
Abstract
Alongwiththeelectronictechnologyrapiddevelopment,appearsofthelargescaleintegratedcircuitspecially,thesehavemadeabigchangeonpeople’sliving.Productsincludingthetechnologyapplicationofthesinglechipmicroprocessorsetsalreadyenteredeveryfamily.
Asoneapplicationofthesinglechipmicroprocessortechnology,thedigitalcombinationlockhasbeenappliedinthedailylife,theindustrysituationandmilitaryfield.
ThisarticleanalyzesthecurrentstatusoftheapplicationofBuildingAccessControlDevices.TheauthordesignsadigitalcombinationlockwiththecoreofAT89S52bycombiningtheSerialCommunicationTechnology.Thearticlestatesstructure,composition,thedesignofsoftwareandhardware,thefunctionofthesystem.Thesystemhassuchfunctions:
Auto-alarm,CalendarDemonstration,PowerFailurePasswordProtection,RightsManagement,Real-timeMonitoringandetc.Itcanalsoquerythedatathatwasrecorded.ThesystemisbasedonRS-232,andthecommunicationbetweenthehost-computerandslavedigitalcombinationlockbyadoptingtheself-defineprotocol.ThemonitorsoftwareisrealizedbyVisualBasic6.0.Theresultshowsthatthissystemhasasimplestructure,stableperformanceandhigherdegreeofintelligence.ThemonitorsoftwarehasafriendlyUserInterface,andthesystemisverypractical.
KEYWORDS:
singlechipmicroprocessor,digitalcombinationlock,real-timemonitoring,serialcommunication
目录
第1章绪论1
1.1本课题研究的背景和意义1
1.2楼宇门禁系统的概述1
1.3本次设计的任务2
1.4设计思想及系统方案选择2
第2章基于单片机的数字密码锁的硬件设计4
2.1MCU的选择4
2.1.1简单介绍AT89S524
2.1.2AT89S52的串口通信7
2.1.3晶振特性8
2.2输入通道设计9
2.2.1键盘识别方法9
2.2.2消除键的抖动11
2.2.3键盘的选择12
2.2.4按键的设置12
2.3显示模块的设计13
2.4密码锁动作模块设计14
2.5报警模块设计15
2.6通信模块设计16
2.6.1RS-232简介18
2.6.2MAX232电路设计19
2.7时钟功能设计21
2.7.1DS1302简介21
2.7.2DS1302电路原理图22
2.7.3DS1302调试中的问题22
2.8供电电源模块设计23
2.9掉电保护设计24
第3章基于单片机的数字密码锁的软件设计27
3.1上位机监控软件设计27
3.1.1VB中的MSComm通信控件27
3.1.2小区密码锁管理系统的设计29
3.2下位机程序设计30
3.2.1软件设计的原则30
3.2.3程序流程图30
第4章基于单片机的数字密码锁的功能34
第5章结论40
致谢41
参考文献42
论文小结43
附录
(一):
硬件实物照片45
附录
(二):
电路原理图46
第1章绪论
1.1本课题研究的背景和意义
社会治安仍是当今社会面临的一个重大问题,如何应用高科技手段提高安全防范措施,更有效地阻止犯罪行为的发生是科技工作者义不容辞的责任。
目前的形势下,对于普通居民小区,仅仅依靠普通的门锁、防盗门或者报警等系统来保证居民住宅的安全是不够的,如果能够安装一套适合于单个家庭的简易智能门禁系统,将会有效地保护住宅的安全,并在案发后提高破案率。
鉴于此,我们的“智能门禁系统”——带液晶显示和通信功能的数字密码锁便应运而生。
1.2楼宇门禁系统的概述
门禁就是出入口控制,在人进出重要通道的时候,进行适当级别的权限鉴别,以区分是否能通过的一种管理手段。
门禁系统属于智能弱电系统中的一种安防系统,作为一种新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。
它是解决重要部门出入口实现安全防范管理的有效措施。
门禁系统通过在建筑物内的主要管理区、出入口、电梯厅、设备控制中心机房、贵重物品的库房等重要部门的通道口安装门磁、电控锁或控制器、读卡器等控制装置,由计算机或管理人员在中心控制室监控,能够对各通道口的位置、通行对象及通行时间、方向等进行实时控制或设定程序控制,从而实现对出入口的控制。
门禁系统一般由门禁控制器、门禁读卡器、卡片、电控锁、门禁软件、电源和相关门禁应用设备几部分组成。
常见的门禁系统有:
密码门禁系统,非接触IC卡(感应式IC卡)门禁系统,指纹、虹膜、掌型等生物识别门禁系统等。
门禁系统是随着自动识别技术的发展而迅速发展的,目前,国内外研制和使用的门禁系统主要集中在感应门禁系统和生物识别门禁系统。
在生物识别门禁系统中又以指纹门禁系统应用最为广泛。
密码门禁系统存在的问题是密码容易泄露,又无从查起,安全系数很低。
生物识别门禁系统安全性高,但成本高,由于识别率和存储容量等瓶颈问题没有很好的解决,而没有得到广泛的市场认同。
现在国际上最流行最通用的还是非接触IC卡门禁系统。
1.3本次设计的任务
本次设计就是要完成一个基于单片机的数字密码锁,它用于一个居民小区的家庭门锁控制,系统待机时显示时间和日期,当按下输入密码键并输入正确密码则开锁,如果密码错误则提示重新输入,如果输入密码错误超过三次则发出报警并自动锁定键盘,密码锁的所有操作都将记录入上位PC机的数据库中,并且可以通过上位机设定锁死和解锁功能。
1.4设计思想及系统方案选择
基于单片机的数字密码锁的结构如图1-1所示,各部分主要功能如下:
图1-1基于单片机的数字密码锁的组成结构
①MCU即微处理单元,对系统的各项数据、指令进行处理。
②LCD1602显示模块,具有背光,用于显示系统的各种状态。
待机时可显示时钟和日历。
切换到密码锁状态时显示各种操作提示。
③矩阵键盘作为输入模块,用于输入密码,以及配合其他按键对系统进行操作,如切换时钟显示状态和密码锁状态、输入密码等。
④报警模块,用于当系统被恶意试探或输入密码错误超过三次时发出报警信号。
⑤执行模块即是锁的机械动作部件,执行开锁、关锁动作。
⑥通信模块,用于与上位机的通信,使上位机对锁具有监控、管理的权限。
⑦时钟模块,用于产生时间和日历数据,发送到处理器后显示在LCD上,并且具有短时间掉电仍能保持正常工作的功能。
系统硬件电路部分采用模块化的设计思想。
按照功能将该数字密码锁分为输入模块、显示模块、报警模块、执行模块、通信模块和时钟模块。
硬件对应的软件部分的设计同样采用模块化的设计思想。
首先用C语言编写各个功能模块,然后再把这些功能模块连接起来,进行调试。
上位机的监控软件采用VisualBasic语言编写。
第2章基于单片机的数字密码锁的硬件设计
2.1MCU的选择
MCU的选择范围很广泛,本设计采用MCS-51系列单片机作为处理单元。
MCS-51系列单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等基本功能部件的微处理器,它拥有基于复杂指令集(CISC)的单片机内核,虽然其速度不快,12个振荡周期才执行一个单周期指令,但其端口结构为准双向并行口,可兼有外部并行总线,故使其扩展性能非常强大[1]。
它具有如下特点:
可靠性高:
系统软件(如:
程序指令、常数、表格)固化在ROM中,不易受病毒破坏。
许多信号的通道均在一个芯片内,故运作时系统稳定可靠,抗干扰的能力优于PC机;
便于扩展:
片内具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/输出)管脚,很容易组成一定规模的计算机应用系统;
控制功能强:
具有丰富的控制指令,如:
条件分支转移指令、I/O口的逻辑操作指令、位处理指令等;
实用性好:
体积小、功耗低、价格便宜、易于产品化。
而AT89S52是MCS-51系列单片机中比较突出的一款,它具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
鉴于AT89S52的以上特点,本系统采用AT89S52单片机作为处理单元。
2.1.1简单介绍AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统上编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52的各I/O口功能如下:
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表2-1所示。
在flash编程和校验时,P1口接收低8位地址字节。
表2-1P1口第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2口输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如表2-2所示。
在flash编程和校验时,P3口也接收一些控制信号。
:
复位输入。
当振荡器复位器件时,要保持
脚两个机器周期的高电平时间。
表2-2P3口作为AT89S52的特殊功能
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源VPP。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
存储器结构:
MCS-51器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64K寻址。
程序存储器:
如果
引脚接地,程序读取只从外部存储器开始。
对于89S52,如果
接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.1.2AT89S52的串口通信
在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯[3]。
波特率是指串行端口每秒内可以传输的波特位数。
有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600÷10=960字节。
51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。
模式2的波特率是固定在fosc/64或fosc/32,具体用哪一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs/64,SMOD为1,波特率为focs/32。
模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片)的溢出速率。
那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?
可以用以下的公式去计算:
波特率=(2SMOD÷32)×定时器1溢出速率
上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。
通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。
在这个定时模式2下定时器1溢出速率的计算公式如下:
溢出速率=(计数速率)/(256-TH1)
上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M的晶振用在51芯片上,那么51的计数速率就为1M。
通常用11.0592M晶体是为了得到标准的无误差的波特率,那么为何呢?
计算一下就知道了。
如我们要得到9600的波特率,晶振为11.0592M和12M,定时器1为模式2,SMOD设为1,分别看看那所要求的TH1为何值。
代入公式:
11.0592M
9600=(2÷32)×((11.0592M/12)/(256-TH1))
TH1=250
12M
9600=(2÷32)×((12M/12)/(256-TH1))
TH1≈249.49
上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。
当然一定的误差是可以在使用中被接受的,就算使用11.0592M的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
综上所述,由于本系统需要使用串口通信,为了得到标准的无误差的波特率,采用11.0592M晶体振荡器。
2.1.3晶振特性
如图2-1所示,AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。
石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。
从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图2-1所示。
由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。
图2-1内部振荡电路连接图
当采用石英晶振时,要求C1,C2=30pF±10pF
当采用陶瓷谐振器时,要求C1,C2=40pF±10pF
本系统采用11.0592M石英晶体振荡器,C1,C2=30pF瓷片电容。
2.2输入通道设计
本系统的输入功能基本可以由键盘完成。
键盘按其结构形式可分为编码式键盘和非编码式键盘两大类。
编码式键盘是由其内部硬件逻辑电路自动产生被按键的编码。
这种键盘使用方便,但价格昂贵。
非编码式键盘主要由软件产生被按键的编码。
它结构简单、价格便宜,但使用起来不如编码式键盘方便,键盘管理程序的编码也比较复杂。
单片机系统中普遍使用非编码式键盘。
这类键盘应主要解决以下几个问题:
①键的识别;②如何消除键的抖动;③键的保护。
在以上几个问题中,最主要的是键的识别。
2.2.1键盘识别方法
非编码式键盘识别闭合键通常有两种方法:
一种称为行扫描法,另一种称为线反转法。
2.2.1.1行扫描法
在单片机系统中键盘的按钮数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵形式,如图2-2所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按钮加以连接。
这样,一个端口(如P1口)就能组成
=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,图2-2中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按钮没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
具体的识别方法如下所述:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 防盗门