基于51单片机的电子密码锁Word格式.docx

上传人:b****1 文档编号:4007693 上传时间:2023-05-02 格式:DOCX 页数:31 大小:386.49KB
下载 相关 举报
基于51单片机的电子密码锁Word格式.docx_第1页
第1页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第2页
第2页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第3页
第3页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第4页
第4页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第5页
第5页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第6页
第6页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第7页
第7页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第8页
第8页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第9页
第9页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第10页
第10页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第11页
第11页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第12页
第12页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第13页
第13页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第14页
第14页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第15页
第15页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第16页
第16页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第17页
第17页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第18页
第18页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第19页
第19页 / 共31页
基于51单片机的电子密码锁Word格式.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的电子密码锁Word格式.docx

《基于51单片机的电子密码锁Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电子密码锁Word格式.docx(31页珍藏版)》请在冰点文库上搜索。

基于51单片机的电子密码锁Word格式.docx

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

二、系统所要完成的功能

基于以上思路,本文主要介绍一种使用STC公司的STC11F16XE单片机电子密码锁的设计,其主要具有如下功能:

1、密码确认功能:

密码通过矩阵键盘输入,若密码输入正确,则将通过驱动口发出高电平信号作为机械制动开锁的依据完成开锁功能。

同时在主界面上显示:

“Thekeywordsisok!

2、密码设置功能:

单片机刚刚上电复位后会通过LCD1602界面提示设置密码:

“Pleasesetthekeywords!

”而且设置的密码是可重复的,程序运行中可再次通过输入相应密码然后修改。

3、在密码输入错误时系统会通过LCD1602界面提示密码输入错误字符:

“Thekeywordsisfalse!

”同时不做开锁动作。

4、本次设计中利用一只LED代替机械制动系统,灯亮表示开锁,灯灭表示闭锁。

在本次的设计中,具体实现系统设计的过程如下:

1、完成硬件的设计。

通过PROTEL99SE绘制单片机最小系统板和矩阵键盘的原理图和PCB版图,然后通过实验室的腐蚀液腐蚀出来,焊上元件,下载测试程序调试。

1、完成软件的设计。

通过KeiluVision3软件,编辑好源汇编程序,然后编译和修改直到编译器通过为止。

2、把编译好的HEX文件下载到单片机内部运行,通过查找系统功能上的不足和可修改的地方,然后回过去修改源文件,最终成型。

三、系统总体方案设计

方案一:

采用数字电路控制。

利用数字电路的逻辑运算功能,然后设计成电子密码锁,也可以完成系统的设计,甚至直接用FPGA完成设计就更加方便了。

但是如果用FPGA完成则显得非常的浪费,因为,FPGA一方面价格昂贵,另一方面用功能如此强大的芯片制作功能如此简单的系统是一种耗费资源的行为,极不可取,故这里不采用此方案。

方案二:

采用DSP芯片TMS320F2812完成电子密码锁的设计。

由于DSP芯片在逻辑运算和数学运算上的强大,完成电子密码锁的设计非常容易,而且容易实现。

但是DSP芯片TMS320F2812的价格昂贵,故此处不采用此方案。

方案三:

采用51系列单片机STC11F16XE为核心来完成控制方案,然后实现电子密码锁的设计。

我们可以利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图3-1所示。

89S51

矩阵

键盘

控制

输入错误锁定键盘

延时报警控制电路

AT24C02掉电存储

指示电路

串口显示电路

图3-1单片机控制方案

通过比较以上三种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用第三种方案。

设计的效果场景如下:

1、输入密码用矩形键盘,包括数字键、字母键和功能键。

2、用液晶显示屏LCD1602显示字符和操作界面。

3、用发光二极管代替开锁的电路,发光表示开锁,熄灭表示闭锁。

4、打开电源后,显示器显示“Pleasesetthekeywords!

”提示用户设置密码,用户可以在此时输入一个8位的密码。

输入至8位后系统自动跳转到另一界面,显示字符“Thekeywordssetok!

5、在完成上面的步骤后,系统再次跳换到另一个界面:

“Pleaseinputthekeywords!

”此时系统提示用户输入正确的密码以完成开锁的功能。

用户此时可以通过矩阵键盘来完成输入密码的功能。

输入位数为8位数。

6、若输入密码正确则系统会显示:

”,同时点亮LED灯完成开锁。

否则系统将显示“Thekeywordsisfalse!

”并且不做任何动作。

在本次设计中,硬件主要完成单片机最小系统和矩阵键盘的设计,软件主要由矩阵键盘子程序、显示初始化程序、显示字符子程序、数据比较子程序、数据寄存子程序和子程序调度主程序等组成。

四、硬件电路设计

