电子密码锁的设计与制作_第1页
电子密码锁的设计与制作_第2页
电子密码锁的设计与制作_第3页
电子密码锁的设计与制作_第4页
电子密码锁的设计与制作_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机毕业设计与制作说明书设计题目: 电子密码锁的设计与制作专业年级: 学 号: 姓 名: 指导教师: 2008 年 月 日单片机毕业设计与制作成绩评定表设计题目:电子密码锁学号: 姓名:项目评 语成绩设计表现(20)设计说明书(40)实物评价(40)综合评定教师签名 年 月 日单片机毕业设计与制作任务书一设计题目:电子密码锁的设计与制作二设计要求:利用51系列单片机为核心,采用矩阵键盘作为数字输入;6位密码显示;可重新设置新密码,EPROM存储密码,掉电不丢失;当输入密码与存储密码一致时,开锁,并响音乐,若三次输入错误,则报警。三设计内容:硬件设计、软件设计及样品制作四设计成果形式:1、 设

2、计说明书一份2、 样品一套五完成期限:2008年 月 日目录第1章、方案选择及总体设计.11.1 国内外现状.11.2 设计目标.1第2章、硬件设计及电路图.22.1 方案论证与比较.22.2 电子密码锁的总体设计.22.3 电子密码锁的控制芯片选择.22.4 电源部分.42.5键盘接口部分52.6液晶显示器部分52.7 继电器和蜂鸣器部分62.8 小结6第3章、软件设计及程序清单.73.1 软件总体设计.7第4章、实物制作及调试说明9第5章、使用说明书10结束语11附录12附录表一 程序清单 12附录表二 元件清单表20附录表三 原理图 PCB图 .21参考文献.23第1章 方案选择和总体设

3、计1.1 国内外现状目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。由于人们对锁的安全性,方便性等性能有更高的要求,许多智能锁(如指纹辨别、IC卡识别)也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其

4、成本一般较高,在一定程度上限制了这类产品的普及和推广。随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。根据国外的统计资料显示,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。目前西方发达国家已经大量地应用这种智能门禁系统,但在我国的应用还不广泛,成本还很高。1.2设计目标利用51系列单片机为核心,采用矩阵键盘作为数字输入;6位数字密码显示;可重新设置新密码,EPROM存储密码,掉电不丢失;当输入密码与存储密码一致时,开锁,并响音乐,若连续三次输入错误,则报警灯亮并且蜂

5、鸣器响。第2章 硬件设计及电路图2.1设计方案论证与比较方案一:卡片式电子密码锁。卡片式电子密码锁,它利用光电耦合的方式,将密码信息从打孔的形式做在卡片上 ,只要将卡片插入锁内,就能将锁打开。如果卡片上密码信息不对,密码锁发出报警声。这种方法是需要卡片做成钥匙,容易被盗和被仿制,安全性不高。方案二:磁卡式电子密码锁,具有功能强、故障率低、可靠性高和工作寿命长等优点,但这种方法的缺点是磁卡容易消磁,对用户造成不必要的麻烦。方案三:用AT89S51设计的多功能密码锁。以单片机作为微控制器,可以实现基于以上优点,本系统选用该方案作为设计方案。按键有效指示、输入错误、控制开锁、错误报警、密码修改等功能

6、,工作稳定可靠,保密性高,实用性强。综合考虑上面的几个方案,我们选用第3个来做。2.2电子密码锁的总体设计图2-1 电子密码锁的总体框图AT89S51驱动电路报警电路显示电路键 盘电子密码锁是由以下几个部分组成的,其核心部分是Atmel公司生产的8位AT89S51单片机作为整个系统的控制中心。包括驱动电路模块,显示电路模块,报警模块和键盘模块。如图2所示是一种用AT89S51控制的电子密码锁的原理图。其主要功能为:可设定从1位到8位的密码,从键盘键入正确密码才可更改密码或开锁。输入三次错误密码电路就报警。其主要工作原理为:AT89S51的P1口为键盘扫描口,接着3行4列的键盘即“0、1、2设置

7、、确定”,P3.0和P3.1接AT24C02,对AT24C02读和写数据。P3.2接一个小喇叭,当按键确实被按下时发出一下提示音,P3.3为按了设置键等输入原密码指示LED控制口,P3.5为开锁信号输出口,P3.4为报警输出口,P3.7为输入新密码LED指示控制口。2.3 电子密码锁的控制芯片选择 CPU是整个控制部分的核心。在考虑经济性和满足需求的前提下,本系统选用Atmel公司生产的8位AT89S51单片机作为整个系统的控制中心。AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含2K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存

