基于单片机的电子密码锁电路的研究文档格式.docx

上传人:b****1 文档编号:4462962 上传时间:2023-05-03 格式:DOCX 页数:30 大小:238.63KB
下载 相关 举报
基于单片机的电子密码锁电路的研究文档格式.docx_第1页
第1页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第2页
第2页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第3页
第3页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第4页
第4页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第5页
第5页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第6页
第6页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第7页
第7页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第8页
第8页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第9页
第9页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第10页
第10页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第11页
第11页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第12页
第12页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第13页
第13页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第14页
第14页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第15页
第15页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第16页
第16页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第17页
第17页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第18页
第18页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第19页
第19页 / 共30页
基于单片机的电子密码锁电路的研究文档格式.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的电子密码锁电路的研究文档格式.docx

《基于单片机的电子密码锁电路的研究文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁电路的研究文档格式.docx(30页珍藏版)》请在冰点文库上搜索。

基于单片机的电子密码锁电路的研究文档格式.docx

但成本较高,一定程度上限制这类产品的普及和推广。

鉴于目前的技术水平与市场的接受程度,以单片机实现的电子密码锁是这类防盗产品的主流。

一个简单的密码锁应该具有输入设备,用户可以输入密码并确认或取消,应该有输出设备,用户可以看到自己输入的密码,还应包括报警提示,若是能保证密码掉电不丢失,待系统复位的时候重新加载修改的密码就更好了。

电子密码锁内部的单片机是核心处理设备,负责获取密码,将其和正确密码相比较产生输出,还要让单片机记录下用户输入错误密码的次数,若超出限制则要采取相应保护措施,以防他人反复试探密码。

本文介绍的是一种基于MCS-51单片机密码锁的硬件和软件设计和实现方法。

这种密码锁具有输入、删除密码,控制开锁,声光提示,修改密码等多种功能。

密码最少可设置8位,最多可设置16位,若修改了密码,掉电后系统再次复位时密码为上次修改的密码的前8位,增加了保密性,灵活性。

2电子密码锁原理

本密码锁主要可以完成以下三项功能:

1、当输入正确的密码时,开锁并且声光提示20s,当输入错误的密码时,声光提示1s,错三次长音提示30s;

2修改密码时,必须先输入原始密码,输入正确没反应,可接着输入新密码,输入错误声光提示1s,错三次长音提示30s,修改的密码位数不固定,最少8位,最多为16位,修改密码时数码管显示“L”;

3修改的密码的前8位掉电不丢失。

本密码锁硬件包括以下几个部分:

MCS-51单片机,键盘输入部分,声光报警部分,驱动开锁电路部分,CAT24WC02的串行EEROM,密码显示部分。

键盘输入部分由4*3键盘和一个单独键“改密键”组成;

声光报警部分主要由三极管放大电路、喇叭和发光二极管组成;

驱动开锁电路主要由三极管放大电路和继电器组成;

密码显示部分由数码管和上拉电阻组成。

整个硬件电路器件较少,方便焊接。

在软件方面,采用汇编语言编写。

在51单片机的RAM里,地址为35H~44H内存用来存放待设定的密码,而用R0存放下一个要设定的密码的地址,地址为45H~54H内存用来存放待输入的密码,而用R1存放下一个要输入的密码的地址。

20H.0为设置密码标志位,20H.1为可改密码标志位,按下“改密键”,20H.0为1,20H.1为1,当输入正确的密码后,20H.1为0,当修改完密码后,20H.0为0。

修改密码后向EEROM的20H单元送数1,复位时察看该单元的第0位是否为1就可以判断密码有没有修改过,若为1加载修改的密码的前8位,若为0加载初始值88888888。

2.1MCS-51单片机

MCS-51单片机系列中的各个引脚是相互兼容的,其中8051单片机是高性能的单片机,它包含8位CPU,128B片内RAM,4KB片内ROM,2个定时器/计数器,并行I/O接口P0~P4,串行I/O接口和中断系统等几大系统。

在不接任何外围电路的情况下可以实现大部分较为复杂的逻辑控制功能,进行片外扩展后可实现更多功能。

51单片机的存储器有片内和片外之分,无论片内还是片外都分为程序存储器和数据存储器。

数据存储器可读写,部分单元可以位寻址。

在计算机中,中断是指计算机暂停程序执行转而为外设服务,并在中断服务完成后自动返回原程序执行的过程。

51单片机中断源包括外部中断请求源,内部中断请求源T0、T1,串行口。

 8051单片机的每个端口都是8位准双向口,每一条I/O口都能独立地用做输入和输出,用做输出时,数据可以锁存,用做输入时,数据可以缓冲。