4.1、单片机最小系统设计

单片机的最小系统中包括外接晶振、复位电路和P0口的上拉电阻。

其原理图如图4.1所示:

图4.1单片机最小系统

4.2、键盘电路设计

本设计中使用矩阵键盘作为输入设备,它最大的优点就是可以减少单片机I/O总线的占用,节省资源,而且可以产大量的不同组输入数据。

在按键比较多的时候,通常采用这样方法。

其原理如图4.2所示:

图4.2矩阵键盘原理图

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

M个按键的键盘。

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

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

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

一种是常用的逐行扫描查询法;

另一种是速度较快的线反转法。

对照图4.2所示的4×

4键盘,说明线反转的工作原理。

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

方法是:

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

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

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

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;

如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

本次电路的设计中,矩阵键盘的具体的功能设计如表3.1:

表4.1按键功能

按键

键名

功能说明

1-9键

数字键

输入密码

A--F键

字母键

输入密码

4.3、LCD显示电路

由于LCD1602的引脚中有一个对比调整电压,因此电路设计中主要就是对它串联可调电阻和对背光灯串联可调电阻的设计。

这里我们采用P0口的并口总线和LCD1602数据总线相对应。

控制线采用P2.2、P2.3、P2.4三个位组成,分别控制RS、RW和E。

在程序中用指令EQU定义。

由于显示电路比较简单,故不截图单独说明。

4.4、开锁电路

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

灭,表示没有开锁。

电路图如3.3所示。

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

图4.3开锁电路

五、软件设计

5.1、软件设计思路

电子密码锁工作的主要过程是LCD1602液晶显示器提示开始输入密码,通过矩阵键盘输入密码,同时由液晶显示器显示输入的情况,到输入完成后系统自动作出判断,作出开锁或闭锁处理。

密码的设定,在本设计中的程序中输入的密码是保存在30H—46H中的。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;

或者输入确认功能键之后,才能完成密码的输入过程。

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

5.2各个子程序的设计

1、键盘扫描子程序

键盘扫描流程图如图4.2.1

图5.1键盘扫描流程图

键盘扫描子程序如下:

KEY1:

MOVA,P1//键盘程序入口

ORLA,#0F0H

CPLA

JZKEY1

ACALLDELAY10MS

MOVA,P1

MOVP1,#7FH//确认有键按下

MOVP1,#7FH

JNZCHULI1//开始各种相应处理

MOVP1,#0BFH

JNZCHULI2

MOVP1,#0DFH

JNZCHULI3

MOVP1,#0EFH

JNZCHULI4

2、液晶显示初始化程序

初始化程序主要完成各种显示功能的配置:

MOVP0,#01H//显示程序入口初始化

ACALLENABLE

MOVP0,#38H

ACALLENABLE

MOVP0,#0FH

MOVP0,#06H

MOVP0,80H

3、液晶显示部分程序

液晶显示程序主要完成读时序和写时序的功能:

ENABLE:

CLRRS

CLRRW

CLRE

ACALLDELAY10MS

SETBE

RET

DAT1:

SETBRS

CLRE

RET

其中,ENABLE子程序主要完成对LCD1602的写控制的功能,DAT1子程序主要完成对其的写数据的功能。

4、数据比较判断子程序

BIJIAO:

ACALLDELAY

MOVP0,#01H

ACALLPLEASE

ACALLINPUT

ACALLPASSWORD

MOVR3,#8

MOVR1,#2AH

ACALLMAIN

CLRC

MOVA,20H

SUBBA,2AH

JNZZHONGZHI

MOVA,21H

SUBBA,2BH

MOVA,22H

SUBBA,2CH

MOVA,23H

SUBBA,2DH

MOVA,24H

SUBBA,2EH

MOVA,25H

SUBBA,2FH

MOVA,26H

SUBBA,30H

MOVA,27H

SUBBA,31H

此子程序根据输入的密码自动和设置的密码进行比对,并且依据其是否相等作出判断而跳转至不同的其他的子程序中去做相应的操作。

六、系统调试

本次调试采用实物调试。

首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件下载到单片机内部,运行并做操作后查看和预期结果是否一样。

经过不断地修改,效果见附页。

其中主要包括了开机界面的显示,输入密码正确后的显示,提示输入密码的界面显示和开锁后的效果。

七、心得体会

实践是检验真理的唯一标准,当然也是检验学习成果的标准。

在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。

这次课程设计终于顺利完成了,由于我们对于单片机的应用并不熟悉,因此,我们请了硕勋励志班的优秀同学给我们进行指导。

虽然老师并不要求做出实物,但硕勋班的那位同学认为要在实践中我们才能学到更多,理解的更全面。

