基于51单片机的电子密码锁.docx

上传人:b****8 文档编号:9887880 上传时间:2023-02-07 格式:DOCX 页数:14 大小:86.02KB
下载 相关 举报
基于51单片机的电子密码锁.docx_第1页
第1页 / 共14页
基于51单片机的电子密码锁.docx_第2页
第2页 / 共14页
基于51单片机的电子密码锁.docx_第3页
第3页 / 共14页
基于51单片机的电子密码锁.docx_第4页
第4页 / 共14页
基于51单片机的电子密码锁.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于51单片机的电子密码锁.docx

《基于51单片机的电子密码锁.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电子密码锁.docx(14页珍藏版)》请在冰豆网上搜索。

基于51单片机的电子密码锁.docx

基于51单片机的电子密码锁

基于51单片机的电子密码锁

设计项目智能密码锁

姓名江祖辉

小组成员江祖辉金伟强罗上专

学号B07340211

指导老师罗剑波

2009——2010学年第2学期

2010年7月8日

浙江理工大学本科课程设计任务书

专业:

测控技术与仪器班级:

07测控

(2)

课程设计名称智能密码锁

通过设计一个智能密码锁,掌握设计、调试单片机应用系统的方法。

主要任务与

任务涉及的知识点包括汇编(C51)程序语言、MCS-51单片机I/O应用、中断目标

与定时器应用、人机接口应用技术等。

要求设计的智能密码锁完成以下功能:

(1)设置4位密码,密码通过键盘输入,输入时数码管同时显示。

若密码正确,则主要内容与基本

锁(继电器模拟)打开。

要求

(2)密码可由用户修改设定。

(3)现场报警功能。

密码输入错误3次,则报警。

报警由蜂鸣器发出报警声实现。

计划进度与安排:

布置任务,分析任务;(1天)

方案设计,相关知识学习;(1天)

硬件原理图设计;(2天)

软件设计;(3天)

软硬件调试;(5天)

撰写设计报告;(1天)

答辩。

(1天)

实习地点:

15-202

指导教师系意见系主任签名:

签名

年月日年月日摘要:

本设计由单片机8051芯片、LED显示、蜂鸣电路和报警电路组成。

该电路能完成开锁、开锁提示、修改用户密码、电路自锁、管理员解锁、掉电存储、错误密码报警等密码锁的基本功能。

在此系统中巧妙的运用了开关与P1口的联接,实现了密码锁按键输入,然后由LED数码管作为显示器件构成显示电路。

在软件部分,根据电子密码锁所要实现的基本功能编制汇编程序,从而优化,使得程序更加简洁,系统速度更加迅速。

本系统成本低廉,功能实用且易于扩展。

关键词:

80c51;开关;电子密码锁;LED显示;修改密码

目录一、密码锁简介(P4)

二、设计基本步骤与方案(P4)

三、程序设计(P8)

四、软件的调试过程与调试方法(P8)

五、设计者的心得体会(P9)

六、参考文献,格式为作者、文献名、出版单位、出版时间(P9)

附录(P10)

一、密码锁简介

1.1电子密码控制的发展趋势

由于电子器件所限,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,后来便是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。

随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码控制系统。

由于数字、字符、图形图像、人体生物特征和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统。

组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。

可以看出组合使用电子信息是电子密码控制系统今后发展的趋势。

1.2本设计所要实现的目标

本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。

密码可以由用户自己修改设定,锁打开后才能修改密码。

修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。

二、设计基本步骤与方案

2.1可用方案:

方案一:

采用数字电路控制

用以74LS112双JK触发器构成的数字逻辑电路作为密码控制系统的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。

采用数字电路设计方案时设计虽然简单,但控制的准确性和灵活性差。

故不采用。

方案二:

采用以单片机为核心的控制方案

由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。

一般来说在选取单片机时从下面几个方面考虑:

性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能。

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。

当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0,9、A—F输入密码。

密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。

新密码输入无误后按确认键使新密码将得到存储,密码修改成功。

方案三:

基于达爱思实验平台的设计

达爱思实验平台已经内部连好线了,我们只需要阅读实验仪器操作手册黄皮书,就能了解当中原理,FFDDH时为选片LED显示的地址,FFDCH为要显示内容的代码的地址,其他还有很多线都是内连好的,这里就不一一诉说了。

通过比较以上三方案,可以看出方案三的控制灵活,简单易操作,容易实现,符合实验要求且准确性好,根据现实生活的需要此次设计采用此方案2.2设计思路

本系统采用AT89S51作为本设计的核心元件。

显示输入密码

输入错误报警开关电路80C51

正确开继电器

单片机修改密码

解除报警

AT80C51是集CPURAMROM定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

2.3.设计原理分析

2.3.1控制设计

运用开关进行对输入密码、修改密码的解除锁定的控制,k7是确认键,k8是密码修改键,k9是管理员取消报警键。

2.3.2开锁电路

当用户输入的密码正确时,由单片机发出开锁信号,使继电器打开进行开锁,

