毕业论文单片机电子密码锁教案.docx

上传人:b****8 文档编号:10393646 上传时间:2023-02-10 格式:DOCX 页数:28 大小:101.34KB
下载 相关 举报
毕业论文单片机电子密码锁教案.docx_第1页
第1页 / 共28页
毕业论文单片机电子密码锁教案.docx_第2页
第2页 / 共28页
毕业论文单片机电子密码锁教案.docx_第3页
第3页 / 共28页
毕业论文单片机电子密码锁教案.docx_第4页
第4页 / 共28页
毕业论文单片机电子密码锁教案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

毕业论文单片机电子密码锁教案.docx

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

毕业论文单片机电子密码锁教案.docx

毕业论文单片机电子密码锁教案

 

毕业论文

2005级

论文题目:

单片机电子密码锁

 

学校:

邢台职业技术学院

系别:

电气工程系

班级:

电气053班

姓名:

顾省辉

指导教师:

唐俊英

 

2008

6

 

第1章绪论…………………………………………………………………3

1.1背景及意义…………………………………………………3

1.2电子密码锁的设计要求……………………………………3

1.3关键辞……………………………………………………3

第2章硬件电路……………………………………………………………4

2.1MIC-51简介…………………………………………………………4

2.2单片机控制方框图…………………………………………………4

2.3开锁机构……………………………………………………………5

2.4键电路设计……………………………………………6

2.5显示电路设计………………………………………………7

2.6AT24C01掉电存储单元的设计…………………………………7

2.7密码锁的电源电路设计……………………………………………8

2.8设计的总体电路图……………………………………………………9

第3章软件设计…………………………………………………9

结论…………………………………………………………………………18

参考文献……………………………………………………………………19

致谢……………………………………………………………………………19

 

单片机控制的电子密码锁设计

第一章:

绪论

1.1背景及意义

随着科技的发展,安全已成为人们关注的焦点之一,于是各种安全产品相继问世(如指纹防盗!

红外防盗!

GPS等)"虽然这类产品安全性高,但因其生产成本高,携带安装使用不方便,在一定程度上限制了这类产品的普及和推广"本文介绍的是一种基于单片机智能锁的硬件和软件设计及实现方法"这种电路设计具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能"可在意外泄密的情况下随时修改密码"4位数密码共一万组不重复组合,保密性强,灵活性高,特别适用于家庭,办公室,学生宿舍及宾馆等公开场所。

1.2电子密码锁的设计要求

1.上锁过程

1

2

3

4

5

6

7

8

9

上锁

0

开锁

按数字键,数字会从显示器的最右端开始显示,然后依次向左移位。

若要更改密码可按“开锁”键清除原有密码,再重新输入新密码。

本设计为的密码为4位,输入的多余数字本电路不予理会,不会显示在显示器上。

当密码输入正确后按下“上锁”键,就可将门锁上,同时将密码存储在电路中并清除显示器的显示。

2.开锁过程

按数字键输入密码,密码在显示器上从右到左依次显示,4位密码输入正确后按下“开锁”甲,密码锁被打开并清除电路中所存储的密码,显示器也被清零。

当输入密码有误时,可按“上锁”键清除所输入的数字,内部存的秘密不会丢失,再重新输入正确的密码按“开锁”键即可。

注:

当输入错误的密码超过3次后,电路会发出报警信号。

图1-2键盘显示平面图

为防止大家忘记密码,本电路还设计了一个万用密码,无论以前的密码是什么,只要输入万用密码按“开锁”键即可开锁并清除原有密码。

1.3关键辞

MCS-51,AT24C02,矩阵键盘,UPS电路,AT24C02掉电存储,串口显示电路,报警控制

电路等

 

二、硬件电路的设计

2.1MIC-51的简介

设计本课题时构思了一种是用以MIC-51为核心的单片机控制方案。

MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在,MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、89C51等)

89S51相对于89C51增加的新功能包括:

--新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!

--ISP在线编程功能,在改写单片机存储器内的程序时不用把芯片从工作环境中剥离。

--最高工作频率为33MHz,就是说S51具有更高工作频率,从而具有了更快的计算速度。

--具有双工UART串行通道。

--内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。

--双数据指示器。

--电源关闭标识。

--全新的加密算法,程序的保密性加强,这样就可以有效的保护知识产权不被侵犯。

--兼容性方面:

向下完全兼容51全部字系列产品。