8、取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89S51单片机可为您提供许多高性价比的应用场合。在本系统中,AT89S51单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。2-2 密码锁原理图AT89S51具有以下的特点: 兼容MCS-51指令系统 2k字节可重擦写闪速存储器 1000次擦写周期 2.7-6.V的宽工作电压范围 全静态操作:0-24MHz2-3是AT89S51引脚功能图 两级加密程序存储器 128*8字节内部RAM 15个双向I/O口线 两个16位

9、可编程定时/计数器 6个中断源 可编程串行UARL通道 可直接驱动LED的输出端口 内置一个模拟比较器 低功耗空闲和掉电模式 24电源部分外界电源通过五脚开关JK与电源电路部分相连,电源经过稳压管7805进行稳压控制后,再经过RC电路的滤波整流就可以直接攻电路使用了,LED发亮表明电源电路部分正常工作。图2-4是电源部分原理图 2-4 电源部分原理图2.5键盘接口部分系统的所有密码设置以及在没有用遥控器开锁的情况下密码的输入都需要由键盘输入。同时采用发光二极管来进行提示操作,使用户操作更加直观和方便。AT89S51单片机的I/O口线共有8根,能够满足系统设计的需要。键盘接口电路设计系统中键盘的

10、功能主要用于用户输入和修改密码。键盘需要设计16 个按键,其中09数字键用于密码的输入和修改。功能键两个,一个为“确定”键,用于密码输入结束后确认,一个为“设置”键,用于修改密码。键盘采用行列式设计,16个按键排成44矩阵。设计中用单片机P2口的P2.4P2.7接键盘的4根行线,P2.0P2.3接4根列线。原理图如图2-52-5 键盘部分原理图2.6液晶显示器本设计采用的是LED液晶显示器,接口电路如图2-6所示: 2-6 显示器和单片机的连接图2.7继电器和蜂鸣器部分由于继电器和蜂鸣器的工作电压大于单片机AT89S51高电平输出的电压,所以继电器与蜂鸣器由电源电压+5VQ驱动,单片机中的P1

11、.1与P1.2分别输出一个高电平脉冲送至晶体三极管Q1、Q2的基极,使三级管导通。从而驱动继电器及蜂鸣器工作。继电器工作开关K12导通,进而发光二极管发亮。 2-7 继电器部分电路原理图 2.8小结本章详细叙述了电子密码锁系统硬件电路的结构,分析了各个硬件电路的工作原理。在设计硬件电路的同时,充分考虑将软件和硬件结合起来,发挥单片机的智能化优势。简化硬件电路的设计,提高硬件电路的可靠性和稳定性。第三章 软件设计和程序清单软件是整个控制系统设计的核心,它具有充分的灵活性,可以根据系统的要求而变化。在硬件结构一定的情况下,只要改变软件就能实现一些不同的功能。单片机所具有的智能功能要由软件来完成。3

12、.1 系统软件总体设计系统上电后首先完成初始化工作,然后按照事先设定好的程序执行。本系己程序是基于单任务机制的。这种机制的应用程序是一个无限的循环,在这循环的过程中调用相应的子程序函数来完成相应的操作。这种机制具有简单直观,易于控制的优点。在本系统中,软件结构应采用模块化设计方法,主要包括主程序,键盘程序,密码比较模块,密码修改程序等等。上电复位后,初始化各端口,标志位和有关寄存器,接着从AT24C02中读入密码,然后开始检测键盘是否有输入,如没有就不断检测,如果有输入就转到相应处理程序。例如按了设置键,则P3.3输出低电平,等输入原密码指示灯LED亮,接着如果输入了正确的原密码并按了确定键,

13、P3.7输出低电平,可以输入新密码指示LED亮,接着输入新密码按确定键,新密码被写入24C02中,P3.3、P3.7输出高电平,等输入原密码指示LED熄灭,可以输入新密码,指示LED熄灭,程序转为复位程序。如果在设置状态,输入了错误的密码,P3.5不断输出高电平报警。上电复位后按数字键6次,或按了小于6次数字键,再按了确定键则比较密码是否对,如果不对,P3.4开锁信号输出口输出低电平,锁不开,这时还可再输入两次,如还不对则P3.5不断输出高电平报警。如果输入对了,P3.4开锁信号输出口输出高电平,锁打开4秒钟后,程序转为复位后。1模块介绍该计程计价系统的软件设计分为以下几个模块:(1)主程序模

