您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页毕业论文单片机电子密码锁教案

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

来源:意榕旅游网


毕业论文单片机电子密

码锁教案

LEKIBM standardization office【IBM5AB- LEKIBMK08- LEKIBM2C】

毕 业 论 文 2005级

论文题目: 单片机电子密码锁 目 录

1

2008 年 6 月 学 校:邢台职业技术学院 系 别:电气工程系 班 级:电气053班 姓 名:顾省辉 指导教师:唐俊英

论…………………………………………………………………3

背景及意义………………………………………………… 3 电子密码锁的设计要求……………………………………3 关键辞…………………………………………………… 3 第2章 硬件电路……………………………………………………………4 MIC-51简介…………………………………………………………4 单片机控制方框图…………………………………………………4 开锁机构……………………………………………………………5 2 .4 键 电 路 设 计… … … … … … … … … … … … … … … … … 6

显示电路设计………………………………………………7 2. 6 AT24C01掉电存储单元的设计 … … … … … … … … … … … … …7

密码锁的电源电路设计……………………………………………8 设计的总体电路图……………………………………………………9 第3章软件设计…………………………………………………9 结论…………………………………………………………………………18 参考文献……………………………………………………………………19

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

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

第一章:绪论

背景及意义

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

电子密码锁的设计要求

1.上锁过程

按数字键,数字会从显示器的最右端开始显示,然后依次向左移位。若要更改密码可按“开锁”键清除原有密码,再重新输入新密码。本设计为的密码为4位,输入的多余数字本电路不予理会,不会显示在显示器上。当密码输入正确后按下“上锁”键,就可将门锁上,同时将密码存储在

1 4 7 上锁 2 5 8 0 3 6 9 开锁 电路中并清除显示器的显示。 2.开锁过程

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

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

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

图1-2键盘显示平面图

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

关键辞

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

二、 硬件电路的设计

MIC-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

单片机控制方框图

采用AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图2-2所示。

矩阵 键盘 控制 串口显示电路 图2-2单片机控制方案 延时报警控制电路 开锁控制电路 89s51 单片机 输入错误锁定键盘 开锁机构 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图2-3所示。

单片机微控制器 密码正确? 返回 N 电磁锁 Y 开锁驱动电路

图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.6 AT24C01掉电存储单元的设计

掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C01是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到,额定电流为1mA,静态电流10Ua,芯片内的资料可以在断电的情况下保存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 总体电路图

三、程序设计

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

MTD DATA 3FH SLA DATA 3EH NUMBYT DATA 3DH MRD DATA 30H AJMP MAIN ORG 0030H

MAIN: MOV SP,#60H :设置栈指针 接收数据寄存器清零 MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H

CLR 20H :功能键标志 CLR 21H :复位键标志 调读密码程序,读出的密码送到30H到33H

REDA MOV MTD,#00H MOV SLA,#0A0H MOV NUMBYT,#1 LCALL WRNBYT MOV SLA,#0A1H MOV NUMBYT,#07H LCALL RDNBYT 显示P作为等待标志 CCD:MOV A, MOV P1,A MOV A,#0CH MOV DPTR,#7FFFH MOVX @DPTR,A 循环调用键扫描子程序

START:NOP ;程序开始 LCALL CH_KEY ;检查键盘 AJMP START ;返回

CH_KEY:LCALL KS ;检查有没有按键按下 JNZ LK1 AJMP CH_KEY LK1:

LCALL T12MS ACALL KS JNZ LK2 RET LK2: NOP

LCALL SBIE ;按键识别子程序

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

LCALL CH_KF ;判断按键功能。 JB FLAG1 ,KEY_FUN ;标志为1,则为功能键 数字按键输入并且存放到缓冲区内等待比较

KEY_DIG:NOP ;设一标志,辨别输入是否满 ;SETB TR0

INC TIMERS ; MOV A, TIMERS CLR C

SUBB A, #01H JNZ PS_2

MOV PS1, BUFF ; AJMP NEXT

PS_2:MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3

MOV PS2, BUFF AJMP NEXT

PS_3:MOV A, TIMERS CLR C

SUBB A, #03H JNZ PS_4

MOV PS3, BUFF AJMP NEXT

PS_4:MOV A, TIMERS CLR C

SUBB A, #04 JNZ PS_5

MOV PS4, BUFF AJMP NEXT

PS_5:MOV A, TIMERS CLR C