在无片外扩展存储器的系统中,这4个端口都可以作为准双向通用的I/O口使用。

P0口作为通用I/O口时需要在外部引脚处外接上拉电阻,它还可作为地址/数据总线口,P2口还可以作为地址口,P3口为多功能端口。

P3.0为串行输入口,P3.1为串行输出口,P3.2为外中断0,P3.3为外中断1,P3.4为定时器/计数器0外部输入口,P3.5为定时器/计数器1外部输入口,P3.6为外部数据存储器写选通,P3.7为外部数据存储器读选通。

8051的时钟有两种方式,本文采用片内时钟振荡方式,在X1和X2脚外接12MHZ的石英晶体和30pF的振荡电容。

RESET为复位信号引脚,高电平有效,复位后CPU回到初始状态,程序从0000H开始执行。

RESET通过电容与电源相连,通过电阻与地线相连构成上电自动复位电路。

EA/Vpp是允许访问片外程序存储器/编程电源线,EA为高电平并且程序地址小于4KB时,读取内部程序存储器指令数据,而超过4KB地址则读取外部程序存储器指令。

2.2键盘输入部分

由12个微动开关组成的3*4键盘如右,EN代表确认,用来结束输入的密码,DEL

1

3

4

5

6

7

8

9

DEL

EN

代表删除,用来删除之前输入的密码,另有一个改密键“SET”用来修改密码。

键盘的硬件电路图如下,P1.0~P1.3为扫描线,P1.4~P1.6为回送线,程序执行时,先判断是否有键按下,若有,消除按键抖动,计算出按键值,再转入相应程序。

中断0接到“SET”键,当这个键按下时,转入中断程序,准备重新设置密码。

2.3声光提示部分

声光提示电路如右图所示,PNP三极管的发射极接+5V电源,基极连接到4.7K的电阻,电阻的另一端接到P2.0。

扬声器为外磁式扬声器。

BJT的放大作用,主要是依靠它的发射极电流能够通过基区传输,然后到达集电极而实现的。

为了保证这一个传输过程,一方面要满足内部条件,即要求发射区杂质浓度要远大于基区杂质浓度,同时基区厚度要很小;

另一方面要满足外部条件,即发射结要正向偏置、集电结要反向偏置。

当P2.0为0时,三极管导通,喇叭响,二极管点亮。

通过设定P2.0为0的时间控制喇叭响和二极管发光的时间。

2.4驱动开锁电路部分

驱动开关电路部分如右图所示,4.7K的电阻接到P2.1。

电磁继电器实质是一种用较小电流来控制较大电流的开关器件,即只要有很小的电流通过继电器的线圈,就能产生机械动作,并利用相关簧片带动触点,连接或断开所控制的电路。

二极管的作用是防止继电器电感线圈断开后产生的电压烧坏外部电路。

当P2.1为0时,三极管导通,放大电流,驱动继电器吸合,使得电机工作,电子锁打开。

2.5掉电保密电路部分

  掉电保密电路如下图,24WC02集成块为电可擦除可编程只读存储器EEROM,可以读写,数据不丢失。

SCL为串行时钟,是一个输入引脚,用于产生器件所有数据发送或接收的时钟;

SDA为串行数据/地址,是一个双向传输端,用于传送地址和所有数据的发送或接收。

对于一般的数据传输,仅在SCL为低期间SDA才允许变化;

A0、A1、A2为器件地址输入端;

WP为写保护,连接到Vss或悬空时允许器件进行正常的读/写操作,连接到Vcc时只能读。

把P2.4定义为SDA,P2.5定义为SCL,就能使单片机I/O口模拟成C总线。

C总线由串行数据线SDA和串行时钟线SCL构成,可发送和接收数据。

C总线中的器件既可作为主控器,也可作为被控器,既可作为发送器,也可作为接受器。

总线忙时,SDA、SCL都要为高电平。

在SCL为高电平的状态下,SDA出现下降沿,为开始信号。

SCL为高电平的状态下,SDA出现上升沿,为停止信号。

数据传送开始后,SCL为高电平的时候,SDA的数据必须保持稳定,只有SCL为低电平的时候,才允许SDA上的数据改变。

C总线在传送数据过程中共有三种类型信号:

开始信号、停止信号、应答信号。

接受数据的器件在接受到8位数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据,即应答信号。

本系统中修改密码后向EEROM里00H开始的单元里写入密码,向20H写入数1,复位时读EEROM里20H单元,判断最低位是否为1,若20H.0=1,读EEROM里的密码。

