智能电子密码锁设计说明.docx
- 文档编号:29859823
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:26
- 大小:158.10KB
智能电子密码锁设计说明.docx
《智能电子密码锁设计说明.docx》由会员分享,可在线阅读,更多相关《智能电子密码锁设计说明.docx(26页珍藏版)》请在冰豆网上搜索。
智能电子密码锁设计说明
第1章概述
随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。
单片机单芯片的微小体积和低的成本,成为现代电子系统中最重要的智能化工具。
本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。
到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。
本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等容。
在安全技术防领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。
第2章系统总体方案设计
2.1系统总体设计框图
系统总体设计方案框图2.1:
单片机
时钟电路
系统复位电路
键盘输入电路
LED数码管显示电路
EEPROM扩展电路
LED指示灯、蜂鸣器、继电器电路
图2.1系统总体设计方案框图
本方案采用一种是用以89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
根据设计要求与设计思路,确定系统的设计方案,图2.1.1为系统组成原理框图。
硬件有以下几部分组成:
单片机、时钟电路、复位电路、键盘输入电路、串行EEPROM扩展电路、LED数码管显示电路、LED指示灯电路、蜂鸣器电路、继电器电路等。
2.2初步设计思路
根据设计要求,初步思路如下:
1、系统的原始密码放在RAM区,在运行过程中可以实时更改系统密码。
.
2、利用串行EEPROM存储芯片,可以随时读取新密码,且具有掉电保护功能。
3、人机交互通过键盘输入,系统根据键值做出相应的处理,完成具体的功能。
4、LED数码管通过驱动电路,显示相应的状态。
位选由P2口高四位产生,段码由P1口输入。
5、系统还扩展了LED指示灯、蜂鸣器、继电器等一些其本外围电路。
6、此系统共设计了3个基本功能键:
密码设置键、确认键、复位键。
密码设置键:
当用户需更改密码时,可通过此功能键方便地修改原先的旧密码。
确认键:
当完成密码输入后,可按此功能键即可实现密码的比较和处理。
复位键:
当密码三次输入错误时,系统进入死锁状态,可按此功能键跳出此状态。
第3章硬件电路设计
3.1LED数码管显示电路
单片机应用系统中,通常都需要进行人-机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示状态及各种运行结果,显示器、键盘电路都是用来实现人-机对话活动的人机通道,因此在单片机系统中有着广泛的应用。
数码管在系统中的主要作用是显示单片机的输出数据、状态等,因而,作为外围典型器件,数码管显示是反映系统输出和操作输入的有效器件。
数码管具备数字接口,可以方便地和单片机系统连接;数码管的体积小,重量轻,并且共耗低,是一种理想的显示单片机数据输出容的器件,在单片机系统中有着重要的作用。
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.1LED显示电路
用74LS247可以控制输出什么字型。
74LS247的逻辑功能表如表3.1:
表3.174LS247的逻辑功能表
用74LS138控制位循环显示,其逻辑功能表如表3.2:
表3.274LS138逻辑功能表
C
B
A
Y1
Y2
Y0
Y3
Y4
Y5
Y6
Y7
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
3.2键盘电路设计
电子密码锁应用系统工作时应具备两种基本功能,一是密码设置功能,二是密码输入功能。
要实现这两种功能就必须通过键盘输入单元来完成。
在此系统设计中,键盘行列与单片机P2口连接,通过单片机程序实现对按键码的识别。
键盘上有好多键,每一个键对应一个键码,以便将键码转到相应的的键处理子程序,进一步实现数据输入和命令处理的功能,键识别的流程图如图3.2所示。
图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按键功能表
按键
键名
功能说明
1-9键
数字键
输入密码
*键
重设密码键
设定新密码
D键
确定键
比较密码
#键
清除键
使显示器清零
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。
函数定义
行线输入
有无键按下
逐行扫描按键
判断返回键码
返回
图4.2键盘扫描流程图
键盘扫描子程序如下:
L2:
MOVR3,#0F7H
MOVR1,#00H
L3:
MOVA,R3
MOVP1,A
MOVA,P1
MOVR4,A
SETBC
MOVR5,#04H
L4:
RLCA
JNCKEYIN
INCR1
DJNZR5,L4
CALLDISP
MOVA,R3
SETBC
RRCA
MOVR3,A
JCL3
JMPL2
4.2.2LED显示子程序
LED显示数码管显示程序流程图如图4.3。
开始
显示缓冲区初始化
指定字位码
指定字形码
延时
图4.3LED显示流程图
LED显示子程序如下:
DISP:
MOVR0,#45H
DISP1:
MOVA,R0
ADDA,#50H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#40H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#30H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#20H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#10H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#00H
MOVP0,A
CALLDELAY
RET
第5章系统调试
单片机应用系统的调试,包括硬件调试和软件调试,是一个很重要的步骤。
硬件调试和软件调试并不能完全分开,许多硬件错误事在软件调试过程中被发现和纠正的,一般方法是先排除明显的硬件故障,在进行软硬件综合调试。
源程序经过汇编后,生成的目标文件必须经过仿真调试,才能固化到应用系统的程序存储器EPROM中。
在下载程序前,应进行软件调试,以免错误的程序下载到实验板上,烧坏控制芯片,因此软件调试是必不可少的。
程序编译无误后,设置好仿真参数,就可以进行软件调试了。
程序执行可采用两种方法,即单步执行和全速执行。
总体调试最好采用前者方法,这样做有助于找到错误所在。
子程序部或着延时程序可以采用后者方法,这样有助于节省调试时间。
调试过程中,要适当打开一些关键变量的窗口,观察它的变化情况,仔细分析,实验结果要与预期结果相比较,如果出现错误,反复分析与调试。
从实质上说,应用系统的联调是对软硬件的综合调试,一方面要排除软件的错误,同时进一步解决硬件部分遗留故障。
联调的总体方案是:
把整个应用系统按其功能分成若干个模块,如系统扩展模块、输入输出模块、键盘扫描模块等。
针对不同的模块,用LED指示灯来跟踪调试。
调试的方法是“最短程序”调试法。
“最短程序”是指用最简洁的主程序及调用最少子程序的系统软件程序。
在实践过程中,我发现“最短程序”调试法对系统调试有很大的帮助。
特别是在程序模块多、错误多的情况下,就越有好处。
如果最短程序调试不能通过的话,则说明硬件有问题。
这时就应该首先将你的硬件简化成最小系统,排除硬件故障后,在运行“最短程序”。
如果运行通过,可逐步增加软件模块和硬件模块,反复实验。
本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
依次按下1,2,3,4,5,6后,LED显示如图5.1
图5.1LED显示
在本次智能电子密码锁设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
按下确定键后,二极管亮,表示密码正确。
如图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:
源程序清单
ORG00H
MOVR5,#00H
MOVR7,#00H
DJNZR7,$
MOVR7,#10H
MOVR6,#06H
MOVR1,#35H
L1:
MOVA,R7
MOVDPTR,#TABLE
MOVCA,A+DPTR
MOVR1,A
DECR1
INCR7
DJNZR6,L1
START:
ORLP2,#0FFH
MOVR4,#06H
MOVR0,#40H
CLEAR:
MOVR0,#00H
INCR0
DJNZR4,CLEAR
L2:
MOVR3,#0F7H
MOVR1,#00H
L3:
MOVA,R3
MOVP1,A
MOVA,P1
MOVR4,A
SETBC
MOVR5,#04H
L4:
RLCA
JNCKEYIN
INCR1
DJNZR5,L4
CALLDISP
MOVA,R3
SETBC
RRCA
MOVR3,A
JCL3
JMPL2
KEYIN:
MOVA,R1
XRLA,#0BH
JZX3
MOVA,R1
XRLA,#0FH
JZX4
MOVR7,#10
D1:
MOVR6,#24
DJNZR6,$
DJNZR7,D1
D2:
MOVA,P1
XRLA,R4
JZD2
MOVA,R1
MOVDPTR,#TABLE
MOVCA,A+DPTR
MOVR7,A
XRLA,#0AH
JZSET0
MOVA,R7
XRLA,#0BH
JZSTART
MOVA,R7
XRLA,#0CH
JZL2
MOVA,R7
XRLA,#0DH
JZL2
MOVA,R7
XCHA,40H
XCHA,41H
XCHA,42H
XCHA,43H
XCHA,44H
XCHA,45H
CALLDISP
JMPL2
X3:
JMPDISP2
X4:
JMPCOMP
DISP:
MOVR0,#45H
DISP1:
MOVA,R0
ADDA,#50H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#40H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#30H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#20H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#10H
MOVP0,A
CALLDELAY
DECR0
MOVA,R0
ADDA,#00H
MOVP0,A
CALLDELAY
RET
SET0:
MOVR2,#06H
MOVR0,#40H
MOVR1,#30H
E1:
MOVA,R0
XCHA,R1
INCR0
INCR1
DJNZR2,E1
CALLDELAY
E2:
JMPSTART
COMP:
MOVR1,#45H
MOVR0,#35H
MOVR2,#06H
C1:
MOVA,R1
XRLA,R0
JNZC3
DECR1
DECR0
DJNZR2,C1
CLRP2.0
MOVR2,#200
C2:
MOVR6,#248
DJNZR6,$
DJNZR2,C2
C3:
INCR5
MOVA,R5
MOVR5,A
CJNER5,#03H,C4
CLRP2.1
MOVR5,#00H
C4:
JMPSTART
DISP2:
MOVR0,#35H
CALLDISP
MOVA,P1
XRLA,R4
JZDISP2
CALLDELAY
JMPSTART
DELAY:
MOVR7,#C3
D3:
MOVR6,#248
DJNZR7,D3
RET
ORG300H
TABLE:
DB01H,02H,03H,0CH
DB04H,05H,06H,0DH
DB07H,08H,09H,0EH
DB0AH,00H,0BH,0FH
DB01H,02H,03H,04H,05H,06H
END
附录B:
硬件原理图
电气信息学院课程设计评分表
项目
评价
优
良
中
及格
差
设计方案合理性与创造性(10%)
开发板焊接及其调试完成情况*(10%)
硬件设计或软件编程完成情况(20%)
硬件测试或软件调试结果*(10%)
设计说明书质量(20%)
答辩情况(10%)
完成任务情况(10%)
独立工作能力(10%)
出勤情况(10%)
综合评分
指导教师签名:
________________
日期:
________________
注:
表中标*号项目是硬件制作或软件编程类课题必填容;
此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:
封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 电子 密码锁 设计 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)