SUBB A, #05 JNZ PS_6

MOV PS5, BUFF AJMP NEXT

PS_6:MOV A, TIMERS CLR C

输入数字的位数 依照顺序存放密码

SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT:LCALL XSC

MOV R7, TIMERS ;比较输入的次数。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MOV TIMERS,#06H CLR L3 NOP CLR

LCALL T100MSD SETB NOP

AJMP CH_KEY

NEXT9:CLR ;密码输入一位,鸣叫一声。 CLR L3

LCALL T100MSD ;延时100ms SETB L3 SETB

AJMP CH_KEY 功能按键比较并且跳转 KEY_FUN:

CLR FLAG1 CLR C

MOV A, BUFF

SUBB A, #03H ;按键CL跳转 JNZ EN_C AJMP CL EN_C:CLR C

MOV A, BUFF ;按键EN跳转 SUBB A, #00H JNZ F1_C AJMP EN EXIT8:NOP

LJMP CH_KEY 开门子程序

CL:NOP

SETB L3

MOV BUFF, #00H ;消密码缓冲 MOV TIMERS,#00H

LCALL INITPS ;消除AT缓冲,加调电存储后一定要加上 LCALL XSC LCALL BP LCALL BP

LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP

LCALL BP

LCALL T100MSD LCALL BP

LCALL T100MSD

LCALL BP

LCALL T100MSD LCALL BP

LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU3:NOP

LCALL BP

LCALL T100MSD LCALL BP

LCALL KILLXS ;关闭显示 CLR FLAG1 AJMP CH_KEY FU1:NOP

LCALL XSC

JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEY NEXT_F1:SETB L1 LCALL BP CLR F_F1

;LCALL CH_STATE ;

查看现在的状态以防误按

;SETB TR1 ;报警限制暂时不开 ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP

JB F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEY NEXT_F2:SETB L2 LCALL BP CLR F_F2 CLR FLAG1 AJMP CH_KEY

初始化显示缓冲区以及其他缓冲区 INITPS:PUSH ACC PUSH PSW

MOV R7, #06H MOV R1, #PS1 MOV A, #00H INIT_PS:MOV @R1, A DEC R1

DJNZ R7, INIT_PS POP PSW POP ACC NOP RET

INITAT:PUSH ACC PUSH PSW

MOV R7,#06H MOV R1,#AT1 MOV A, #00H INIT_AT:MOV @R1, A DEC R1

DJNZ R7, INIT_AT

MOV TIMERS,#00H ;密码输入的次数清零。 POP PSW POP ACC RET 按键识别子程序

SBIE:MOV R2, #0EFH ;识别按键子程序,数据送A保存,课本P146页。 MOV R4, #00H LK4:MOV A, R2 MOV P0, A NOP

MOV A, P0 JB ,LONE

MOV A, #00H AJMP LKP LONE:JB ,LTWO

MOV A, #08H AJMP LKP LTWO:JB ,LTHR

MOV A, #10H AJMP LKP

LTHR:JB ,NEXTT ;判断下一列 MOV A, #18H LKP:ADD A, R4 PUSH ACC LK3:ACALL KS JNZ LK3 POP ACC RET

NEXTT:INC R4

MOV A, R2 JNB ,KND RL A

MOV R2, A AJMP LK4 KND:AJMP CH_KEY

KS:MOV P0, #0FH NOP

MOV A, P0 CPL A

ANL A, #0FH NOP RET CH_KF:CLR C

MOV A, BUFF ;判断是数字按键还是功能按键,为1表示功能键 CJNE A, #17H, KY

KY:JC SET_CH ;假若是数字按键则标志置为0

SETB FLAG1 ;假若是功能按键则标志置为1 AJMP CHKE_END SET_CH:CLR C

MOV A, BUFF SUBB A, #00H JNZ EN_CH SETB FLAG1 AJMP CH_END EN_CH:MOV A, BUFF SUBB A, #03H JNZ DIG SETB FLAG1 AJMP CH_END DIG:CLR FLAG1 CH_END:NOP CHKE_END:RET

T12MS:MOV R7, #18H TM1:MOV R6, #0FFH TM66:DJNZ R6, TM66 DJNZ R7, TM1 RET 检验密码正误

C_PSW:PUSH PSW PUSH ACC MOV R2,#06H MOV R0,#PS1 MOV R1,#AT1 C_P:CLR C MOV A,@R0 SUBB A,@R1 JNZ RETURN DEC R0 DEC R1

