单片机电子密码锁设计.docx

上传人:b****5 文档编号:6893969 上传时间:2023-01-12 格式:DOCX 页数:21 大小:206.92KB
下载 相关 举报
单片机电子密码锁设计.docx_第1页
第1页 / 共21页
单片机电子密码锁设计.docx_第2页
第2页 / 共21页
单片机电子密码锁设计.docx_第3页
第3页 / 共21页
单片机电子密码锁设计.docx_第4页
第4页 / 共21页
单片机电子密码锁设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机电子密码锁设计.docx

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

单片机电子密码锁设计.docx

单片机电子密码锁设计

目录

第1章绪论1

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

第3章系统硬件设计...3

3.1单片机的选择...................3

3.2键盘电路设计4

3.3LED显示电路6

3.4开锁电路7

3.5错误提示电路8

3.6蜂鸣器电路的设计9

第4章软件设计10

4.1软件设计思路11

4.2各子程序设计11

第5章系统的安装调试说明14

第6章总结15

参考文献17

附录17

附录A源程序清单:

17

附录B硬件原理图:

24

 

第1章绪论

自古以来,锁具都是人们心目中的“铁将军”,随着社会物质财富的日益增长和人们生活水平的不断提高,人们对它要求也越来越高,即要安全可靠,又要使用方便。

因此,锁具的安全性和实用性一直是锁具的制造者长期以来研究的主题[1]。

  据有关资料介绍,电子密码锁的研究从上世纪30年代就开始了,在一些特殊场所早就有所应用。

这种锁是通过键盘输入一组密码,完成开锁过程。

研究这种锁的初衷,就是为提高锁具的安全性。

由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。

电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。

电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。

但较实用的还是按键式电子密码锁。

  20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,只适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展[2]。

目前,在西方发达国家,电子密码锁己被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。

在我国电子密码锁的成本还很高,应用还不广泛。

希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。

目前市场上的密码锁主要有以下几类,都存在不同程度的缺陷。

第2章系统总体方案设计

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

图2.1系统总体设计方案

本方案采用一种是用以89C52为核心的单片机控制的方案利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性实现基本的密码锁功能。

初步设计思路如下:

1.输入密码用矩阵键盘,包括数字键和功能键。

2.LED数码管显示输入密码的位数,每输入一位就多显示一个“0”

3.用发光二级管代替开锁电路,相对应的二极管发光表示开锁。

4.密码输入3次都错了,系统报警。

5.打开电源后,显示器不显示。

设原始密码为“1357”,只要输入此密码,按B”。

6.可以实现删除本次输入的数字,按“A”键,即可删除刚输入错误的一位数据。

7.输入密码,再按“B”键。

若密码与设定密码相同,则打开门。

即显示灯亮,否则显示器不显示。

8.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。

第3章系统硬件设计

3.1单片机的选择

本次课程设计我采用的时AT89C52单片机,其管脚配置图如下

  图3.1AT89C52的管脚配置图

在设计电路中,我将单片机的P0和P2口分别作为LED管的段码和位码的输入,P1口作为几个控制功能按钮的接口,P3口接有蜂鸣器电路,XTAL1和XTAL2作为时钟电路的接口,从上述管脚说明来看,可以知道AT89C52提供了外部扩展功能所需的相关管脚,因此可实现许多功能。

3.2键盘电路设计

使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。

其原理如图3.2

3.2矩阵键盘

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

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

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:

一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

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

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫面字OOH,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1.

判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

具体的功能设计如表3.1:

按键

键名

功能说明

1—9键

数字键

输入密码

B键

确定键

比较密码

A键

清除键

清除刚输入的那位

表3.1按键功能

3.3LED显示电路

单片机应用系统中,通常都需要进行人机对话。

这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。

显示器、键盘电路就是用来完成人机对话活动的人机通道。

LED显示器的驱动是一个非常重要的问题,由图3-1可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。

由于单片机的并行口不能直接驱动LED显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。

如果驱动电路能力差,即负载能力不够,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏。

LED显示器的显示控制方式分为静态显示和动态显示两种,若选择静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流相匹配即可,而且一般只需考虑段的驱动;动态显示则不同,由于一位数据的显示是由段和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。

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

本系统的显示采用串行显示的方式,在本次设计中我选择了4位的数码显示管。

其连线如图所示。

图3.3LED显示电路

3.4开锁电路

在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁,亮,表示锁开了。

电路图如3.3所示。

当P1.0口输出低电平时,二极管发光,表示开锁。

图3.4开锁电路

3.5错误提示电路

在操作过程中如果输入的密码错误,按下确认键后将被提示,通过管脚P1.7控制。

其电路图如图3.5所示

图3.5报警电路

 

