智能电子密码锁设计

更新时间:2023-04-15 21:29:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

第1章概述 (1)

第2章系统总体方案设计 (2)

2.1系统总体设计框图 (2)

2.2 初步设计思路 (2)

第3章硬件电路设计 (4)

3.1 LED数码管显示电路 (4)

3.2 键盘电路设计 (6)

3.3 开锁电路 (9)

3.4报警电路 (10)

3.5时钟电路 (10)

第4章软件设计 (12)

4.1软件设计思路 (12)

4.2各子程序设计 (13)

4.2.1 键盘扫描子程序 (13)

4.2.2 LED显示子程序 (14)

第5章系统调试 (17)

第6章心得体会 (19)

参考文献 (21)

附录 (22)

附录A:源程序清单 (22)

附录B:硬件原理图 (29)

电气与信息工程系课程设计评分表 (30)

第1章概述

随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发

展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,成为现代电子系统中最重要的智能化工具。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。

第2章系统总体方案设计

2.1系统总体设计框图

系统总体设计方案框图2.1:

EEPROM 扩展电路、LED数码管显示电路、LED指示灯电路、蜂鸣器电路、继电器电路等。2.2 初步设计思路

根据设计要求,初步思路如下:

1、系统的原始密码放在RAM区,在运行过程中可以实时更改系统密码。.

2、利用串行EEPROM存储芯片,可以随时读取新密码,且具有掉电保护功能。

3、人机交互通过键盘输入,系统根据键值做出相应的处理,完成具体的功能。

4、LED数码管通过驱动电路,显示相应的状态。位选由P2口高四位产生,段码由P1口输入。

5、系统还扩展了LED指示灯、蜂鸣器、继电器等一些其本外围电路。

6、此系统共设计了3个基本功能键:密码设置键、确认键、复位键。

密码设置键:当用户需更改密码时,可通过此功能键方便地修改原先的旧密码。

确认键:当完成密码输入后,可按此功能键即可实现密码的比较和处理。

复位键:当密码三次输入错误时,系统进入死锁状态,可按此功能键跳出此状态。

第3章硬件电路设计

3.1 LED数码管显示电路

单片机应用系统中,通常都需要进行人-机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示状态及各种运行结果,显示器、键盘电路都是用来实现人-机对话活动的人机通道,因此在单片机系统中有着广泛的应用。

数码管在系统中的主要作用是显示单片机的输出数据、状态等,因而,作为外围典型器件,数码管显示是反映系统输出和操作输入的有效器件。数码管具备数字接口,可以方便地和单片机系统连接;数码管的体积小,重量轻,并且共耗低,是一种理想的显示单片机数据输出内容的器件,在单片机系统中有着重要的作用。

LED数码管的驱动是一个非常重要的问题由于单片机并行口不能直接驱动LED数码管,必须采用驱动电路或放大电路,使之产生足够大的电路,显示器才能高亮正常工作。如果驱动能力差,显示器亮度就低,这样显示效果就会很差,达不到设计的需要。在本系统中,采用了三极管放大电路驱动数码管显示。

LED显示器显示控制方法有两种,即动态显示和静态显示。静态显示亮度一般比动态显示效果好,但本次设计中,采用了动态显示。LED显示器有共阴和共阳两种接法,因此设计过程中要注意接法的区别。下表为LED显示器扫描的字符编码。

本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用串行

显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图3.1所示。

用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。通过软件实现数字和位控制。

图3.1 LED显示电路

用74LS247可以控制输出什么字型。74LS247的逻辑功能表如表3.1:

表3.1 74LS247的逻辑功能表

用74LS138控制位循环显示,其逻辑功能表如表3.2:

3.2 键盘电路设计

电子密码锁应用系统工作时应具备两种基本功能,一是密码设置功能,二是密码输入功能。要实现这两种功能就必须通过键盘输入单元来完成。

在此系统设计中,键盘行列与单片机P2口连接,通过单片机程序实现对按键码的识别。键盘上有好多键,每一个键对应一个键码,以便将键码转到相应的的键处理子程序,进一步实现数据输入和命令处理的功能,键识别的流程图如图3.2所示。

时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.3

图3.3 矩阵键盘

每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图3.2.2所示的4×4键盘,说明线反转个工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

具体的功能设计如表3.3:

3.3 开锁电路

在本次智能电子密码锁设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.4所示。当P2.0口输出低电平时,二极管发光,表示开锁。

图3.4 开锁电路

