电子密码锁课程设计报告.docx
《电子密码锁课程设计报告.docx》由会员分享,可在线阅读,更多相关《电子密码锁课程设计报告.docx(10页珍藏版)》请在冰豆网上搜索。
![电子密码锁课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-11/30/5169e490-16ba-4604-93df-353655eb5cc3/5169e490-16ba-4604-93df-353655eb5cc31.gif)
电子密码锁课程设计报告
第1章本设计的研究背景及目的要求
1.1单片机简介
随着微电子技术的不断发展,微处理芯片的集成度越来越高,在一片集成电路芯片上集成微处理器、存储器、I/O接口电路等元件,从而构成了“单芯片微型计算机”,简称单片机。
单片机作为微型计算机的一个重要分支,自70年代问世以来,以机其高的性能价格比,受到人们的重视和关注,应用很广,发展也很快。
单片机体积小,重量轻,抗干扰能力强,价格低廉,可靠性高,灵活性好,开发较为容易。
广大工程技术人员通过学习有关单片机的知识后,也能依靠自己的力量来开发所希望的单片机系统,并可获得较高的经济效益。
正因为如此,在我国,单片机已广泛地应用在智能仪表、机电设备过程控制、制动检测、家用电器和数据处理等各个方面。
Intel公司单片机是目前应用最广、品种最多的单片机。
Intel公司于1976年推出MCS-48系列单片机,该系列最典型的产品为8048,他是在一个40只引脚的大规模集成电路内,包含8位CPU,1K字节ROM的程序储存器,一个6位定时器/计数器,27根输入/输出线。
Intel公司在MCS-48系列的基础上,在80年代初又推出了MCS-51系列的高性能的8位单片机。
它与MCS-48系列单片机相比,在片内存储器容量、I/O口的功能以及指令系统功能等方面,都大大地得到了加强。
MCS-51系列单片机特别适用于实时控制、智能仪表、主从结构的多机系统等领域,是工业检测、控制领域中最理想的8位单片机。
MCS-51单片机按功能划分,它由8个部件组成,即微处理器(CPU)、数据存储器(RAM)、程序储存器(ROM/EPROM)、I/O口(P0口、P1口、P2口、P3口)、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。
他们都是通过片内单一总线连接而成,其基本结构依然是采用CPU加上外围芯片的传统结构模式。
但对各种功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。
从应用的角度看,MCS-51单片机具有如下一些特点:
1)集成度高、可靠性高。
2)系统结构简单,扩展方便。
3)处理能力强、速度高。
4)容易产品化。
1.2电子密码锁简介
而在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
机械锁的这些弊端为一种新型的锁——电子密码锁,提供了很大的发展空间。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,它在键盘上输入密码,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。
但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。
当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。
因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中。
本设计采用单片机为主控芯片,根据任务要求,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开。
第2章设计的方案及基本原理
2.1方案
初步设计思路如下:
输入密码用矩形键盘,包括数字键和功能键。
LED数码管显示输入密码,用74LS138控制各位显示器分时进行显示。
打开电源后,数码管显示“000000”,初始化密码为“123456”,密码可以更改,并保存在RAM中。
按下“#”,则显示全部清零为“000000”。
当键入一个新数值时,原来显示的数字左移一位,并在最右边的一位上显示出新键入的键值,键值为0~9。
输入密码,按下“D”键,则表示确定键按下,则进行密码对比,如相符则在LED数码管上显示“======”以示通过;如不符,则显示“------”。
2.2矩阵键盘基本原理
键盘输入电路采用的是4X4的矩阵键盘,因为本设计所用到的按键数量较多而不适合用独立按键式键盘因此采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行线和列线的交叉点上,密码锁的密码输入由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4X4键盘不但能完成密码的输入还能作特别功能键使用,设置功能等。
键盘的每个按键功能在程序设计中设置。
其按键结构及与单片机引脚接法如图2-2所示。
图2-2矩阵键盘与单片机连接图
2.3显示电路
而本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图2-3所示。
000000
图2-3显示电路图
第3章程序设计
通过初步的设计思路,画出如图3-1所示程序流程图:
N
Y
图3-1程序流程图
第4章调试结果及分析
4.1系统调试
本次调试采用Proteus软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
依次按下1,2,3,4,5,6后,LED显示如图4-1所示。
图4-1LED显示输入密码图
4.2分析与体会
在此次设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口技术及相关外围芯片的特性,控制方法。
以及单片机核心电路设计的基本方法和技术,了解有关电路参数的计算方法。
单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
而在这次设计电子密码锁的过程中它,我学到了很多有关电子密码锁的设计方法与工作原理。
我不但巩固了以前所学过的知识,也学到了很多在书本上所没有学到过的知识。
同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,原本以为我们学习的课程很多了。
但是当我们要真正的用我们已学过的知识来解决实际的问题时,开始我们都茫然了。
一个小小的电子密码锁,其中包含的学问居然有那么多。
所以,我们要学的东西真的还有很多很多,只有把所学的理论知识与实践相结合起来,在实际的操作过程中,我们才能够体会到其中意义,从而提高自己的实际动手能力和独立思考的能力。
必然,在本次课程设计过程中难免会遇到过各种各样的问题,同时发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编及C语言掌握得不好,不过我能够充分利用网络的优势去查阅资料。
通过这次课程设计之后,一定把以前所学过的知识好好温故一下。
通过对该课题的研究,加深了我们对所学知识的理解,提高了对课外知识的学习和解决实际问题的能力,也增强了知识的应用能力。
培养自我创新意识,积累实践经验,为我们以后的发展打下基础,并能够在这方面培养一定的兴趣。
参考文献
[1]李学海.标准8051单片机基础教程[M].北京:
北京航空航天大学出版,2006
[2]江志红.51单片机技术与应用系统开发[M].北京:
清华大学出版社,2008
[3]周立功.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2006
[4]陈连坤.单片机原理及接口技术[M].北京:
北京交通大学出版社,2010
[5]杨居义.单片机课程设计指导[M].北京:
清华大学出版社,2009
[6]赵晓安.MCS-51单片机设计实例[M].北京:
北京航空航天大学出版社,2003
附录
ORG00H
MOVR5,#00H
MOVR7,#00H
DJNZR7,$
MOVR7,#10H
MOVR6,#06H
MOVR1,#35H
L1:
MOVA,R7
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOV@R1,A
DECR1
INCR7
DJNZR6,L1
START:
ORLP2,#0FFH
MOVR4,#06H
MOVR0,#40H
CLEAR:
MOV@R0,#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:
DB01H02H03H0CH
DB04H05H06H0DH
DB07H08H09H0EH
DB0AH00H0BH0FH
DB01H02H03H04H05H06H
END