3.6蜂鸣器电路的设计

设计要求定时(闹钟)时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。

压电式蜂鸣器(H)工作时约需10mA的驱动电流,并设计一个相应的驱动及控制电路,电路设计如图4-5所示。

蜂鸣器(H)作为三极管VT的集电极负载,当VT制止时,蜂鸣器不发声。

R是限流电阻。

蜂鸣器电路与单片机的接口:

VT的基极接到单片机P3口的P3.7管脚,P3.7管脚作为输出口来使用。

当P3.7=0时,VT导通时,使蜂鸣器的两个管脚间获得将近5V的直流电压,蜂鸣器中有电流通过,而产生蜂鸣音;当P3.7=1时,VT截止,蜂鸣器的两管脚间的直流电压接近于0V,蜂鸣器不发声。

蜂鸣器报警时间的长短,通过软件编程控制,在主程序中有相应的部分。

蜂鸣器的电路原理图如下图3.4所示:

 

第4章软件设计

4.1软件设计思路

进行应用软件设计时可采用模块化结构设计,其优点是:

每个模块的程序结构简单,任务明确,易于编写、调试和修改;

程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级;

对于使用频繁的子程序可以建立子程序库,便于多个模块调用;

便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。

电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

当输入密码连续输入错误3次时,系统报警。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

4.2各子程序设计

4.2.1键盘扫描

键盘扫描流程图如图4.2.1

4.2.2LED显示

LED显示流程图如图4.2.2

     图4.2.2 LED显示流程图

 

4.2.3密码比较和报警程序

密码比较和报警流程图如4.2.3

图4.2.3密码比较和报警流程

第5章系统的安装调试说明

本次调试采用Protues软件仿真。

首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。

依次按下1,3,5,7后,LED显示如图5.1

图5.1LED显示

按下确定键后,二极管亮,表示密码正确开门。

如图5.2

图5.2密码正确开门

 

第6章总结

两周的单片机已经告已段段落,这是一次难得的检验,既锻炼了自己,又提高自己得理论水平,所以我一开始我就十分认真,积极地对待这次课程设计。

单片机是一门实践性很强的学科,能充分地运用于实践中去,因而直接关系到我们以后找工作,关系到我们的将来。

这次的课题是智能密码锁设计,主要设计到的芯片主要是89C51。

虽然我们学过单片机,理论知识掌握的还算好,但总感觉不知道单片机到底有什么用。

通过这次设计让我有了较深的体会,单片机的用处还是很广的,不但用起来方便,而且其功能也是很强大的。

单片机可以实现很多我们想要实现的功能,使复杂的电路简单化,使难以实现的事情变为现实等等。

我隐约可以看到单片机在这个社会有着举足轻重的地位,并且还有着无穷大的潜能。

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。

回顾起此次单片机课程设计,感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说是苦多于甜,但是可以学到很多很多的东西,同时,不仅可以巩固以前学过的知识,而且还学到了很多在书本上没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,以前对所学的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好……通过这次课程设计之后,以前不理解的知识点现在基本上都掌握了。

与此同时,我们也深刻领略到细节的重要性,细节决定成败,实在是很深刻。

有一点小问题,都不会出正确的结果。

经过一次次的查错,纠错,让我们深深体会到了做设计科研,必须具备严谨的科学作风。

对我们以后从事的工作也有巨大的帮助。

总而言之,这次课程设计终于顺利完成了,在进行设计的过程中遇到了很多编程问题,在此特别感谢汪超等老师的耐心讲解和细心的指导。

使我们在设计的过程中,少走了许多弯路,同时也领略了老师的许多新理念。

单片机课程设计重在一个思维的改变,而不是仅仅的一个程序的设计。

参考文献

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

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

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

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

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

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

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

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

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

 

附录

附录A源程序清单:

ORG0000H

AJMPMAIN

ORG0030H

MAIN:

MOVR3,#0

A1:

SETBP3.0

SETBP3.1

SETBP3.2

SETBP3.3

MOVR0,#40H

MOVDPTR,#TAB;将表头放入DPTR

LCALLKEY;调用键盘扫描程序

;查表后将键值送入ACC

CJNEA,#0BH,LOOP

AJMPCMP

LOOP:

INCR0

MOV@R0,A

D5:

MOVP0,#0C0H

CLRP3.0

SETBP3.1

SETBP3.2

SETBP3.3

LCALLKEY

CJNEA,#0BH,D1

AJMPCMP

D1:

CJNEA,#0AH,D2

AJMPA1

D2:

INCR0

MOV@R0,A

D8:

MOVP0,#0C0H

CLRP3.0

CLRP3.1

SETBP3.2

SETBP3.3

LCALLKEY