3.4报警电路

图3.5 报警电路

报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.5所示。当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。

3.5时钟电路

单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图3.6所示。

图3.6 时钟电路

电路中器件选择可以通过计算和实验确定,也可以参考一些典型电路参数。电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,通常取值范围在2±0.1PF,一般晶振为12MHZ,电容取2PF。石英晶体选择6MHZ或12MHZ,其结果只是机器周期不同,影响计数器计数初值。

第4章软件设计

4.1软件设计思路

电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。密码的设定,在此程序中密码是固定40H —45H中,假设预设的密码为"123456"共6位密码。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

根据模块划分原则,此系统可以将设计方案划分成以下几个模块:

图4.1 模块划分

4.2各子程序设计

4.2.1 键盘扫描子程序

键盘扫描流程图如图4.2。

L3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A

SETB C

MOV R5,#04H

L4: RLC A

JNC KEYIN

INC R1

DJNZ R5,L4

CALL DISP

MOV A,R3

SETB C

RRC A

MOV R3,A

JC L3

JMP L2

4.2.2 LED显示子程序

LED显示数码管显示程序流程图如图4.3。

显示流程图LED

DISP:MOV R0,#45H

DISP1: MOV A,@R0

ADD A,#50H

MOV P0,A

CALL DELAY

DEC R0

MOV A,@R0

ADD A,#40H

MOV P0,A

CALL DELAY

DEC R0

MOV A,@R0

ADD A,#30H

MOV P0,A

CALL DELAY

DEC R0

MOV A,@R0

ADD A,#20H

MOV P0,A

CALL DELAY

DEC R0

MOV A,@R0

ADD A,#10H

MOV P0,A

CALL DELAY

DEC R0

MOV A,@R0

ADD A,#00H

MOV P0,A

CALL DELAY

RET

第5章系统调试

单片机应用系统的调试,包括硬件调试和软件调试,是一个很重要的步骤。硬件调试和软件调试并不能完全分开,许多硬件错误事在软件调试过程中被发现和纠正的,一般方法是先排除明显的硬件故障,在进行软硬件综合调试。

源程序经过汇编后,生成的目标文件必须经过仿真调试,才能固化到应用系统的程序存储器EPROM中。

在下载程序前,应进行软件调试,以免错误的程序下载到实验板上,烧坏控制芯片,因此软件调试是必不可少的。程序编译无误后,设置好仿真参数,就可以进行软

件调试了。程序执行可采用两种方法,即单步执行和全速执行。总体调试最好采用前者方法,这样做有助于找到错误所在。子程序内部或着延时程序可以采用后者方法,这样有助于节省调试时间。调试过程中,要适当打开一些关键变量的窗口,观察它的变化情况,仔细分析,实验结果要与预期结果相比较,如果出现错误,反复分析与调试。

从实质上说,应用系统的联调是对软硬件的综合调试,一方面要排除软件的错误,同时进一步解决硬件部分遗留故障。联调的总体方案是:把整个应用系统按其功能分成若干个模块,如系统扩展模块、输入输出模块、键盘扫描模块等。针对不同的模块,用LED指示灯来跟踪调试。调试的方法是“最短程序”调试法。“最短程序”是指用最简洁的主程序及调用最少子程序的系统软件程序。在实践过程中,我发现“最短程序”调试法对系统调试有很大的帮助。特别是在程序模块多、错误多的情况下,就越有好处。如果最短程序调试不能通过的话,则说明硬件有问题。这时就应该首先将你的硬件简化成最小系统,排除硬件故障后,在运行“最短程序”。如果运行通过,可逐步增加软件模块和硬件模块,反复实验。

本次调试采用Protues软件仿真。首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。依次按下1,2,3,4,5,6后,LED显示如图5.1

图5.1 LED显示

在本次智能电子密码锁设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。按下确定键后,二极管亮,表示密码正确。如图5.2。

图5.2 密码正确LED灯亮

第6章心得体会

在这次课程设计过程中,让我学到了许多东西,收益匪浅。课程设计是检验理论知识的掌握和应用能力最好的方法。它能迅速提高个人的动手能力和实践能力,它能帮助我们对知识的掌握,促进知识体系的构建,因此,我好好地把握了这短短的两周时间,完成了课程设计的任务。

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以

说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。

