毕业论文基于单片机的多功能密码锁的设计与实现.docx
《毕业论文基于单片机的多功能密码锁的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文基于单片机的多功能密码锁的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
毕业论文基于单片机的多功能密码锁的设计与实现
1引言
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,基于单片机的密码锁由于其安全可靠、成本低廉、连接方便、简单易用,保密性高,受到了广大用户的亲赖,得到了广泛的应用。
微电子技术的不断发展,出现了磁控锁、声控锁、超声波锁、红外线锁、电磁波锁、电子卡片锁、指纹锁、眼球锁、遥控锁等。
这些锁具有机械结构所无法比拟的高保密性能,还可在特定的系统中,按设定的逻辑关系实现系统的程序控制。
但这类产品,只能适用于保密性高,供个别人使用的箱、柜、房间等。
加上成本比较高,一定程度上限制了这类产品的推广应用。
本设计是一款性价比较高的的密码锁。
为适应功能需要以及兼容性等问题,采用SM8958为核心的单片机控制方案。
该方案主要由主控部分、键盘、显示、示警电路、执行机构等部分构成。
其中密码由键盘输入端口输入,解码正确条件下,输出开锁电平,控制电控锁开启。
另外,附加了一些常用设计,有效按键提示、错误输入告警、多次(可软件设计次数)误码输入报警以及防止长时间无效操作的定时中断系统。
该电路还可以与其他报警电路配合完成防盗报警功能。
2概述
在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
本次密码锁的设计,其主要具有如下功能:
(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(6位密码),密码输入正确才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
(3)报警、锁定键盘功能。
密码输入错误会发出警告音。
若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
(4)有效按键提示。
(5)90秒定时中断,输出控制信号,防止长时间无效操作。
(6)其他扩展功能。
3总体设计
方案的论证与比较
设计本课题时构思了两种方案:
一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。
另一种是用以SM8958为核心的单片机控制方案。
(1)方案一:
采用数字电路控制,数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
(2)方案二:
采用一种是用以SM8958为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加红外遥控控制功能。
通过比较以上两种方案,考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,而单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
总体设计思路
本次设计以单片机SM8958为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。
单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机输出报警信号。
对密码的输入、处理是本次设计的重点,配以其他电路实现基于单片机的多功能密码锁。
其基本要求及主要模块如下:
电子密码锁的设计主要由三部分组成:
处理器、3×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED提示灯,报警蜂鸣器等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:
(1)密码输入功能:
按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:
当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)密码更改功能:
将输入的值作为新的密码。
(4)开锁功能:
当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
如何解决以上关键问题是本次设计的重点。
4硬件设计
本次设计的处理器选择SyncMOS公司的SM8958,SM8958系列产品是一种内嵌32KB闪存和1KB片内RAM的8位单片微控制器它是80C51微控制器家族的派生产品SM8958的PDIP封装具有32个I/O口,PLCC/QFP封装则具有多达36个I/O口且片内32KB的闪存既可以当作程序空间,又可以当作数据空间或者数据和程序混合空间。
由于它的这些硬件特征和强大的指令系统使得它成为一种性能价格比很高的控制器。
片上闪存可以使用商用编程器通过并口进行编程。
其存储器结构如下:
SM8958是在通用80C52内核的基础上集成了768B片内RAM和32K闪存的单片微控制器。
它的内部存储器结构与通用的80C52内部存储器的结构相同。
其主要特性如下:
Ø█
Ø█编程电压12V
Ø█与通用80C51家族产品完全兼容
Ø█每个机器周期为12个时钟周期
Ø█32K字节片上闪存
Ø█1024字节片上数据RAM
Ø█3个16位定时/计数器
Ø█PDIP封装具有4个8位I/O口
Ø█PLCC或QFP封装具有4个8位I/O口外加1个4位I/O口
Ø█全双工串口通道
Ø█位操作指令
Ø█页自由跳转
Ø█8位无符号除运算
Ø█8位无符合乘运算
Ø█BCD码运算
Ø█直接地址访问
Ø█间接地址访问
Ø█嵌套中断
Ø█两个中断优先级
Ø█1个串行I/O口
Ø█省电模式空闲模式和掉电模式
Ø█工作时钟为25MHz
Ø█代码保护功能
Ø█1个看门狗定时器(WDT)
Ø█低EMI(禁止ALE)
其引脚图如图4.1所示。
图4.18958引脚图
程序存储器
SM8958具有片上的32K字节的闪存可以作为通用的程序存储器所示。
图4.2程序存储器配置
数据存储器
SM8958具有1KB的片内RAM,低256B与80C52的片内RAM结构一样。
扩展的高768BRAM可以用访问外部存储器的方式进行访问(利用指令MOVX)。
如图所示。
扩展的768字节的
RAM(可以用指令
MOVX直接外部方式
访问)
图4.3数据存储器配置
如图(三)所示,说明如下:
(1)数据存储器低128B
数据存储器从00H--FFH的地址空间同80C52是相同的。
00H--7FH的地址空间可以直接访问也可以间接访问;
00H--1FH的地址空间是寄存器空间;
20H--2FH的地址空间是位寻址空间;
30H--7FH的地址空间是通用数据存储区。
(2)数据存储器高128B
数据存储器的高128B范围是80H--FFH,只可以用间接地址方式访问,这部分空间也是数据存储区。
(3)数据存储器扩展的768B
从外部地址0000H--02FFH是片内扩展RAM区,共768B。
这部分地址空间只能用直接外部地址方式访问(利用MOVX指令)。
(3)内部存储区页选择寄存器(IMPSR,85H)
内部存储区页选择寄存器,如表4.1所示。
表4.1内部存储区页选择寄存器
MSB
LSB
R
R
R
R
R
R
PS1
PS0
0
0
0
0
0
0
0
0
说明:
R表示系统保留。
SM8958片内具有只能用访问外部存储器的方式进行访问的768B扩展RAM(访问时用指令MOVX)。
指令MOVX@Rn所访问的地址空间由IMPSR寄存器的位1和位0(PS1,PS0)决定PS1,PS0的默认设置值是00(页0)。
如果MOVX@DPTR指令所访问的地址大于02FFH时SM8958会自动产生访问外部存储器的控制信号。
特殊功能寄存器SCONF的位1(OME)的值决定了允许还是禁止访问扩展的768字节RAM。
该位的默认设置为1,可以访问内部扩展的768字节RAM。
指令MOVX@Rn所能访问的地址空间由特殊函数寄存器IMPSR(85H)的位1(PS1)和位0(PS0)决定。
PS1和PS2的默认设置是00。
数据存储器的一页是256字节,具体如下:
PS1,PS0=00指令MOVX@Rn的Rn映射为数据存储器的第0页,地址空间为0000H--00FFH;
PS1,PS0=01指令MOVX@Rn的Rn映射为数据存储器的第1页,地址空间为0100H--01FFH;
PS1,PS0=10指令MOVX@Rn的Rn映射为数据存储器的第2页,地址空间为0200H--02FFH;
PS1,PS0=11指令MOVX@Rn的所能访问的地址空间为:
XY00H--XYFFH。
高位地址由P2口决定(SM8958会自动产生访问外部存储器的控制信号)。
看门狗定时器(WDT)
看门狗定时器(WDT)是1个16位自运行计数器在计数器溢出时会产生复位信号WDT对那些易受噪声干扰电压波动或放电现象影响的系统很有用在程序跑飞或死机的情况下WDT可以使用户程序脱离不正常状态WDT不同于8052系统的定时器0定时器1和定时器2通过软件周期性的清除WDT计数器的值可以防止WDT产生复位信号。
SM8958的WDT可以对基准时钟源选择分频输入要选择分频输入就要相应地设置WDT控制寄存器(WDTC)的位2--位0的值。
置位WDT的位7(WDTE)即可使能WDT。
WDTE位置1后,16位计数器根据
PS2--PS0所确定的时钟输入开始工作。
计数器溢出时会产生复位信号,此时WDT的WDTE位会被清零,另外硬件复位也可以将WDTE清零。
置位WDT的位5(CLEAR)可以复位WDT,同时清除计数器的内容,使计数器重新开始计数。
(1)WDT控制寄存器(WDTC,9FH)
WDT控制寄存器,如表4.2所示。
表4.2WTD控制寄存器
MSB
LSB
WTDE
R
R
R
R
PS2
PS1
PS0
0
0
0
0
0
0
0
0
说明:
上面寄存器内的值为系统复位值;
WDTE:
看门狗定时器使能位;
CLEAR:
看门狗定时器复位位;
PS2PS0:
时钟源分频选择位。
(2)时钟分频描述如下表4.3所示。
表4.3时钟分频
PS2
PS1
PS0
分频器(晶振输入)
时钟周期(ms)@40HZ
0
0
0
8
0
0
1
16
0
1
0
32
0
1
1
64
1
0
0
128
1
0
1
256
1
1
0
512
1
1
1
1024
(3)系统控制寄存器(SCONF,BFH)
系统控制寄存器,如表4.4所示。
表
MSB
LSB
WDR
R
R
R
R
R
OME
ALE1
0
0
0
0
0
0
0
0
说明:
上面寄存器内的值为系统复位值
WDR:
看门狗定时器复位位当看门狗定时器溢出而使系统复位时WDR位被置1
OME:
768片上字节使能位
ALE1:
ALE输出禁止位可降低EMI
SCONF的位7(WDR)是看门狗复位位当由于WDT溢出而产生复位信号时该位被置1。
在任何不可预测的复位发生时用户应该检查该位的值
(4)降低EMI功能
SM8958允许用户通过置位SCONF寄存器的位0(ALE1)来降低EMI。
该项功能的作用就是禁止Fosc/6Hz的时钟信号输出至ALE引脚。
在系统没有外扩程序存储器或数据存储器的时候,可以使用这个功能。
4.2键盘
键盘概念
键盘是最常用也是最主要的输入设备,通过键盘,可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。
键盘的分类
按照键盘的工作原理和按键方式的不同,可以划分为四种:
(1)机械式键盘(Mechanical)采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。
(2)塑料薄膜式键盘(Membrane)键盘内部共分四层,实现了无机械磨损。
其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。
(3)导电橡胶式键盘(ConductiveRubber)触点的结构是通过导电橡胶相连。
键盘内部有一层凸起带电的导电橡胶,每个按键都对应一个凸起,按下时把下面的触点接通。
这种类型键盘是市场由机械键盘向薄膜键盘的过渡产品。
(4)无接点静电电容式键盘(Capacitives)使用类似电容式开关的原理,通过按键时改变电极间的距离引起电容容量改变从而驱动编码器。
特点是无磨损且密封性较好。
按其结构形式可分为以下两种:
(1)编码键盘
编码键盘采用硬件方法产生键码。
每按下一个键,键盘能自动生成键盘代码,键数较多,且具有去抖动功能。
这种键盘使用方便,但硬件较复杂,PC机所用键盘即为编码键盘。
(2)非编码键盘
非编码键盘仅提供按键开关工作状态,其键码由软件确定,这种键盘键数较少,硬件简单,广泛应用于各种单片机应用系统,本次设计使用非编码键盘。
按照键盘与单片机的连接方式可分为一下两种:
(1)独立式键盘
独立式键盘,顾名思义,即各按键相互独立,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他按键的工作状态。
这种按键软件程序简单,但占用I/O口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。
(2)矩阵式键盘
矩阵式键盘又称行列式键盘,在其行、列交汇点接有若干个按键。
当需要较多按键时,与独立式键盘相比,单片机口线资源利用率大幅提高了。
但若需要更多的键盘,需采用接口扩展技术,如8155等。
综上所述,结合实际情况,本次设计选用非编码矩阵式键盘。
非编码矩阵式键盘工作原理
非编码矩阵式键盘,作为单片外围电路,应具有如下功能:
(1)键扫描功能,即检测是否有键按下。
(2)键识别功能,确定被按下键所在的行列的位置。
(3)产生相应的键的代码(键值)。
(4)消除按键弹跳及对于多键串键(复按)。
非编码矩阵式键盘工作原理主要以下几方面:
(1)键扫描
键盘上的键按行列组成矩阵,在行列交点上都有对应有一个键。
为判定有无键被按下(闭合)以及被按键的位置,一般使用扫描法。
首先判定有没有键被按下。
键盘的行线一端经电阻接+5V电源,另一端接单片机的输入口线。
各列线的一端接单片机的输出口线,另一端悬空。
为判定有没有键按下,可先向所有列线输出低电平,然后再输入各行线状态。
若行线状态皆为高电平,则表示无键按下;若行线状态中有低电平则表明有键按下。
然后再判定被按键的位置。
因为键盘矩阵有键被按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变成低电平。
(2)去抖动
当扫描表明有键被按下之后,紧急着应进行去抖动处理。
因为常用键盘的键实际上是一个机械开关结构,被按下时,由于机械触点的弹性及电压突然跳变等原因,在触点闭合或断开的瞬间会出现电压的抖动。
抖动时间长短与键的机械特性有关,一般为5~10ms。
而键稳定闭合时间和操作者的按键动作有关,约为十分之几到几秒不等。
抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误,因而必须设法消除抖动的不良后果。
通过去抖动处理,可以得到按键闭合与断开的稳定状态。
去抖动的方法有硬件与软件两种:
硬件方法是加去抖动电路,如可通过RS触发器实现硬件去抖动;软件方法是在第一次检测到键盘按下后,执行一段20---30ms的延迟子程序后再确认该键是否确实按下,躲过抖动,待信号稳定之后,再进行键扫描。
为了简单起见,本设计采用软件方法去抖动。
(3)键码计算
为了准确判断闭合键的位置,要对每个按键进行编码。
根据矩阵式键盘的结构,采用行扫描的键位识别方法。
使某条列线为低电平,如果这条列线上没有闭合键,则各行线的状态都为高电平;如果列线上有键闭合,则相应的那条行线即变为低电平。
于是就可以根据行线号与列线号计算出闭合键的键码。
扫描时由第一列开始,然后行线状态状态输入单片机,判断哪一行有键闭合,若无键闭合,再扫描第二列,检测下一列各行键闭合状态,由此一直扫描下去。
至此扫描似乎已经可以结束,但是实际上扫描往往要继续进行下去,以发现出现的多键同时被按下。
最后得出被按下键的行号、列号,计算键码,公式如下:
键码=行首键号+列号
(4)等待键释放
计算键码后,再以延时后进行行扫描的方法等待键释放。
等待键释放是为了保证键的一次闭合仅进行一次处理。
(5)键处理子程序
在计算机中每一个键都对应一个处理子程序,得到闭合键的键码后,就可以根据键码,转到相应的键处理子程序,进行字符、数据的输入或命令处理,这样就可以实现该键的功能。
(6)键盘扫描的中断控制方式
在单片机系统中,CPU除了对键盘进行处理外,还要进行数据处理、结果输出显示及其它各种控制,因此键盘处理不应占用CPU过多的时间,但又必须保证CPU能够检测到键盘的工作。
为提高CPU的工作效率,可采用中断扫描方式。
当无键闭合时,CPU处理自已的工作,当有键闭合时,产生中断请求,CPU转去执行键盘扫描子程序并执行相应的功能。
设计中可采用4输入与门用于产生键盘中断,其输入端与各行线相连,输出端接至SM8958的外部中断输入端。
当无键盘闭合时,与门各输入端均为高电平,输出端为高电平;当有键闭合时,为低电平,于是向CPU申请中断。
若CPU开放中断,则会响应该键盘中断,转去执行键盘扫描子程序。
4.3显示电路
显示器是最长用的输出设备。
特别是发光二极管(LED)和液晶显示器(LCD),犹豫结构简单、价格便宜、接口容易,得到广泛的应用,尤其在单片机系统中大量使用。
LED结构与原理
LED就是LightEmittingDiode,发光二极管的英文缩写,简称LED。
它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
LED的技术进步是扩大市场需求及应用的最大推动力。
最初,LED只是作为微型指示灯,在计算机、音响和录像机等高档设备中应用,随着大规模集成电路和计算机技术的不断进步,LED显示器正在迅速崛起,近年来逐渐扩展到证券行情股票机、数码相机、PDA以及手机领域。
LED显示器集微电子技术、计算机技术、信息处理于一体,以其色彩鲜艳、动态范围广、亮度高、寿命长、工作稳定可靠等优点,成为最具优势的新一代显示媒体,目前,LED显示器已广泛应用于大型广场、商业广告、体育场馆、信息传播、新闻发布、证券交易等,可以满足不同环境的需要。
通过发光二极管芯片的适当连接(包括串联和并联)和适当的光学结构。
可构成发光显示器的发光段或发光点。
由这些发光段或发光点可以组成数码管、符号管、米字管、矩阵管、电平显示器管等等。
通常把数码管、符号管、米字管共称笔画显示器,而把笔画显示器和矩阵管统称为字符显示器。
.1LED结构
基本的半导体数码管是由七个条状发光二极管芯片按一定排列方式组合而成。
可实现0~9的显示。
其具体结构有“反射罩式”、“条形七段式”及“单片集成式多位数字式”等。
说明如下:
(1)反射罩式数码管一般用白色塑料做成带反射腔的七段式外壳,将单个LED贴在与反射罩的七个反射腔互相对位的印刷电路板上,每个反射腔底部的中心位置就是LED芯片。
在装反射罩前,用压焊方法在芯片和印刷电路上相应金属条之间连好φ30μm的硅铝丝或金属引线,在反射罩内滴入环氧树脂,再把带有芯片的印刷电路板与反射罩对位粘合,然后固化。
反射罩式数码管的封装方式有空封和实封两种。
实封方式采用散射剂和染料的环氧树脂,较多地用于一位或双位器件。
空封方式是在上方盖上滤波片和匀光膜,为提高器件的可靠性,必须在芯片和底板上涂以透明绝缘胶,这还可以提高光效率。
这种方式一般用于四位以上的数字显示(或符号显示)。
(2)条形七段式数码管属于混合封装形式。
它是把做好管芯的磷化镓或磷化镓圆片,划成内含一只或数只LED发光条,然后把同样的七条粘在日字形“可伐”框上,用压焊工艺连好内引线,再用环氧树脂包封起来。
(3)单片集成式多位数字显示器是在发光材料基片上(大圆片),利用集成电路工艺制作出大量七段数字显示图形,通过划片把合格芯片选出,对位贴在印刷电路板上,用压焊工艺引出引线,再在上面盖上“鱼眼透镜”外壳。
它们适用于小型数字仪表中。
(4)符号管、米字管的制作方式与数码管类似。
(5)矩阵管(发光二极管点阵)也可采用类似于单片集成式多位数字显示器工艺方法制作。
.2LED显示器分类
(1)按字高分:
笔画显示器字高最小有1mm(单片集成式多位数码管字高一般在2~3mm)。
其他类型笔画显示器最高可达(0.5英寸)甚至达数百mm。
(2)按颜色分有红、橙、黄、绿等数种。
(3)按结构分,有反射罩式、单条七段式及单片集成式。
(4)从各发光段电极连接方式分有共阳极和共阴极两种。
4.3.1.3LED显示器的参数
由于LED显示器是以LED为基础的,所以它的光、电特性及极限参数意义大部分与发光二极管的相同。
但由于LED显示器内含多个发光二极管,所以需有如下特殊参数:
(1)发光强度比
由于数码管各段在同样的驱动电压时,各段正向电流不相同,所以各段发光强度不同。
所有段的发光强度值中最大值与最小值之比为发光强度比。
比值可以在1.5~2.3间,最大不能超过2.5。
(2)脉冲正向电流
若笔画显示器每段典型正向直流工作电流为IF,则在脉冲下,正向电流可以远大于IF。
脉冲占空比越小,脉冲正向电流可以越大。
LCD结构与原理
LCD就是LiquidCrystalDisplay,液晶显示器的英文缩写,简称LCD。
它的主要原理是以电流刺激