比如8051、89C51等等早期MCS-51兼容产品。

在89S51上一样可以照常运行,这就是所谓的向下兼容。

89S51就是在这样的背景下取代89C51的,所以本设计也选用了89S51

2.2单片机控制方框图

采用AT89S51为核心的单片机控制方案。

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

其原理如图2-2所示。

开锁控制电路

89s51

单片机

串口显示电路

 

矩阵

键盘

控制

输入错误锁定键盘

延时报警控制电路

 

图2-2单片机控制方案

 

2.3开锁机构

通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。

其原理如图2-3所示。

图2-3密码锁开锁机构示意图

当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。

其实际电路如图2-4所示。

电路由驱动和开锁两级组成。

由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。

D5是开锁指示灯;由D6、C24、T11组成开锁。

其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。

T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且有一定的余量。

注:

在设计中,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。

图2-4密码锁开锁机构电路图

 

2.4按键电路设计

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

其原理如图2-5所示。

图2-5行列式键盘原理电路图

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

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

方法是:

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

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

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

方法是:

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

按键的操作面板如图2-6所示。

共计数字键10个,功能键2个。

图2-6按键操作面板示意图

10个数字键用来输入密码,另外2个功能键分别是:

开锁和上锁。

上锁和开锁的过程在1-2中已经详细介绍,在此不再说。

面板上还有一个蜂鸣器,其中一个功能是用来指示操作的按键是否在成功的按下;另外一个功能是当用户输入密码错误的次数超过了3次,鸣笛以示报警。

 

2.5显示电路设计

本系统设计的显示电路为了节约单片机的接口资源而采用串行显示的方式,只使用单片机的两个串行口,就可以完成单片机的显示功能,显示电路的电路原理图如图2-7所示。

电路设定:

当程序检测在5分钟内没有按键操作的时候,就关闭显示。

这个功能使用程序来实现的,一旦没有按键动作就启动一个定时器,检测在5分钟内没有按键动作的时候,启动一个程序,关闭显示,这样可以达到节省电能的目的。

从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。

移位寄存器74HC164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。

电路中的三个整流管D1~D3的作用是降低数码管的工作电压,增加其使用寿命。

 

图2-7显示器原理图

 

2.6AT24C01掉电存储单元的设计

掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。

AT24C01是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

其电路如图2-8所示。

2-8掉电存储电路原理图

图中R8、R10是上拉电阻,其作用是减少AT24C01的静态功耗,由于AT24C01的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。

2.7密码锁的电源电路设计

图2-7稳压模块7805电路

本着节省原料的原则,选择的是7805稳压模块做为本电路的电源,JP1接变压器的次级绕组,由于电路耗电很少,所以变压器选择普通小容量的10V的就可以,然后经四个二极管(D1-D4)整流,再经电解电容C滤波,得到较平稳的直流电,为了让电流更平稳更可靠,后面加入了整流模块7805,电路相当简单,1脚是电源的进线,2脚是公共端,3脚就是5V直流电的输出了,C2和C3是滤除高频率的杂波干扰的,本电路简单明了,应用比较广泛。

2.8设计总体电路图

图2-4总体电路图

 

三、程序设计

程序开始,伪指令设置程序中所用到寄存器和数据

ORG0000H

MTDDATA3FH

SLADATA3EH

NUMBYTDATA3DH

MRDDATA30H

AJMPMAIN

ORG0030H

MAIN:

MOVSP,#60H:

设置栈指针

接收数据寄存器清零

MOV40H,#00H

MOV41H,#00H

MOV42H,#00H

MOV43H,#00H

MOV44H,#00H

MOV45H,#00H

MOV46H,#00H

MOV47H,#00H

CLR20H:

功能键标志

CLR21H:

复位键标志

调读密码程序,读出的密码送到30H到33H

REDAMOVMTD,#00H

MOVSLA,#0A0H

MOVNUMBYT,#1

LCALLWRNBYT

MOVSLA,#0A1H

MOVNUMBYT,#07H

LCALLRDNBYT

显示P作为等待标志

CCD:

MOVA,#11111110B

MOVP1,A

MOVA,#0CH

MOVDPTR,#7FFFH

MOVX@DPTR,A

循环调用键扫描子程序

START:

NOP;程序开始

LCALLCH_KEY;检查键盘

AJMPSTART;返回

CH_KEY:

LCALLKS;检查有没有按键按下

JNZLK1

AJMPCH_KEY

LK1:

LCALLT12MS

ACALLKS

JNZLK2

RET

LK2:

NOP

LCALLSBIE;按键识别子程序

MOVBUFF,A;送缓冲区以识别是数字键还是功能键?

LCALLCH_KF;判断按键功能。

JBFLAG1,KEY_FUN;标志为1,则为功能键

数字按键输入并且存放到缓冲区内等待比较

KEY_DIG:

NOP;设一标志,辨别输入是否满

;SETBTR0

INCTIMERS;输入数字的位数

MOVA,TIMERS

CLRC

SUBBA,#01H

JNZPS_2

MOVPS1,BUFF;依照顺序存放密码

AJMPNEXT

PS_2:

MOVA,TIMERS

SUBBA,#02H

CLRC

JNZPS_3

MOVPS2,BUFF

AJMPNEXT

PS_3:

MOVA,TIMERS

CLRC

SUBBA,#03H

JNZPS_4

MOVPS3,BUFF

AJMPNEXT

PS_4:

MOVA,TIMERS

CLRC

SUBBA,#04

JNZPS_5

MOVPS4,BUFF

AJMPNEXT

PS_5:

MOVA,TIMERS

CLRC

SUBBA,#05

JNZPS_6

MOVPS5,BUFF

AJMPNEXT

PS_6:

MOVA,TIMERS

CLRC

SUBBA,#06H

JNZCH_KEY

MOVPS6,BUFF

NEXT:

LCALLXSC

MOVR7,TIMERS;比较输入的次数。

CJNER7,#06H,FULL

FULL:

JCNEXT9

SETBBUF_FULL

MOVTIMERS,#06H

CLRL3

NOP

CLRP2.1

LCALLT100MSD

SETBP2.1

NOP

AJMPCH_KEY

NEXT9:

CLRP2.1;密码输入一位,鸣叫一声。

CLRL3

LCALLT100MSD;延时100ms

SETBL3

SETBP2.1

AJMPCH_KEY

功能按键比较并且跳转

KEY_FUN:

CLRFLAG1

CLRC

MOVA,BUFF

SUBBA,#03H;按键CL跳转

JNZEN_C

AJMPCL

EN_C:

CLRC

MOVA,BUFF;按键EN跳转

SUBBA,#00H

JNZF1_C

AJMPEN

EXIT8:

NOP

LJMPCH_KEY

开门子程序

CL:

NOP

SETBL3

MOVBUFF,#00H;消密码缓冲

MOVTIMERS,#00H

LCALLINITPS;消除AT缓冲,加调电存储后一定要加上

LCALLXSC

LCALLBP

LCALLBP

LCALLT100MSD

LCALLBP

CLRFLAG1

AJMPCH_KEY

FU4:

NOP

LCALLBP

LCALLT100MSD

LCALLBP

LCALLT100MSD

LCALLBP

LCALLT100MSD

LCALLBP

LCALLT100MSD

LCALLBP

CLRFLAG1

AJMPCH_KEY

FU3:

NOP

LCALLBP

LCALLT100MSD

LCALLBP

LCALLKILLXS;关闭显示

CLRFLAG1

AJMPCH_KEY

FU1:

NOP

LCALLXSC

JBF_F1,NEXT_F1

CLRL1

LCALLBP

SETBF_F1

AJMPCH_KEY

NEXT_F1:

SETBL1

LCALLBP

CLRF_F1

;LCALLCH_STATE;查看现在的状态以防误按

;SETBTR1;报警限制暂时不开

;INCF_F1

CLRFLAG1

AJMPCH_KEY

FU2:

NOP

JBF_F2,NEXT_F2

CLRL2

LCALLBP

SETBF_F2

AJMPCH_KEY

NEXT_F2:

SETBL2

LCALLBP

CLRF_F2

CLRFLAG1

AJMPCH_KEY

 

初始化显示缓冲区以及其他缓冲区

INITPS:

PUSHACC

PUSHPSW

MOVR7,#06H

MOVR1,#PS1

MOVA,#00H

INIT_PS:

MOV@R1,A

DECR1

DJNZR7,INIT_PS

POPPSW

POPACC

NOP

RET

INITAT:

PUSHACC

PUSHPSW

MOVR7,#06H

MOVR1,#AT1

MOVA,#00H

INIT_AT:

MOV@R1,A

DECR1

DJNZR7,INIT_AT

MOVTIMERS,#00H;密码输入的次数清零。

POPPSW