理论与实践是有着一定的距离,即使这理论学的好,不会编程序,这也是枉然!所以在今后的学习当中,我们更应该重视理论与实践结合的重要性。程序的设计过程就有如解决一个实际问题,我们要先学会分析问题,然后再去解决这一问题。在整个设计过程中懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富。总之,这次课程设计让我受益良多!

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在老师、同学的帮助下,终于游逆而解。在此,对热心帮助我的同学和细心指导我的汪超老师,表示忠心的感谢!

参考文献

[1]、《微型计算机原理及应用》许立梓编机械工业出版社 2002

[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社 2000

[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社 2000

[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000

[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社 2001

[6]、《微型计算机接口技术》邓亚平编清华大学出版社 2001

[7]、《单片机原理及及应用》王迎旭编机械工业出版社 2001

[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社 2002

[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社 2002

附录

附录A:源程序清单

ORG 00H

MOV R5,#00H

MOV R7,#00H

DJNZ R7,$

MOV R7,#10H

MOV R6,#06H

MOV R1,#35H

L1: MOV A,R7

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV @R1,A

DEC R1

INC R7

DJNZ R6,L1

START: ORL P2,#0FFH

MOV R4,#06H

MOV R0,#40H

CLEAR: MOV @R0,#00H

INC R0

DJNZ R4,CLEAR

L2: MOV R3,#0F7H

MOV R1,#00H

L3: MOV A,R3

MOV P1,A

MOV A,P1

MOV R4,A

SETB C

MOV R5,#04H

L4: RLC A

JNC KEYIN

INC R1

DJNZ R5,L4

CALL DISP

MOV A,R3

SETB C

RRC A

MOV R3,A

JC L3

JMP L2

KEYIN: MOV A,R1

XRL A,#0BH

JZ X3

MOV A,R1

XRL A,#0FH

JZ X4

MOV R7,#10

D1: MOV R6,#24

DJNZ R6,$

DJNZ R7,D1

D2: MOV A,P1

XRL A,R4

JZ D2

MOV A,R1

MOV DPTR,#TABLE MOVC A,@A+DPTR

MOV R7,A XRL A,#0AH JZ SET0

MOV A,R7 XRL A,#0BH JZ START MOV A,R7 XRL A,#0CH JZ L2

MOV A,R7 XRL A,#0DH JZ L2

MOV A,R7 XCH A,40H XCH A,41H XCH A,42H XCH A,43H XCH A,44H XCH A,45H CALL DISP JMP L2

X3: JMP DISP2 X4: JMP COMP DISP:MOV R0,#45H DISP1: MOV A,@R0 ADD A,#50H MOV P0,A CALL DELAY DEC R0

MOV A,@R0 ADD A,#40H MOV P0,A

CALL DELAY DEC R0

MOV A,@R0 ADD A,#30H MOV P0,A

CALL DELAY DEC R0

MOV A,@R0 ADD A,#20H MOV P0,A

CALL DELAY DEC R0

MOV A,@R0 ADD A,#10H MOV P0,A

CALL DELAY DEC R0

MOV A,@R0 ADD A,#00H MOV P0,A

CALL DELAY RET

SET0: MOV R2,#06H MOV R0,#40H MOV R1,#30H E1: MOV A,@R0

XCH A,@R1

INC R0

INC R1

DJNZ R2,E1

CALL DELAY

E2: JMP START

COMP: MOV R1,#45H

MOV R0,#35H

MOV R2,#06H

C1: MOV A,@R1

XRL A,@R0

JNZ C3

DEC R1

DEC R0

DJNZ R2,C1

CLR P2.0

MOV R2,#200

C2: MOV R6,#248

DJNZ R6,$

DJNZ R2,C2

C3: INC R5

MOV A,R5

MOV R5,A

CJNE R5 ,#03H,C4 CLR P2.1

MOV R5,#00H

C4: JMP START

DISP2: MOV R0,#35H

CALL DISP

MOV A,P1

XRL A,R4

JZ DISP2

CALL DELAY

JMP START

DELAY: MOV R7,#C3

D3: MOV R6,#248

DJNZ R7,D3

RET

ORG 300H

TABLE: DB 01H,02H,03H,0CH

DB 04H,05H,06H,0DH

DB 07H,08H,09H,0EH

DB 0AH,00H,0BH,0FH

DB 01H,02H,03H,04H,05H,06H

END

附录B:硬件原理图

电气信息学院课程设计评分表

指导教师签名:________________

日期:________________

注:①表中标*号项目是硬件制作或软件编程类课题必填内容;

②此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

本文来源:https://www.bwwdw.com/article/510q.html

Top