14、块主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如下图3-1所示。(2)键盘扫描及识别子程序 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如图3-1 所示.(3)调电存储服务程序当比较密码的时候,需要读AT24C02程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到AT24C02中,其程序流程如图3-2 所示.(4)显示子程序由于是分屏显示数据,所以就要用到5个显示子程序,分别是:关闭状态显示子程序(DIS

15、_A)、开锁状态显示子程序(DIS_B)、密码输入及修改状态显示子程序(DIS_C)、密码输入错误后的提示子程序(DIS_D)。密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序(DIS_E).程序流程图如3-1、3-2所示:程序; 开始初始化有键按下?调用显示启动定时识别按键全部按完?超时?比较密码开门开始自动清除3次?锁定NNYYYYNN按下F2启动定时输入密码存入缓冲再输入一次比较密码调用24C02调用显示按F2退出Y重新输入N图31 主程序流程图图32 修改密码流程图 org 0000h; ljmp start; org 000bh; ljmp intermit_t0; or

16、g 001bh;程序清单如附录表一所示。第4章 实物制作及调试说明根据设计原理图购买所需元器件,然后使用PROTEL99SE画好原理图和PCB图,然后制作PCB板,按照画图-PCB板制作查看板-压板-钻孔-焊接元器件检查的步骤把实物板制作完整。调试根据方案设计的要求,调试过程共分为三大部分:硬件调试、软件调试、和软硬件联调。电路按模块调试,各模块逐个调试后再联调。单片机软件先在最小系统板上调试,确保外部EPROM和RAM工作正常以后,再与硬件系统联调。调试仪器:万用表1、 硬件调试电源电路:将做好的电路板接上9V直流电源,用万用表测试各点的电压,看电路是否导通,先把电源接到电路板上对应的接口,

17、打开电源开关,结果是电源灯不亮,原因1:电源不通,原因2:灯的正负极接反,原因3:灯是坏的。根据三个原因一一检查,结果发现是灯的正负接反了,换过来以后灯亮了。把万用表调到10V的档位,然后黑表笔接到89S51的20脚,红表笔接40脚记录所测得的电压。如果所得电压小于3V或者没有电压则要检查电路是否有虚焊或者线路不连通的情况。相应的红表笔接到31脚看是否有电压,步骤如前面的一样,结果显示电压正常。显示部分的电路:测试显示器的第1脚和2脚、第2脚和15脚之间看是否有5V电压,没有电压则要检查线路,有电压则正常工作。结果显示正常。键盘部分:将硬件的键盘和主板连起来,按下按键,看液晶显示器上是否有输出

18、。查看是否有虚焊不通的情况。经过一步步的检查硬件的问题已经解决,可以正常工作了!2、 软件调试把编写好的程序写到电脑上,用伟福软件进行编译,看语法是否有错误,把有错误的地方要改正过来。经过参照资料和请教老师,结果软件没有问题。3、 软硬联调把调试好的程序烧录到单片机上。将硬件接上9V的直流电源,按照操作说明操作了但是没有成功。然后检查硬件电路的问题,结果没有发现什么问题,然后就是软件了,把原来的软件清除了,重新烧录进去。结果显示正常。第5章 电子密码锁使用说明书本设计采用的是5V的直流电压,在电源输入端的第1脚接正,第2脚接负电,把电源开关拨向右边,电源灯LED1亮和液晶显示器上有显示A:SE

19、T ,B:OPEN。则说明电路导通可以工作。注:原始密码是123456.数字键09:做输入密码使用。A键:功能是重新设置密码,按下以后屏幕会显示INPUT PASSWORD,要先用数字键盘09输入6位数字与原来设的6位密码相同后屏幕会显示RESET PASSWORD并且开锁灯亮才可以重新输入新的6位密码。输入的密码和原来设置好的密码不一样屏幕显示PASSWORD ERROR就不可以重新设置。B键:功能是开锁,按下以后输入6位数字密码,屏幕显示PASSWORD OK就可以开锁,继电器工作开锁灯LED3亮。错误的话蜂鸣器会响,显示器显示:PASSWORD ERROR。重新输入密码,如果三次输入密码