CJNEA,#0BH,D3

AJMPCMP

D3:

CJNEA,#0AH,D4

DECR0

AJMPD5

D4:

INCR0

MOV@R0,A

D11:

MOVP0,#0C0H

CLRP3.0

CLRP3.1

CLRP3.2

SETBP3.3

LCALLKEY

CJNEA,#0BH,D6

AJMPCMP

D6:

CJNEA,#0AH,D7

DECR0

AJMPD8

D7:

INCR0

MOV@R0,A

MOVP0,#0C0H

CLRP3.0

CLRP3.1

CLRP3.2

CLRP3.3

D12:

LCALLKEY

CJNEA,#0BH,D9

AJMPCMP

D9:

CJNEA,#0AH,D10

DECR0

AJMPD11

D10:

AJMPD12

KEY:

LCALLKS;调用检测按键子程序

JNZK1;有键按下继续

LCALLDELAY2;无键按调用延时去抖

AJMPKEY;返回继续检测按键

K1:

LCALLDELAY2

LCALLDELAY2;有键按下延时去抖动

LCALLKS;再调用检测按键程序

JNZK2;确认有按下进行下一步

AJMPKEY;无键按下返回继续检测

K2:

MOVR2,#0FEH;将扫描值送入R2暂存

MOVR4,#00H;将第一列值送入R4暂存

K3:

MOVP2,R2;将R2的值送入P1口

L6:

JBP2.4,L1;P1.0等于1跳转到L1

MOVA,#00H;将第一行值送入ACC

AJMPLK;跳转到键值处理程序

L1:

JBP2.5,L2;P1.1等于1跳转到L2

MOVA,#04H;将第二行的行值送入ACC

AJMPLK;跳转到键值理程序进行键值处理

L2:

JBP2.6,L3;P1.2等于1跳转到L3

MOVA,#08H;将第三行的行值送入ACC

AJMPLK;跳转到键值处理程

L3:

JBP2.7,NEXT;P1.3等于1跳转到NEXT处

MOVA,#0cH;将第四行的行值送入ACC

LK:

ADDA,R4;行值与列值相加后的键值送入A

PUSHACC;将A中的值送入堆栈暂存

K4:

LCALLDELAY2;调用延时去抖动程序

LCALLKS;调用按键检测程序

JNZK4;按键没有松开继续返回检测

POPACC;将堆栈的值送入ACC

RET

NEXT:

INCR4;将列值加一

MOVA,R2;将R2的值送入A

JNBACC.7,KEY;扫描完至KEY处进行下一扫描

RLA;扫描未完将A中的值右移一位进行下一列的扫描

MOVR2,A;将ACC的值送入R2暂存

AJMPK3;跳转到K3继续

KS:

MOVP2,#0FH;将P1口高四位置0低四位值1

MOVA,P2;读P1口

XRLA,#0FH;将A中的值与A中的值相异或

RET;子程序返回

DELAY2:

;40ms延时去抖动子程序

MOVR5,#08H

L7:

MOVR6,#0FAH

L8:

DJNZR6,L8

DJNZR5,L7

RET

DELAY:

MOVR5,#50

DLY1:

MOVR6,#100

DLY2:

MOVR7,#100

DJNZR7,$

DJNZR6,DLY2

DJNZR5,DLY1

RET

CMP:

CJNE@R0,#7H,NEQ

DECR0

CJNE@R0,#5H,NEQ

DECR0

CJNE@R0,#3H,NEQ

DECR0

CJNE@R0,#1H,NEQ

AJMPSEQ

NEQ:

INCR3

CJNER3,#3,A2

SETBP3.0

SETBP3.1

SETBP3.2

SETBP3.3

CLRP3.7

LCALLDELAY

LCALLDELAY

SETBP3.7

AJMPMAIN

A2:

CLRP1.7

LCALLDELAY

SETBP1.7

AJMPA1

SEQ:

SETBP3.0

SETBP3.1

SETBP3.2

SETBP3.3

CLRP1.0

LCALLDELAY

SETBP1.0

AJMPMAIN

TAB:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

END

 

附录B硬件原理图:

原理图

 

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

项目

评价

及格

设计方案合理性与创造性(10%)

开发板焊接及其调试完成情况*(10%)

硬件设计或软件编程完成情况(20%)

硬件测试或软件调试结果*(10%)

设计说明书质量(20%)

答辩情况(10%)

完成任务情况(10%)

独立工作能力(10%)

出勤情况(10%)

综合评分

指导教师签名:

________________

日期:

________________

注:

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

此表装订在课程设计说明书的最后一页。

课程设计说明书装订顺序:

封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

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

当前位置:首页 > 法律文书 > 调解书

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

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