从P3.3口输出低电平从而是继电器打开,实现开锁。

2.3.3报警电路

S1VCC当密码锁的连续3次输入失

败,需要由蜂鸣器报警来提示。

本设计的报警电路由p3.5与蜂鸣T3P2.1R98550器相连。

当密码锁电路需要发出

报警信号时,P3.5口输出低电平4.7K0,蜂鸣器报警。

当密码锁没有报

警信号时,P3.5口输出高电平1。

2.3.4指示电路

P3.0、p3.1、p3.2、p3.4分别都与LED灯相连。

每一部分都由一个电阻与一支发光二极管串联组成。

当可以进行密码输入时时,从单片机的P3.0口发出低电平信号,点亮红色发光二极管。

P3.1为询问是否修改密码,需要修改时拨动k8,p3.2为修改密码指示灯p3.4为密码错误指示灯。

2.3.5显示电路设计

利用达爱思试验台的上的六个LED数码显示元件可以显示所需结果,FFDDH时为选片地址,FFDCH为要显示内容的代码。

三、程序设计

3.1主程序模块

主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。

3.2开关控制程序

K1~K6(与P1.0~P1.5相连)为输入密码的开关

K7(与P1.6相连)为输入密码确认开关

K8(与P3.2相连)为修改密码开关

K9(与P1.7相连)为管理员取消报警开关

3.3显示程序

LED1(与P3.0相连)为密码输入提示

LED2(与P3.1相连)为密码输入正确时看是否修改密码

LED3(与P3.2.相连)为修改密码提示灯

LED4、LED5(与P3.3相连)为继电器的两个状态指示,LED4亮时为继电器开密码正确,LED5为继电器关

LED6(与P3.24相连)为密码输入错误指示

蜂鸣器(与P3.5相连)为密码输入三次错误的提示。

3.4流程图

见附录三

四、软件的调试过程与调试方法

在程序中输入一个电脑本身中已有的清零程序、八段数码管显示程序和键盘扫描显示实验进行验证操作,根据实验步骤连线运行,程序均可运行成功,证明各个模块电路工作正常。

系统软件调试:

软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误。

软件的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;其次逐步将各子程序连接起来总调,最后将调试好的程序固化在存储器中。

系统硬软件联调:

当系统硬件和软件分别调试完成后,在实验平台上进行系统硬软件联调。

其他:

课程设计进行的过程中,LED的输出显示始终是一个最重要也是最棘手的环节,因为对于单片机内部地址单元的加减运算,赋值,调用等,通过汇编语言是能够相对轻松地实现,但碰到LED输出显示问题就来了。

首先单片机内部是八位二进制数,而我们要看到的是10进制数,虽然LED的显示数字有对应的二进制码表,可LED管是动态输出,每次输出一位数字,后移位下一根管输出,这中间就要考虑到每位数字显示多久,循环显示的时间延迟量值多少才能够使LED发光稳定,采用的方法就是试。

同时在修改时间显示的问题上,也出现了重大的问题。

五、总结与体会

通过两周的实习,我发现了自身的不足之处。

专业知识的匮乏,专业软件的陌生及对硬件电路的片面了解都成为了我设计该电路的障碍。

在这次实习中,我研习书本,查找电路,多方请教。

每周都按计划进行着。

一刻都不放松。

硬件电路的设计成功把我带入了下一阶段,调试软件程序。

软件程序的调试还是比较难的,经常容易把代码写错的,中间也经历了些迷茫,走了些弯路,后来经过老师与同学的协助下终于调好了。

最后,将软件与硬件进行整合,终究成功完成了我的课题——智能密码锁。

参考文献

[1]李朝青.单片机原理及接口技术[M].北京:

北京航空航天出版社,2004.9[2]彭为.单片机典型系统设计实例精讲.北京:

电子工业出版社,2006.5[3]公茂法.单片机人机接口实例集[M].北京:

北京航空航天大学出版社,1998.2[4]康华光.电子技术基础数字部分[M].北京:

高等教育出版社,2004.1[5]彭介华.电子技术课程设计指导[M].北京:

高等教育出版社,2004.2

附录

附录一:

总原理图

附录二:

程序

ORG0000HCJNEA,7BH,ONCE

SJMPMAINMOVA,73H

ORG000BHCJNEA,7CH,ONCE

MOVTH0,R1MOVA,74H

MOVTL0,R0CJNEA,7DH,ONCE

CPLP3.5MOVA,75H

CJNEA,7EH,ONCERETI

CPLP3.1;ORG0040H

提示是否修改密码子程序,若是则改MAIN:

MOVSP,#53H;均是

变P3.2电平低电平有效

MOVR3,#3SETBP1.6;密码确认键

TP:

ACALLDELAY1SETBP1.7;管理员取消报警

SETBP3.0;提示密码输入灯DJNZR3,TP;延

SETBP3.1密码正确要修改拨k8迟3秒左右