20、不正确蜂鸣器就会发出报警,并且锁死,报警灯LED2亮。C键:功能是返回。注意:1、不能将电源的正负极接反 2、不能接高于12V的电压,否则会烧坏电路。 3、不能接交流电。结束语 这次毕业设计收获很多,也学到了很多知识。令我对设计的概念有了一个新的认识。以前做的设计基本都是在书上找别人设计好的方案来做,而且制作简单没有什么很大的技术问题。这次自己亲自查资料做的设计,体会很深,也学到很多在书上学不到的知识。 首先是方案的确定,综合考察了10个设计题目,初步确定了密码锁这个方案,接下来就是查资料,去图书馆一下借了几本有关单片机的应用的书来查阅,结合自己的设计目标来选择相关的器件和电路的连接方案。经过

21、查阅资料和询问指导老师,把方案确定后接下来的工作就是画原理图,由于很长时间没有用PROTELL99SE画图了,而且有一些元器件是要自己画管脚的,所以在画的时候碰到很多困难,还有元件的封装。最后借助书本和向同学请教才把原理图画出来了,接下来遇到的大问题就是布线,布线中先是有线交叉,重新调节元件的位置以后还是出现同样的问题。最后在同学的帮助下才把PCB画好。 接下来的工作就是做板了,按照流程一下子就把板子做好了,元件都焊好了就开始硬件调试。在我们设计和调试的过程中,也发现了一些问题,解决了很多问题。收获:通过毕业设计,对我来说体会真的很深,感觉从大一到现在第一次忙到连睡觉的时候都想着怎么样才可以把

22、自己的设计做好。从一开始的确定方案到最后测试,每一步的进行自己都花了100分的心思去做了。用自己的话说:真的很辛苦,但是很值得。天天都是往图书馆去查资料,去机房画PCB,跑实验楼做板和调试,一天两趟。但是最大的收获是学到了很多知识,也积累了一些经验,这个过程让我发现自己在学习过程中的很多不足,以前看的书太少了 ,尤其是关于专业类的书籍,没有好好利用现有的资源。这次设计采用软硬件结果,发挥了89S51的优点,功能强大,操作方便等等。还有很多可扩展功能,希望往后的设计很更加完善,能设计出更加好的成品来。 附录附录表一:程序清单 en bit p3.0; rw bit p3.1; rs bit p3

23、.2; display equ p0; speaker bit p1.0; led bit p1.2; open bit p1.1; returnbit bit 20h.1; org 0000h; ljmp start; org 000bh; ljmp intermit_t0; org 001bh; ljmp intermit_t1; org 0030h;start: mov sp,#60h; lcall sys_initialization;主程序main0: lcall strat_display;main: mov 52h,#0; 52h判断输入错误次数储存地址 setb led; se

24、tb tr0; lcall key; cjne a,#A,next1; ljmp set_password;next1: cjne a,#B,next2; ljmp input_password;next2: ajmp main;系统初始化sys_initialization: clr led; clr open; clr speaker; mov 34h,#1; mov 35h,#2; mov 36h,#3; mov 37h,#4; mov 38h,#5; mov 39h,#6; ;存放初始密码 mov r7,#12; mov r0,#40h;loop: mov r0,#00h; inc r

25、0; djnz r7,loop; ;密码键值存放区清零完毕 lcall delay0_1s; mov p0,#03h; call write_instruction; 液晶软复位 mov p0,#01h; call write_instruction; mov p0,#3fh; call write_instruction; mov p0,#0fh; call write_instruction; mov p0,#06h; call write_instruction; ;液晶初始化完毕 mov r4,#10; mov tmod,#11h; mov th0,#3ch; mov tl0,#0b0

26、h; setb ea; setb et0; ;定时器T0,0.5S定时中断初始化完毕 ret; ;系统初始化完毕;中断服务程序intermit_t0: push acc; push psw; mov th0,#3ch; mov tl0,#0b0h; djnz r4,return; cpl led; mov r4,#10;return: pop psw; pop acc; reti;intermit_t1: push acc; push psw; mov th1,#9eh; mov tl1,#58h; djnz r4,return_t1; cpl led; cpl speaker; mov r4

27、,#10;return_t1:pop psw; pop acc; reti;键盘扫描key: call ks; jnz k1; jmp key;k1: call delay; call ks; jnz k2; jmp key;k2: clr tr0; clr led; mov r2,#0feh; mov r6,#00h;k3: mov a,r2; mov p2,a; mov a,p2; jb acc.4,l1; mov a,#0; ljmp lk;l1: jb acc.5,l2; mov a,#4; ljmp lk;l2: jb acc.6,l3; mov a,#8; ljmp lk;l3:

