电子密码锁的电路设计.docx
《电子密码锁的电路设计.docx》由会员分享,可在线阅读,更多相关《电子密码锁的电路设计.docx(29页珍藏版)》请在冰豆网上搜索。
电子密码锁的电路设计
概述
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。
本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。
到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。
本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。
单片微型计算机(Single.ChipMicrocomputer)简称单片机(MCU)。
它是在一块片上集成了中央处理单元(CPU)、振荡器电路、只读存储器(ROM)、随机存取存器(RAM)、并行/串行I/O接口、可编程定时器/计数器等,有的甚至包含了A/D转器。
总之,这么一块小小的单片机芯片,就相当于一台微型计算机,它具有体积小、量轻、单一电源、低功耗、功能强、价格低廉、运算速度快、抗干扰能力强、可靠性等特点。
1974年,美国仙童(Fairchild)公司生产出世界上第一块单片机,短短几十的时间,单片机如雨后春笋一般,大量涌现出来。
目前,已经出现了4位、8位和16单片机,甚至32位超大规模集成电路单片机也已问世,性能也在不断地提高。
国内从80年代起开始了单片机的热潮,二十多年过去了,单片机从研究所走出来,为与日常生活中的一个不可缺少的部件。
早些时候单片机种类稀少,开发工具奇缺。
35、8048、Z80等在现在主流市场上基本已没有踪影,用汇编语言开发产品的艰苦工作也逐步被C语言取代。
硬件方面日趋多样化,4位、8位、16位、32位等型号共同并存,在不同的领域存在,如家电、玩具、工业设备、仪器、通讯。
价格也从几元到几百元不等。
每一种单片都有它所擅长的领域,如PIC系列较多用于电话机、玩具,51系列较多用于设备控制和仪器,DSP较多用于DVD、通讯等。
软件方面发展主要为汇编语言、C语言、嵌入式操作系统。
速度、稳定性特别要求的场合较多采用汇编语言和C语言,如电机控制,UPS控制、信号处理等。
功能复杂、内容较多的系统多采用嵌入式操作系统,如PDA、电子词典、游戏机等。
以后的发展中,各类型号的单片机种类会进一步增加,而开发工具和过程会逐步趋向于统一,软件和硬件差别会更加难以区分。
设计中的单片机采用的是AT89C52单片机,包含了128字节和256字节RAM、32条I/O口线、3个16位定时/计数器、6输入4优先级嵌套中断结构、1个串行I/O口(可用于多机通信I/O扩展或全双工UART)以及片内振荡器和时钟电路。
具体引脚参数说明看下:
管脚名称
方向
引脚说明
Vss
I
地
Vcc
I
电源:
提供掉电.空闲.正常工作电压
P0.0-0.7
I/O
P0口:
P0口是开漏双向口,可以写为1使其状态为悬浮用作高阻输入。
P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1
P1.0-1.7
I/O
P1口:
P1口是带内部上拉的双向I/O口向P1口写入1时,P1口被内部上拉为高电平可用作输入口。
当作为输入脚时被外部拉低的P1口会因为内部上拉而输出电流。
P1口第2功能:
T2(P1.0):
定时/计数器2的外部计数输入/时钟输出
T2EX(P1.1):
定时/计数器2重装载/捕捉/方向控制
P2.0-2.7
I/O
P2口:
P2口是带内部上拉的双向I/O口向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。
当作为输入脚时被外部拉低的P2口会因为内部上拉而输出电流。
在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址,此时通过内部强上拉传送1。
当使用8位寻址方式访问外部数据存时,P2口发送P2特殊功能寄存器的内容
P3.0-3.7
I/O
P3口:
P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。
当作为输入脚时被外部拉低的P3口会因为内部上拉而输出电流。
P3口还具有以下特殊功能:
RxD(p3.0):
串行输入口
TxD(P3.1):
串行输出口
INT0(P3.2):
外部中断0
INT1(P3.3):
外部中断
T0(P3.4):
定时器0外部输入
T1(P3.5):
定时器1外部输入
WR(P3.6):
外部数据存储器写信号
RD(P3.7):
外部数据存储器读信号
RST
I
复位:
当晶振在运行中只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。
ALE
O
地址锁存使能:
在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。
并可用作外部时钟或定时注意每次访问外部数据时一个ALE脉冲将被忽略。
ALE可以通过置位SFR的auxlilary.0禁止。
置位后ALE只能在执行MOVX指令时被激活。
PSEN
O
程序存储使能:
当执行外部程序存储器代码时,PSEN每个机器周期被激活两次,在访问外部数据存储器时PSEN无效,访问内部程序存储器时PSEN无效。
XTAL1
I
晶体1:
反相振荡放大器输入和内部时钟发生电路输入
XTAL2
I/O
晶体2:
反相振荡放大器输出
第2章系统总体方案设计
方案一:
采用数字电路控制。
其原理方框图如图1-1所示。
图1-1数字密码锁电路方案
采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:
采用一种是用以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,其原理如图1-2所示。
输入错误锁定键盘
矩阵
键盘
控制89C51
延时报警控制电路
单片机
AT24C02掉电存储开锁控制电路
串口显示电路指示电路
图1-2单片机控制方案
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
本方案采用一种是用以89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
初步设计思路如下:
输入密码用矩形键盘,包括数字键和功能键。
LED数码管显示输入密码,用74LS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
用发光二极管代替开锁的电路,发光表示开锁。
输入密码错误次数超过3次,系统报警。
打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”键。
若密码与设定密码相同,则开门。
否则显示器清为“000000”。
软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
第3章硬件电路设计
3.1键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图3.1
图3.1矩阵键盘
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图3.1所示的4×4键盘,说明线反转个工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:
向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
方法是:
依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
具体的功能设计如表3.1:
表3.1按键功能
按键
键名
功能说明
1-9键
数字键
输入密码
*键
重设密码键
设定新密码
D键
确定键
比较密码
#键
清除键
使显示器清零
3.2LED显示电路
本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图3.2所示。
用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。
通过软件实现数字和位控制。
图3.2LED显示电路
用74LS247可以控制输出什么字型。
74LS247的逻辑功能表如表3.2:
表3.274LS247的逻辑功能表
用74LS138控制位循环显示,其逻辑功能表如表3.3:
表3.374LS138逻辑功能表
C
B
A
Y1
Y2
Y0
Y3
Y4
Y5
Y6
Y7
0
0
0
0
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.3开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
电路图如3.3所示。
当P2.0口输出低电平时,二极管发光,表示开锁。
图3.3开锁电路
3.4报警电路
图3.4报警电路
报警模块由蜂鸣器和单片机组成。
选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。
蜂鸣器电路如图3.4所示。
当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。
第4章软件设计
4.1软件设计思路
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
4.2各子程序设计
1键盘扫描子程序
键盘扫描流程图如图4.2.1
图4.2.1键盘扫描流程图
键盘扫描子程序如下:
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
2LED显示子程序
LED显示流程图如图4.2.2
图4.2.2LED显示流程图
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
3密码比较和报警程序
密码比较和报警流程图如4.2.3
图4.2.3密码比较和报警流程
密码比较和报警程序:
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
第5章系统调试与结论
本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
依次按下1,2,3,4,5,6后,LED显示如图5.1
按下确定键后,二极管亮,表示密码正确开门。
如图5.2
第6章心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
在调试程中,出现了一些故障。
在老师的指导下,我们仔细排查,仔细核对电路图,检查元器件,最终完成了任务。
在此次课程设计的过程中,我觉得既锻炼了我的实际动手能力,也再一次复习了上学期学习的数电知识,对逻辑门逻辑电路,各种基本集成芯片都有了进一步的理解。
由简单的抽象理解到实际认知。
通过这次课程设计,我觉得学习像数电这样实用的知识,不仅要掌握书本上的基本内容,还要灵活思考,善于变换,这样才能找到最优设计,达到事半功倍的效果。
而这是日后最实用的,真的是受益匪浅。
这次设计使我更加懂得了自己所学知识是多么的有限,自己的在各个方面都需要再加强。
而我们是要面对社会的挑战,只有不断的学习、实践,再学习、再实践,通过这些不断的改正自己。
这样才能使自己不被社会淘汰。
总之,在这次课程设计过程中,我既学习到了数电知识,又学到了许多书本之外宝贵的分析动手能力。
与其临渊羡鱼,不如退而结网。
这次数电课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在老师同学的帮助下,终于游逆而解。
非常感谢!
参考文献
[1]《单片机原理及及应用》王迎旭编机械工业出版社2001
[2]《单片机应用程序设计技术》周航慈著北京航空航天大学出版社
[3]黄志君,高峰,王建.轮胎压力监测系统[J].广西工学院学报.2006(4):
9~12.
[4]单春贤,韩钧等.一种集成度较高的轮胎压力监测系统设计[J].拖拉机与农用运输车,2006(6):
33~38.
[5]张洪润单片机应用技术教程北京:
清华大学出版社,1997
[6]沙占友AStudyoftheControlSystemwithIntelligentTemperatureSensors.ICEMI第四届国际电子测量学术会议论文集,电子测量与一起学报.第13卷,1998(8),ISTP收录
[7]石文轩,宋薇,《基于单片机MCS一51的智能密码锁设计》,武汉工程职业技术学院学报,2004,
[8]祖龙起,刘仁杰,《一种新型可编程密码锁》,大连轻工业学院学报,2002,
[9]郭海英,《基于单片机的电子安全密码锁的设计》,现代电子技术,2005,
[10]李明喜,《新型电子密码锁的设计》,机电产品开发与创新,2004,
[11]董继成,《一种新型安全的单片机密码锁》,电子技术,2004,
[12]ATmega.ATmega8L-8AC,2006,
[13]WirelessWorld,1998,vol、84,No、1509,p69
[14]王千著,《实用电子电路大全》,电子工业出版社,2001
[15]何立民著,《单片机应用技术选编》,北京:
北京航空大学出版社,2005
[16]李华著,《MCS-51系列单片机使用接口技术》,北京航空航天大学出版社,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