基于单片机的电子密码锁设计.docx
《基于单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁设计
毕业论文(设计)
题目基于单片机的电子密码锁设计英文题目DesignofElectricCodedLockBasedonMCU
院系
专业
姓名
年级
指导教师
年月
摘要
随着科技的不断发展,人们越来越重视对具有私密、重要物质的场所的安全性,所以具有报警功能的电子密码锁在日常生活中用的越来越多,因此研究与设计单片机为主要控制器的电子密码锁具有工程意义和解决日常应用需求的价值。
本电子密码锁的设计采用以单片机STC89C52RC为主控制器,应用矩阵键盘、
SMC1602A液晶显示器、STC89C52R内C部的EEPRO等M器件进行设计了键盘电路、液晶显示电路、UART串口电路、电源(5V)电路、指示(LED)电路、报警(蜂鸣器)电路等电路设计;应用protel软件设计了硬件原理图和PCB图;应用C51语言设计了显示时间和校对时间、输入密码和修改密码、控制EEPROM等软件模块;最后焊接PCB并调试电路。
最终设计出一个具有等待状态显示时间(可以对时间进行校准)、输入密码、修改密码、密码正确与否指示、报警、密码保护、一键还原初始密码等功能的密码锁。
设计此系统具有较高的安全性和科学性。
关键词:
单片机;电子密码锁;液晶显示;报警;密码保护
Abstract
Astechnologycontinuestoevolve,thereisgrowingemphasisonhavingaprivate,importantmaterialsecurityoftheplace,sothealarmfunctionofelectroniclocksusedineverydaylife,moreandmore,sotheresearchanddesignofmicrocontrollerasthemaincontroller'selectroniclockswithengineeringsignificanceandvalueofsolvingeverydayapplications.TheelectroniclocksaredesignedusingamicrocontrollerSTC89C52RCmaincontroller,applicationmatrixkeyboard,SMC1602ALCDmonitors,STC89C52RCinternalEEPROMdevicessuchasthedesignofthekeyboardcircuit,liquidcrystaldisplaycircuit,UARTserialcircuit,powersupply(5V)circuit,indicating(LED)circuit,alarm(buzzer)circuit,circuitdesign;protelsoftwareapplicationdesignedhardwareschematicsandPCBmap;C51languagedesignedapplicationdisplaysthetimeandcheckingthetime,enterthepasswordandchangepasswords,controlsoftwaremodulessuchasEEPROM;finallysolderedPCBanddebugcircuits.Thefinaldesignofastatusdisplaywithwaitingtime(timecanbecalibrated),enteryourpassword,changeyourpassword,thepasswordiscorrectornotindication,alarm,passwordprotection,akeytorestoretheinitialpasswordlockandotherfunctions.Designofthissystemwithhighsecurityandscientific.
Keywords:
MCU;Electric;CodedLock;LCD;Alarm;PasswordProtection
Abstract错误!
未
定义书签。
1引言
1.1本文的研究背景及意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.⋯..4
1.2技术的发展历史与现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...⋯⋯.⋯⋯...4
2系统总体方案设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..⋯⋯⋯⋯⋯⋯.⋯..⋯5
2.1电子密码锁系统的功能简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.⋯.5
2.2电子密码锁系统的总方案设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯..⋯⋯⋯7
3系统硬件设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...⋯⋯⋯⋯...16
3.1指示灯电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...⋯16
3.25V电源电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16
3.3晶振电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..17
3.4复位电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17
3.5液晶显示电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯18
3.6报警电路设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...18
4系统软件设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...19
4.1主程序设计流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...21
4.2键盘扫描设计流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯...22
4.3输入密码程序设计流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..22
4.4修改密码程序设计流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯.23
5系统测试与调试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯24
5.1系统仿真测试与调试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..⋯25
5.2系统测试及结果分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯.26结论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..⋯.27
参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯28致谢⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯29
附录A源程序清单⋯⋯⋯⋯⋯⋯.⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯..⋯30
引言
1.1本文的研究背景及意义随着科技的不断进步和发展,人类已经步入了一个高科技的新时代。
在这日新月异的时代中,人们对住宅、部门等具有私密、重要物质的场所的安全性要求不断提高。
旧社会中,由于科技不发达,人们常常用机械锁来保护个人的财产,以这种方法来确保它们的安全性。
这种用钥匙开锁式的机械锁常常会给人们带来不少的烦恼,比如:
开锁的钥匙不慎丢了或者锁门的锁坏了。
同时,平时携带一大窜钥匙也给人们带来不少的麻烦。
从安全的角度来看,一种具有报警和高实用性的密码锁将取代人们所熟知的机械锁,这种电子密码锁安全可靠,具有较高的安全性和科学性。
1.2技术的发展历史与现状
1.2.1电子密码锁技术的发展历史电子密码锁从电子科技技术发展以来经历了由大型到小型、由复杂到简单、由原始到智能的发展经历。
尤其是近年来不同型号的微处理器出现,为电子密码锁不断的改进与创新提供了新的发展契机:
比如如今的微处理器会做的很小,这样小巧的处理器能为电子密码锁节省更多的硬件空间达到节省成本;再比如说老版本的8051单片机它内部是不提供EEPROM的,这如果想实现数据储存就需要用I2C总线来外接存储器来保存数据,如今单片机内部有EEPROM数,据掉电不会丢失。
说到识别密码方式,国内外大致经历了由早期的矩阵键盘输入操作到红外遥控控制操作再到智能IC卡再到如今指纹识别等多种实现方法。
红外遥控控制密码锁会更加的方便快捷,通过密码锁的内部芯片对红外接收头接受到的信号进行解码然后通过对比密码来判定输入密码是否正确;IC卡密码锁设计是基于一个AT24C01A卡进行设计的,IC卡的核心是电可擦除的EEPRO。
M指纹密码锁设计是西门子公司研制的一种指纹感应片,这种芯片面积只有130mm,大小和人的指甲盖差不多,在这么小的芯片上却覆盖着有6.5万个微小型敏感元件,每个感应片有很高的灵敏度和测量精度,如此多的敏感细致元件完全可以非常详细和精准的将人手上的各种纹路信息拾取下来,将指纹数据存于电脑数据库中,这种具有人体特征标志的人体密码不仅可以大大增加了私人财产的安全性而且其操作简便、快捷具有很高的可靠性,于是这种指纹人体密码芯片将逐渐的被用于日常生活中具有重要物质的场所和设备比如银行、仓库等。
还有显示方面,早期显示使用的led灯、后来有了7段数码管、再后来大多数用的是lcd显示器。
所以,随着科技的进步和创新,设计密码锁的技术也不甘落后,也在朝着智能化,通用化,人性化等富有创新的方向发展。
1.2.2电子密码锁技术的研究现状针对电子密码锁系统设计经过翻阅资料和对学术论文的学习和研究,提出多种实现方案,其中比较典型的有以下几种。
文献中应用矩阵式键盘作为密码输入,用单片机的IO口控制键盘,通过编写程序用单片机对键盘进行扫描,然后用7段数码管显示系统状态和信息、门开门关提示信息是由LED灯进行提示。
还有,应用红外遥控器和红外接收头来代替上面的矩阵式键盘,采用现成的遥控器,应用单片机编程对红外接收头接受的信号进行解码,显示应用的是型号为1602A的液晶显示,开关门指示信息是由led灯提示的,设计的优势是应用了I2C总线来控制外接的EEPEO,M来实现输入密码的数据保存功能。
还有,应用STC89C52单片机,这个单片机和AT系列的单片机最大区别就是这类单片机有内部集成了4kb大小的EEPRO,M利用ISP/API功能能应用编程来控制内部的EEPRO的M读写而不需要外接存储器来进行数据保护。
再有,应用单片机来完成以下的工作,第一个工作是对连接在单片机IO口上的键盘进行编码来制作一个远红外遥控器,将序列码经过发送头发送到单片机连接的接收头上,第二个工作是将接受到的数据经过红外接收头解码将数据交给单片机来处理来实现各个码的功能。
目前,电子密码锁的功能的得到实现的新方法真是别出心裁,展现科技的发展和进步,比如:
IC卡和指纹识别,IC卡密码锁设计是基于一个AT24C01A卡进行设计的,IC卡的核心是EEPRO。
M应用指纹设计出的密码锁主要应用的是传感器是西门子公司研制,这种传感器有很高的测量精度和灵敏度,所以这种人体密码大大提高了家庭、个人、公共的具有重要性的财产的安全性,这是科技发展和人类不断创新的结果,所以我们要好好利用科技带给我们生活的每一种便捷。
2系统总体方案设计
2.1电子密码锁系统的功能简介
对本系统设计任务书要求的功能罗列如下:
1、系统的液晶显示屏具有指示功能。
2、系统在空闲状态显示当前时间并可以对时间进行校准。
3、系统在输入密码状态用键盘(0~9)来输入系统设定的当前密码,如果密码输入正确在屏幕上有欢迎信息提示和开门信息提示;如果输入密码错误在屏幕上会有密码错误信息提示,如果输入密码错误三次将会有报警提示。
4.系统在修改密码状态,要求输入当前密码,如果密码输入正确则进入修改密码状态;如果输入当前密码错误则有错误信息提示。
5.系统有存储数据功能,当断电后会保存当前的密码不会丢失。
6.系统在按了输入密码键或修改密码健后如果30秒内没有对系统进行任何操作的话,系统将自动切换到显示时钟状态。
7.系统具有一键还原出厂密码功能,如果对密码管理不善可以使用本功能进行密码还原。
2.2电子密码锁系统的总方案设计
本课题设计用的主要芯片有两个:
一个是STC89C52单片机,一个是SMC1602A液晶显示器。
STC89C52单片机作为系统的总控制核心,SMC1602A为主要的外围电路。
下面对STC89C52和SMC1602A做一下简单的介绍。
2.2.1STC89C52概述
图2.1STC89C52单片机
Figure2.1STC89C52single-chip
STC89C52系列单片机的封装形式共分为DIP、PLCC及PQEP3中形式,常用的是DIP封装方式。
STC89C52单片机共40个引脚,大致可分为4类:
(1)电源引脚
Vcc(40脚):
电源端,+5V
Vss(20脚):
接地端(GND)
(2)时钟电路引脚
XTAL1(19脚):
外部接晶振输入端
XTAL2(18脚):
外部接晶振输出端
(3)I/O引脚
P0口(39~32脚):
P0口是一组8位的漏极开路型双向I/O口,也是地址和数据的总线复用口
P1口(1~8脚):
P1口是一组带内部上拉电阻的8位准双向I/O口,可驱动4个TTL门电路
P2口(21~28脚):
P2口是一组带内部上拉电阻的8位准双向I/O口,可驱动4个TTL门电路
P3口(10~17脚):
P3口是一组带内部上拉电阻的8位准双向I/O口,该端口的每个引脚都有第二功能
(4)控制线引脚
RST(9脚):
复位端
EA/VPP(31脚):
片外的存储器选择端/Flash存储器编程电源
ALE/PROG(30脚):
地址锁存允许端/编程脉冲输入端
PSEN(29脚):
读片外程序存储器选通信号输入端
STC89C52单片机最大的特点就是有ISP/IAP功能,它具有4K字节的EEPRO。
M其内部集成的EEPROM是与程序空间分开的,内部寄存器和功能描述如下:
表2.1ISP/IAP相关寄存器列表
名称
地
址
功能描述
D7
D6
D5D
4
D
3
D2
D1
D0
复位值
ISP_DAT
E2h
Flash数据寄存器
1111
A
1111
ISP_ADD
E3h
Flash高字节地址
0000
RH
寄存器
0000
ISP_ADD
E4h
Flash低字节地址
0000
RL
寄存器
0000
ISP_CMD
E5h
Flash命令模式寄
MS
MS
MS
xxxx
存器
-
-
2
1
0
x000
ISP_TRI
E6h
Flash命令触发寄
xxxx
G
存器
xxxx
ISP_CON
E7h
ISP/IAP控制寄
ISPE
SWB
SWRS-
-
WT
WT
WT
000x
TR
存器
N
S
T-
-
2
1
0
x000
ISP_DATA:
ISP/IAP操作时的数据寄存器。
ISP/IAP从Flash读出的数据放在此处,向Flash写入的数据也需放在此处。
ISP_ADDR:
HISP/IAP操作时的地址寄存器高八位。
ISP_ADDR:
LISP/IAP操作时的地址寄存器低八位。
ISP_CMD:
ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。
命
令模式如表2.2所示。
表2.2ISPCMD寄存器模式设置
D7DDD
654
DDDD模式选择
3210
保留
命令选择
-000待机模式,无ISP操作
001对用户的应用程序flash区及数据flash区字
程序在系统ISP程序区时可以对用户应用程序区/数据Flash区(EEPROM进)行字节读/字节编程/扇区擦除;程序在用户应用程序区时,仅可以对数据Flash区(EEPROM进)行字节读/字节编程/扇区擦除。
STC89C51RC/RD系+列单片机出厂时已经固化有ISP引导码,并设置为上电复位进入ISP程序区,并且出厂时就已完全加密。
ISP_TRIG:
ISP/IAP操作时的命令触发寄存器。
在ISPEN(ISP_CONTR.7)=1时,对ISP_TRIG先写入46h,再写入B9h,ISP/IAP命令才会生效。
STC89C52R,CSTC89LE52R单C片机内部可用DataFlash(EEPROM的)地址如表2.3所示
表2.3STC89C52RC、STC89LE52RC单片机内部EEPROM地址表
第一扇区
第二扇区
第三扇区
第四扇区
起始地址2000H
结束地址21FFH
起始地址2200H
结束地址23FFH
起始地址2400H
结束地址25FFH
起始地址2600H
结束地址27FFH
第五扇区
第六扇区
第七扇区
第八扇区
起始地
结束地
起始地
结束地
起始地
结束地
起始地
结束地
址
址
址
址
址
址
址
址
2800H
29FFH
2A00H
2BFFH
2C00H
2DFFH
2E00H
2FFFH
2.2.2SMC1602A概述
图2.2SMC1602A封装图
Figure2.2SMC1602A
SMC1602A标准字符点阵型液晶显示模块(LCM),采用点阵型液晶显示器(LCD),可显示16个字符X2行西文字符,
字符尺寸为2.95X4.35(WXH)mm,内置HD44780接口型液晶显示控制器,可与MCU单片机直接连接,广泛应用于各类仪器仪表及电子设备
图2.3SMC1602A接口说明
Figure2.3SMC1602Ainterface
◆控制器接口说明(HD44780及兼容芯片):
1)基本操作时序:
1.1读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
1.2写指令:
输入:
RS=L,RW=L,D~0D7=指令码,E=高脉冲输出:
无
1.3读数据:
输入:
RS=H,RW=H,E=H输出:
D0~D7=数据
1.4写数据:
输入:
RS=H,RW=L,D~0D7=数据,E=高脉冲输出:
无
2)RAM地址映射图控制器内部带有80X8位(80字节)的RAM缓冲区,对应关系
如右图所示:
图2.4SMC1602ARAM地址映射图
3)指令说明初始化设置显示模式设置
图2.5SMC1602A显示模式设置
显示开/关及光标设置
图2.6SMC1602A显示与光标设置
数据控制控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。
数据指针设置
图2.7SMC1602A数据结构指针设置其他设置
图2.8SMC1602A其他设置
4)初始化过程(复位过程)
写指令38H:
显示模式设置第一次延时3ms
写指令38H:
显示模式设置第二次
延时3ms
写指令38H:
显示模式设置第三次
延时3ms
写指令38H:
显示模式设置第四次
延时3ms
写指令08H:
显示关闭
写指令01H:
显示清屏
延时3ms
写指令06H:
显示光标移动设置
写指令0CH:
显示开及光标设置
2.2.3系统框图
本系统的核心部分是STC89C52单片机,利用MAX232芯片实现将hex文件下载到单片机运行的功能;利用SMC1602液晶显示屏实现电子密码锁所需的提示信息输出功能;利用键盘实现对密码操作的各项的功能比如输入密码或者修改密码等;采用蜂鸣器实现系统在输入密码错误三次后的自动报警功能;LED灯来指示密码输入是否正确和指示状态的功能;利用STC单片机内部的EEPROM实现密码数据保存功能;用电源电路为系统提供5V的稳定电源电源;用12MHZ的晶振电路为系统的单片机提供内部时钟。
系统的框图如下图所示:
图2.8系统结构框图
Systemstructurediagraminfigure2.8
单片机中P1.0~P1.6连接10个独立按键来组成一个矩阵键盘,实现键盘扫描并对按键进行编码,从而实现输入密码和修改密码的功能;P1.7通过NPN型三极管来驱动蜂鸣器,当输入密码错误三次后自动实现报警功能;P2.0~P2.7连接液晶显示器的8位数据线,实现从单片机向液晶显示器传输数据;P3.0连接液晶的RS端和max232的out端、P3.1连接液晶的RW端和max232的in端、P3.2连接液晶的EN端,实现单片机控制液晶显示器和连接串口的功能;P3.3连接独立按键,按键后进入输入密码状态;单片机的P3.4、P3.5、P3.6都连接了独立按键,这些独立键盘都是功能键盘他们是:
输入密码功能键,按下系统会进入输入密码状态;修改密码功能键,按下系统会进入修改密码状态;还有一个确定功能键,按下系统会实现确定功能;P3.6和P3.7分别连接红色LED灯和绿色的LED灯,实现密码输入是否正确指示的功能。
3系统硬件设计
本设计包括8个电路模块,其中包括:
指示灯电路模块、5V电源电路模块、晶振电路模块、复位电路模块、LCD显示电路模块、报警电路模块、键盘电路模块、串口电路模块。
3.1指示灯电路设