2.6密码显示部分

表2七段LED字型码

电路显示部分由一个共阴极数码管和上拉电阻组成,如下图所示。

P0.0~P0.7有一位为“1”,数码管相应的段点亮。

由于单片机P0口高电平输出电流较小,需要接上拉电阻才能驱动数码管点亮。

显示字符

L

“灭”

共阴极字符

3FH

06H

5BH

4FH

66H

6DH

7DH

07H

7FH

6FH

38H

00H

3单片机密码锁软件设计

开始上电时,密码锁初始化密码为8个“8”,提示1秒,接着开始扫描是否有键按下,若有键按下,消除抖动后算出按键值,转到相应的程序。

若是密码已经改过,复位后密码为上次已经修改的密码的前8位。

当外部中断0输入由“1”变成“0”时,转入中断程序,设置密码标志位20H.0=1,可改密码标志位20H.1=1。

定时器0定时时间为50ms,利用软件计数器可以定时1s,用来控制声光提示时间。

定时器1定时时间为6ms,用来延时消除抖动。

根据单片机密码锁原理设计软件流程图1如上。

判断是否有键按下及获得按键值的流程图2如下。

键输入程序的功能包括五个部分:

①判断是否有键按下;

②去除机械抖动;

③确定闭合键物理位置;

④得到闭合键编号;

⑤确保CPU对键的一次闭合只做一次一次处理,防止操作人员的一次按键被高速运行的程序误判断为多次按下该键。

按下确认键时,若20H.0=1,20H.1=1,表示修改密码之前输完旧密码,查看密码输入是否正确,错误有声光提示,正确没有声光提示,可以输入新密码,20H.1=0;

若20H.0=1,20H.1=0,表示新密码输入完毕,声光提示1秒,20H.0=0;

若20H.0=0,表示输入完密码,查看密码输入是否正确,错误有声光提示,正确开锁并且声光提示20秒。

确认单元流程图3如下。

删除单元的程序流程图4如下。

当20H.0=1,20H.1=1或者20H.0=0时,密码存储在45H开始的数据存储器单元里,数码管显示当前输入的密码,若删除密码,数码管显示之前的密码;

当20H.0=1,20H.1=0时,密码存储在35H开始的数据存储器单元里,数码管显示“L”,删除密码时,数码管仍显示“L”,直到删除完密码。

4结论

单片机的出现是近代计算机技术发展史上的一个重要的里程碑,单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机应嵌入式应运而生,广泛应用于仪器仪表、工业控制、家用电器、计算机网络和通信等领域。

它可靠性高,抗干扰能力优于PC,便于扩展,控制功能强,可以对逻辑功能比较复杂的系统进行控制,低电压、低功耗,片内存储容量较小,但可以外部扩展。

  本文简单介绍了利用单片机制作的电子密码锁的硬件及软件。

硬件电路简单,只有单片机和一些外围电路,没有扩展芯片,还有一些并行接口、串口、外部中断没有用到,但已完成密码锁的基本功能,包括输入、显示、声音提示、改密,这是机械锁无法超越的。

单片机控制功能强,便于扩展,在原有的基础上,我们还可以改进完善电子密码锁,例如可以增加数码管,利用静态显示或者动态扫描方法,还可以加入一些其他的电路(例如时钟、闹铃),使得功能更加强大。

  在利用单片机设计制作电子产品时,需要合理分配系统内部的硬件、软件资源。

软件能实现的功能应尽可能由软件实现。

致谢(Acknowledgements)

首先非常感谢老师一个学期以来的认真授课,让我在嵌入式系统的课程中收益颇多,不仅让带领我进入了嵌入式系统的大门,更让学到到了更多思想和方法。

同样感谢很多关心和支持我的人,我在此表示深深的谢意。

参考文献(References)

[1]张鑫.单片机原理及应用[M].北京:

电子工业出版社,2005.8:

14-126

[2]宋占波.单片机技术实用教程[M].北京:

国防工业出版社,2008.10:

154-157

[3]谢振辉.改进式MCS-51单片机实验[M].北京:

科学出版社,2006.2:

76-81

[4]侯振鹏.嵌入式C语言程序设计——使用MCS-51[M].北京:

人民邮电出版社,2006.7:

75-22

[5]康华光.电子技术基础模拟部分[M].北京:

高等教育出版社,2004.4:

56-85

[6]杜虎林.电工电子通用元器件检测技巧[M].北京:

中国电力出版社,2007.6:

28-30

附录(Appendix)

硬件电路图

单片机密码锁汇编程序

SDAEQUP2.4

SCLEQUP2.5

ORG0000H

JMPSTART

ORG0003H

SETB20H.0

SETB20H.1

MOVR1,#45H

ORG000BH

AJMPTIME0

ORG001BH

MOVTH1,#0E8H

MOVTL1,#90H

CLRTR1

ORG0030H

BEGIN:

MOVSP,#60H

LCALLIRDBYTE

RRCA

JCL0;

若修改过密码,转去加载修改的密码

MOVR0,#35H

MOVR6,#8

MOVA,#08H

LOOP:

MOV@R0,A

INCR0

DJNZR6,LOOP;

初始化密码

SJMPNEXT0

L0:

LCALLIRDNBYTE

NEXT0:

MOVR2,#20;

R2为软件计数器,初始值为20

MOVTMOD,#11H;

定时器/计数器工作方式都为方式1

MOVTH0,#3CH

MOVTL0,#0B0H;

定时器定时50ms

MOVTH1,#0E8H;

定时器定时6ms

MOVTL1,#090H

MOVIE,#8BH;

开外部中断0及定时器/计数器

MOVTCON,#01H;

外部中断0为负边沿触发方式

SETBTR0

SJMP$

SETBP2.0

MOVR3,#03H;

R3存放最多错误次数3

MOVDPTR,#TABLE1

AGAIN:

ACALLKEY

CJNEA,#0BH,NEXT1

AJMPMAKESURE

NEXT1:

CJNEA,#0AH,NEXT2

AJMPDEL

NEXT2:

AJMPNUMBERR

MAKESURE:

JNB20H.0,SURE1;

设置密码标志位为0转到SURE1

JB20H.1,SURE1

LCALLIWRBYTE;

设置一个标志位,存放到EEROM

LCALLIWRNBYTE

AJMPAGAIN

SURE1:

MOV29H,R0;

把储存最后一个密码的下一个地址送给29H

MOVA,R0

ADDA,#10H

MOV55H,R1

CJNEA,55H,ERROR;

若是输入的密码长度错误转到ERROR

L1:

DECR1

DECR0

MOVA,@R0

MOV55H,@R1

比较密码,错误转到ERROR

CJNER0,#35H,L1;

密码没比较完,继续比较

JB20H.0,SURE2

CLRP2.1;

密码正确,开锁

MOVR2,#400

R3存放错误次数,为3次

MOVR0,29H;

R0指向下一个要输入密码的地址

SURE2:

CLR20H.1

MOVR3,#03H

MOVR0,#35H

ERROR:

DJNZR3,ERROR3;

错误次数不到3次转到ERROR3

MOVR2,#600

ERROR3:

SETBTR0

MOVR0,29H;

DEL:

JNB20H.0,DELL1;

设置密码标志位为1转到DELL1

JB20H.1,DELL1

CJNER0,#35H,DELL3

SJMPDISPLAY1;

没有密码可删转到DISPLAY1

DELL3:

DECR0;

删除密码

SJMPDISPLAY1

DELL1:

CJNER1,#45H,DELL2

SJMPDISPLAY2;

没有密码可删转到DISPLAY2

DELL2:

DECR1;

SJMPDISPLAY2

NUMBERR:

JNB20H.0,STORE;

设置密码标志位为1转到SETN

JB20H.1,STORE

MOV@R0,A;

储存设置的密码

INCR6

SJMPDISPLAY1

STORE:

MOV@R1,A

INCR1

SJMPDISPLAY2

DISPLAY1:

CJNER0,#35H,DISPLAY3

MOVA,#0BH;

没有密码可显示,数码管清零

SJMPDISPLAY4

DISPLAY3:

MOVA,#0AH

DISPLAY2:

DECR1

CJNER1,#44H,DISPLAY5

DISPLAY5:

MOVA,@R1

DISPLAY4:

MOVCA,@A+DPTR

MOVP0,A

KEY:

ACALLKEY1

JNZLKEY1

SETBTR1

AJMPKEY

LKEY1:

SETBTR1

ACALLKEY1

JNZLKEY2

LKEY2:

MOVR4,#0FEH

MOVR5,#00H

LKEY4:

MOVP1,R4

NOP

MOVA,P1

JBACC.4,LONE

MOVA,#00H

AJMPLKEYP

LONE:

JBACC.5,LTWO

MOVA,#04H

LTWO:

JBACC.6,NEXT

LKEYP:

ADDA,R5

PUSHACC

LKEY3:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2