SETBP3.2;与k8连修改指示灯

SETBP3.3;与继电器相连SETBP3.1

SETBP3.4;密码错误JB

SETBP3.5;三次错误蜂鸣器响P3.2,ABC;P3.2低电平亮则修改密

MOVR6,#0FFH码

MOVR4,#06HTW:

ACALLINPUT;修

MOVR0,#70H改密码子程序

MOVA,#01HJBP1.6,TW

PASSWORD:

MOV@R0,AMOV70H,79H

INCR0MOV71H,7AH

DJNZR4,PASSWORDMOV72H,7BH

MOV50H,#3MOV73H,7CH

MOV40H,#3MOV74H,7DH

LP:

CPLP3.0MOV75H,7EH

MOVR7,#10;提示密码ABC:

CPLP3.3;输入密码输入正确SJMP$

TT:

SETBP3.0ONCE:

CPLP3.4;错误输入

ACALLINPUT警告

JBP1.6,TTMOVR2,#3

ACALLDELAY1TY:

ACALLDELAY1

ACALLDELAY1DJNZR2,TY

ACALLDELAY1MOVR2,#3

BBB:

MOVA,70HSETBP3.4

CJNEA,79H,ONCEMOVR1,#3

MOVA,71HTU:

ACALLDELAY1

CJNEA,7AH,ONCEDJNZR1,TU

MOVA,72HMOVR1,#3;延迟3

秒db0feh,84h,04h,0feh,25h,04h

DJNZ50H,LPdb0feh,25h,02h,0feh,84h,02h

MAIN1:

MOVTMOD,#01Hdb

MOVIE,#82H0feh,0c0h,04h,0feh,84h,02h

MOVDPTR,#TABdb0feh,98h,02h,0feh,84h,02hloop10:

JBP1.7,LOOP12db0feh,57h,08h,00h,00h,04h

b0ffh,0ffhLJMPMAINd

LOOP12:

clra

INPUT:

MOV7EH,#00Hmovca,@a+dptr

movr1,aMOV7DH,#00H

incdptrMOV7CH,#00H

clraMOV7BH,#00H

movca,@a+dptrMOV7AH,#00H

movr0,aMOV79H,#00H;缓冲区初

orla,r1值

jznext0MOVP1,#0FFH

mova,r0MOVA,P1

anla,r1MOVR0,#79H

cjnea,#0ffh,nextFF:

JBACC.0,LOOP

SJMPMAIN1INC@R0

next:

movth0,r1INCR0

movtl0,r0SJMPAB1

setbtr0LOOP:

INCR0

sjmpnext1AB1:

JBACC.1,LOOP1next0:

clrtr0INCR0

next1:

clraSJMPAB2

incdptrLOOP1:

INC@R0

movca,@a+dptrINCR0

movr2,aAB2:

JBACC.6,LOOP2loop11:

acalld200cINCR0

djnzr2,loop11SJMPAB3

incdptrLOOP2:

INC@R0

ajmploop10INCR0

d200c:

movr3,#81hAB3:

JBACC.3,LOOP3d200b:

mova,#0ffhINCR0

d200a:

decaSJMPAB4

jnzd200aLOOP3:

INC@R0

decr3INCR0

cjner3,#00h,d200bAB4:

JBACC.4,LOOP4

retINCR0

SJMP$SJMPAB5tab:

db0feh,25h,04h,0feh,25h,02hLOOP4:

INC@R0

db0feh,25h,02h,0fdh,80h,04hINCR0

db0feh,84h,02h,0feh,84h,02hAB5:

JBACC.5,LOOP5

LS0:

DB

CALLDIS0C0H,0F9H,0A4H,0B0H,99H,92H

LOOP5:

INC@R0DB

82H,0F8H,80H,90H,88H,83H,0C6H

LO18:

CALLDIS显示DB

DJNZR6,LO180A1H,86H,8EH,0FFH,0CH,89H,7FH,0

MOVR6,#0FFH;采样值BFH

送显示缓冲区RET;循;--------------------------------------

环END

DIS:

PUSHDPH

PUSHDPL

SETBRS1

MOVR0,#79H

MOVR2,#20H

MOVR3,#00H

MOVDPTR,#LS0

LS2:

MOVA,@R0

MOVCA,@A+DPTR

MOVR1,#0DCH

MOVX@R1,A

MOVA,R2

INCR1

MOVX@R1,A

LS1:

DJNZR3,LS1

CLRC

RRCA

MOVR2,A

INCR0

JNZLS2

POPDPL

POPDPH

RET

DELAY1:

MOVR4,#5

LP1:

MOVR5,#200LP2:

MOVR6,#125LP3:

NOP

NOP

DJNZR6,LP3

DJNZR5,LP2

DJNZR4,LP1

RET

;-------------------------------------

附录三软件流程图

开始

初始化

等待密码输入提示

输入密码

NY密码正确

修改密码NYN

Y次数超过3次

输入密码管理员取消报警

开继电器

结束

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1