POPACC

RET

按键识别子程序

SBIE:

MOVR2,#0EFH;识别按键子程序,数据送A保存,课本P146页。

MOVR4,#00H

LK4:

MOVA,R2

MOVP0,A

NOP

MOVA,P0

JBACC.0,LONE

MOVA,#00H

AJMPLKP

LONE:

JBACC.1,LTWO

MOVA,#08H

AJMPLKP

LTWO:

JBACC.2,LTHR

MOVA,#10H

AJMPLKP

LTHR:

JBACC.3,NEXTT;判断下一列

MOVA,#18H

LKP:

ADDA,R4

PUSHACC

LK3:

ACALLKS

JNZLK3

POPACC

RET

NEXTT:

INCR4

MOVA,R2

JNBACC.7,KND

RLA

MOVR2,A

AJMPLK4

KND:

AJMPCH_KEY

KS:

MOVP0,#0FH

NOP

MOVA,P0

CPLA

ANLA,#0FH

NOP

RET

CH_KF:

CLRC

MOVA,BUFF;判断是数字按键还是功能按键,为1表示功能键

CJNEA,#17H,KY

KY:

JCSET_CH;假若是数字按键则标志置为0

SETBFLAG1;假若是功能按键则标志置为1

AJMPCHKE_END

SET_CH:

CLRC

MOVA,BUFF

SUBBA,#00H

JNZEN_CH

SETBFLAG1

AJMPCH_END

EN_CH:

MOVA,BUFF

SUBBA,#03H

JNZDIG

SETBFLAG1

AJMPCH_END

DIG:

CLRFLAG1

CH_END:

NOP

CHKE_END:

RET

T12MS:

MOVR7,#18H

TM1:

MOVR6,#0FFH

TM66:

DJNZR6,TM66

DJNZR7,TM1

RET

 

检验密码正误

C_PSW:

PUSHPSW

PUSHACC

MOVR2,#06H

MOVR0,#PS1

MOVR1,#AT1

C_P:

CLRC

MOVA,@R0

SUBBA,@R1

JNZRETURN

DECR0

DECR1

DJNZR2,C_P

NOP

SETBPSW_F

AJMPEXIT7

RETURN:

CLRPSW_F

EXIT7:

NOP

POPACC

POPPSW

RET

锁定,报警程序

LOCK_1M:

MOVR4,#3CH;锁定1分钟

M1_LOOP:

LCALLSEC

DJNZR4,M1_LOOP

NOP

RET

WARN2S:

PUSHPSW

PUSHACC

MOVR5,#14H;调用20次BP,报警2s

WARN:

LCALLBP

DJNZR5,WARN

NOP

POPACC

POPPSW

NOP

RET

BP:

CLRSPK;报警程序

LCALLT100MSD

SETBSPK

NOP

RET

显示子程序

DISPLAY:

MOVR4,#05H

DIS1:

MOVR0,#45H

MOVR5,#11011111B

LD6:

MOVA,R5

MOVP1,A

MOVA,@R0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

MOVX@DPTR,A

LCALLDL1

MOVA,#0FFH

MOVDPTR,#7FFFH

MOVX@DPTR,A

DECR0

MOVA,R5

JNBACC.0,ID1

RRA

MOVR5,A

LIMPLD6

LD1:

DJNZR4,DIS1

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

DB0FFH

密码输入错误的提示

XSD:

PUSHACC

PUSHPSW

MOVSBUF,#98H

JNBTI,$

CLRTI

MOVSBUF,#79H

JNBTI,$

CLRTI

MOVSBUF,#11H

JNBTI,$

CLRTI

MOVSBUF,#79H

JNBTI,$

CLRTI

MOVSBUF,#79H

JNBTI,$

CLRTI

MOVSBUF,#38H

JNBTI,$

CLRTI

POPPSW

POPACC

RET

24C01读写程序

AT_RADE:

PUSHPSW

PUSHACC

MOVR0,#AT1;CPU首地址

MOVR6,#06H;8字节

MOVR5,#08H;8位

MOVR7,#00H;24C01首地址

LCALLREAD;读数据

NOP

NOP

POPACC

POPPSW

RET

AT_WR:

PUSHPSW

PUSHACC

MOVR0,#PS1;CPURAM首地址

MOVR6,#06H;8字节

MOVR5,#08H;8BIT

MOVR7,#00H;24C01RAM首地址

LCALLWRT;

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

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

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

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