因此,我们在那位同学的指导下做出了实物,虽然并不完美,但却比理论学习的更多,实践是检验真理的唯一标准。

当然我们在设计中也遇到了很多问题,仿真软件不熟悉,指令指针应用不熟悉,实务操作就更是困难,真正体现出书到用时方恨少,我们女生在实践方面的劣势也严重的凸显出来。

开始的时候,几乎是寸步难行,编程,操作什么的都要靠硕勋班同学细心地解释指导,慢慢地才生疏地上手了,在这里要诚挚的感谢硕勋励志班的同学,耐心的指导我们。

其实一直到最后作品出来了,我们也没有真正地理解了所有的东西,只是明白了许多零零散散的概念,这也证明了没有什么是可以轻易学到的。

这次我们最大的心得就是要想真正地学习某一方面的东西,就必须全心全意心无旁骛地朝着这个方向走下去。

在做设计期间,在励志班同学的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发展和巨大的收获。

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

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

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

参考文献

[1]李朝青.单片机原理及接口技术(简明修订版)[M].北京:

北京航空航天大学出版社,1998

[2]李全利.单片机原理及接口技术[M].高等教育出版社,2003

[3]PROTEL99SE电路设计与制板[M].机械工业出版社,2007

[4]杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)[J].电子工业出版社,2006

[7]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:

电子工业出版社,2005

附录

源程序清单

ORG0000H

RSEQUP2.2

RWEQUP2.3

EEQUP2.4

AJMPSTART

ORG2000H

DB30H,31H,32H,33H,34H,35H,36H,37H

DB38H,39H,41H,42H,43H,44H,45H,46H

ORG0030H

START:

MOVDPTR,#2000H//系统初始化

MOVSP,#60H

MOVR3,#8

MOVR1,#20H

SETBP2.0

MOVP0,#01H//显示程序入口初始化

ACALLENABLE

ACALLSEET

ACALLMAIN

ACALLXIANSHI1

ACALLBIJIAO

AJMP$

MAIN:

MOVP1,#0FH

CHULI1:

MOVP1,#07FH//键值生成程序部分

MOVA,P1

JNBACC.0,C1Z1

JNBACC.1,C1Z2

JNBACC.2,C1Z3

JNBACC.3,C1Z4

C1Z1:

MOVA,#3

AJMPWANC

C1Z2:

MOVA,#7

AJMPWANC

C1Z3:

MOVA,#11

C1Z4:

MOVA,#15

CHULI2:

MOVP1,#0BFH

JNBACC.0,C2Z1

JNBACC.1,C2Z2

JNBACC.2,C2Z3

JNBACC.3,C2Z4

C2Z1:

MOVA,#2

C2Z2:

MOVA,#6

C2Z3:

MOVA,#10

C2Z4:

MOVA,#14

CHULI3:

JNBACC.0,C3Z1

JNBACC.1,C3Z2

JNBACC.2,C3Z3

JNBACC.3,C3Z4

C3Z1:

MOVA,#1

C3Z2:

MOVA,#5

C3Z3:

MOVA,#9

C3Z4:

MOVA,#13

CHULI4:

JNBACC.0,C4Z1

JNBACC.1,C4Z2

JNBACC.2,C4Z3

JNBACC.3,C4Z4

C4Z1:

MOVA,#0

C4Z2:

MOVA,#4

C4Z3:

MOVA,#8

C4Z4:

MOVA,#12

WANC:

MOV@R1,A//键值显示程序

INCR1

MOVCA,@A+DPTR

MOVP0,A

ACALLDAT1

DJNZR3,MM1

MM0:

AJMPZUIHOU

MM1:

AJMPMAIN

ZUIHOU:

RET

XIANSHI1:

ACALLENABLE//清屏

MOVP0,#50H//P

MOVP0,#41H//A

ACALLDAT1

MOVP0,#53H//S

MOVP0,#57H//W

MOVP0,#4FH//O

MOVP0,#52H//R

MOVP0,#44H//D

MOVP0,#2DH//-

MOVP0,#2DH

ACALLDAT1//-

MOVP0,#4FH

ACALLDAT1//O

MOVP0,#4BH

ACALLDAT1//K

MOVP0,#21H

ACALLDAT1//!

ACALLDELAY

MOVP0,#01H//清屏

DELAY10MS:

MOVR0,#5

DEL1:

MOVR4,#192

DEL2:

MOVR2,#255

DJNZR2,$

DJNZR4,DEL2

DJNZR0,DEL1

DELAY:

MOV30H,#50

DY1:

MOV31H,#200

DY2:

MOV32H,#200

DJNZ32H,$

DJNZ31H,DY2

DJNZ30H,DY1

BIJIAO:

MOVA,20H

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2