28、jb acc.7,next_key; mov a,#12;lk: add a,r6; mov r6,a;k4: call ks; jnz k4; mov a,r6; mov dptr,#table0; movc a,a+dptr; mov 50h,a; 查表取值存入50h,保护键值 ret;next_key: inc r6; mov a,r2; jnb acc.7,key; rl a; mov r2,a; jmp k3;ks: mov p2,#0f0h; mov a,p2; xrl a,#0f0h; ret;设置密码程序set_password: call clear_display; mov

29、 dptr,#table4; call input_hint; mov r0,#40h; call password; jbc returnbit,set_password; ;先输入原密码完毕 mov r5,#6; mov r0,#40h; mov r1,#34h;input_compere: mov a,r0; xrl a,r1; jnz input_error; inc r0; inc r1; nop; nop; djnz r5,input_compere; ;验证输入密码完毕 jmp set_password0;input_error: setb speaker; setb led;

30、call clear_display; mov dptr,#table5; call input_hint; call delay1_5s; clr speaker; clr led; inc 52h; mov a,52h; cjne a,#3,set_password; sjmp $; ;输入密码错误次数超过3次,锁死set_password0: call clear_display; mov dptr,#table2; call input_hint; mov r0,#40h; call password; jbc returnbit,set_password; ;第一次输入新密码完毕 c

31、all clear_display; mov dptr,#table3; call input_hint; call delay1_5s; ;显示再次输入新密码完毕 call clear_display; mov dptr,#table4; call input_hint; mov r0,#46h; call password; jbc returnbit,set_password; ;第二次输入新密码完毕 mov r5,#6; mov r0,#40h; mov r1,#46h;set_compere: mov a,r0; xrl a,r1; jnz set_error; inc r0; in

32、c r1; djnz r5,set_compere; mov 34h,40h; mov 35h,41h; mov 36h,42h; mov 37h,43h; mov 38h,44h; mov 39h,45h; ;存入新密码完毕 jmp main0; ;设置新密码成功,返回主程序set_error: setb speaker; setb led; call clear_display; mov dptr,#table5; call input_hint; call delay1_5s; clr speaker; clr led; ljmp set_password0; ;前后两次输入新密码不一致

33、,返回重设;输入密码开锁程序input_password: call clear_display; mov dptr,#table4; call input_hint; mov r0,#40h; call password; jbc returnbit,input_password; ;输入原密码完毕 mov r5,#6; mov r0,#40h; mov r1,#34h;input_compere0: mov a,r0; xrl a,r1; jnz input_error22; inc r0; inc r1; nop; nop; djnz r5,input_compere0; ;验证输入密码

34、完毕 jmp display_right;input_error22: setb speaker; setb led; call clear_display; mov dptr,#table5; call input_hint; call delay1_5s; clr speaker; clr led; inc 52h; mov a,52h; cjne a,#3,input_password; sjmp $; ;输入密码错误超过3次,锁死display_right: call clear_display; mov dptr,#table6; call input_hint; ;显示输入密码正确

35、提示完毕 setb open; 开锁next_key1:call key; nop; nop; cjne a,#F,next_key1; clr open; 按下关锁键,关锁 jmp main0; 返回主程序;strat_display: mov p0,#80h; call write_instruction; mov dptr,#table1; call input_hint; mov p0,#0c0h; call write_instruction; mov dptr,#table11; call input_hint; ret;clear_display: mov display,#01

36、h; call write_instruction; mov p0,#06h; call write_instruction; ret;input_hint: mov r5,#16; mov a,#00h;all_or_not: movc a,a+dptr; mov display,a; call writedata; inc dptr; clr a; nop; nop; djnz r5,all_or_not; ret;password: mov r5,#6; mov r1,#0c0h; mov a,r1; mov p0,a; call write_instruction;loop1: call key; nop; nop; cjne a,#C,next_to; setb returnbit; jmp endt;next_to: mov a,50h; mov r0,a; mov display,#*;a; call writedata; inc r1; inc r0; djnz r5,loop1;endt: ret;写数据指令writedata: SETB rs; CLR rw; clr en; setb en; nop; nop; clr en; call delay; ret;写指令write_instru

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论