DJNZ R2,C_P NOP

SETB PSW_F AJMP EXIT7 RETURN:CLR PSW_F EXIT7:NOP

POP ACC POP PSW RET 锁定,报警程序

LOCK_1M:MOV R4,#3CH ;锁定1分钟 M1_LOOP:LCALL SEC

DJNZ R4,M1_LOOP NOP RET

WARN2S:PUSH PSW PUSH ACC

MOV R5, #14H ;调用20次BP,报警2s WARN:LCALL BP

DJNZ R5,WARN NOP

POP ACC POP PSW NOP RET

BP:CLR SPK ; LCALL T100MSD SETB SPK NOP RET 显示子程序

DISPLAY:MOV R4,#05H DIS1: MOV R0,#45H MOV R5, LD6: MOV A,R5 MOV P1,A MOV A,@R0 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV DPTR,#7FFFH MOVX @DPTR,A LCALL DL1 MOV A,#0FFH

MOV DPTR,#7FFFH MOVX @DPTR,A

报警程序

DEC R0 MOV A,R5 JNB ,ID1 RR A MOV R5,A LIMP LD6

LD1: DJNZ R4,DIS1 RET

TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H DB 0FFH 密码输入错误的提示 XSD:PUSH ACC PUSH PSW

MOV SBUF, #98H JNB TI, $ CLR TI

MOV SBUF, #79H JNB TI, $ CLR TI

MOV SBUF, #11H JNB TI, $ CLR TI

MOV SBUF, #79H JNB TI, $ CLR TI

MOV SBUF, #79H JNB TI, $ CLR TI

MOV SBUF, #38H JNB TI, $ CLR TI POP PSW POP ACC RET 24C01读写程序 AT_RADE:PUSH PSW PUSH ACC

MOV R0,#AT1 ;CPU首地址 MOV R6,#06H ;8字节 MOV R5,#08H ;8位

MOV R7,#00H ;24C01首地址

LCALL READ ;读数据

NOP NOP

POP ACC POP PSW RET AT_WR:

PUSH PSW PUSH ACC

MOV R0,#PS1 ;CPU RAM首地址 MOV R6,#06H ;8字节 MOV R5,#08H ;8 BIT

MOV R7,#00H ;24C01RAM 首地址 LCALL WRT ;先写进 NOP NOP

POP ACC POP PSW RET 延时子程序 DL1: MOV R7,#03H DL: MOV R6,#0FFH DL6: DJNZ R6,DL6 DJNZ R7,DL RET 结论:

以上为实习期间所设计的电子密码锁电路,它经过多次修改和整理,已是一个比较不错的设计,可以满足人们的基本要求,但因为水平有限,此电路中也存在一定的问题,希望有人给予改正完善。。

通过这半年的实习,我感觉有很大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:能够有方向有目的的去查阅资料,增加了许多课本以外的知识。对所学的课程有了进一步的深入了解,能达到学以致用。对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。

参考文献:

肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,

何立民. 单片机高级教程. 第1版.北京:北京航空航天大学出版社,2001

赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,

李广第. 单片机基础. 第1版.北京:北京航空航天大学出版社,1999

徐惠民、安德宁. 单片微型计算机原理接口与应用. 第1版. 北京:北京邮电大学出版社,1996

何立民.从Cygnal 80C51F看8位单片机发展之路. 单片机与嵌入式系统应用,2002年,第5期:P5~8 致谢:

经过半年的忙碌,本次毕业设计已经接近尾声,在此,我要感谢每一个帮助过我的人。

首先,我要感谢的是我的导师唐俊英老师。唐老师平日里工作繁多,但在我做毕业设计的每个阶段,都给予我悉心的指导和帮助。可以说,没有唐老师的悉心指导和帮

助,我是不可能顺利完成我的毕业设计的。另外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。

其次我要感谢我的父母,在我毕业设计最艰苦的那段日子,是他们给了我最大的精神支持。父母为了我的成长,一直在背后默默的付出和辛勤的工作,他们的养育之恩,我将用自己的一生去回报。

最后我要感谢的是我亲爱的邢台职业技术学院的每一位老师和同学。

总之,感谢每一位关心过我,爱护过我的人。滴水之恩,当涌泉相报。最后,再次感谢我的导师唐俊英老师。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务