电子密码锁的毕业设计论文.doc_第1页
电子密码锁的毕业设计论文.doc_第2页
电子密码锁的毕业设计论文.doc_第3页
电子密码锁的毕业设计论文.doc_第4页
电子密码锁的毕业设计论文.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文(设计)打印专用纸目 录摘要.2ABSTRACT .21. 绪论.21.1密码锁的作用与意义 . 21.2电子密码锁的设计分析. .32. 系统方案的论证.32.1单片机控制模块.32.2 74hc244驱动模块.33.3电源模块. .3 3. 总体设计方案.43.1系统模块.43.2系统方案.44. 硬件电路设计.54.1 分析任务要求。写出系统整体设计思路.54.2选择单片机型号和所需外围器件型号. . . . . .64.3分析软件要求. . . . . . . .64.4调试方案. . . . . . . .8总结. . .9参考文献.9附录.10致谢.16密码锁的设计*物理与电子信息学院应用电子技术教育专业07级7班 指导教师:赖*摘要:设计了一个基于单片机控制的密码锁。该系统采用AT89S52单片机为主控制核心,实现用按键的密码来控制锁的开关状态;检测密码的正确与否,利用74hc244来驱动四位数码管,再由发光二极管和蜂鸣器的状态来显示。该系统有单片机控制模块、74hc244驱动数码管模块和电源模块。单片机控制模块主要利用单片机接受到开关输入的密码,然后判断密码正确与否,控制显示器件;74hc244驱动数码管模块则用来驱动四位数码管,数码管是用来显示密码的输入的数字。关键词:单片机;74hc244;密码锁Combination lock design Zhou ChenxiSchool of Physics and Electronic Information, Grade 2007, Instructor:LaiChunhongAbstract:Designed a combination lock based on single chip microcomputer control 。This system uses AT89S52 as control core mainly ,Realizing the password to control the world use the lock switch state, Detection password, using the correctness of 74hc244 to drive the four digital tube, if the correct password is light buzzer rang. The system has single-chip microcomputer control module, 74hc244 drive digital tube module and power supply module. Single-chip microcomputer control module mainly USES singlechip accept to switch input password, and then judge the password is correct or not, 74hc244 drive digital module is used to drive tube four digital tube, digital tube is used to show the password of input numberKey word: microcontroller; 74hc244 driver 1. 绪论1.1密码锁的作用与意义 随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,在国内外各种各样的电子产品也正在日新月异地向着高精尖技术发展。在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。从目前的技术水平和市场认可程度看,国内外使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测,显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。 1.2电子密码锁的设计分析单片机控制的密码锁设计。AT89S52单片机P1引脚外接独立式按键S1-S8,分别代表数字键0-5、确定键、取消键。单片机从P3.0-P3.3输出4个信号,分别为1个电磁开锁驱动信号和密码错误指示、报警输出、已开锁指示信号,分别用发光二极管L1-L4指示。P3.4接一有源蜂鸣器,用于实现提示音。基本要求:(1)初始密码为123450,输完后按确定键开锁,取消键清除所有输入,每次按键有短“滴”声按键提示音。(2)密码输入正确后,输出一个电磁锁开锁信号与已开锁信号,并发出两声短“滴”声提示。4秒后开锁信号与已开锁指示清零。(3)密码输入错误时,发出一声长“滴”声错误指示提示音,并密码错误指示灯亮,三次密码错误时,发出长鸣声报警,并密码错误指示灯亮,报警指示灯亮,此后15秒内无法再次输入密码,15秒过后,清除所有报警和指示。(4)5秒内无任何操作后,清除所有输入内容,等待下次输入。2. 系统方案论证根据题目的要求,系统主要可分为单片机控制模块、74hc244驱动数码管模块、电源模块。单片机控制的密码锁设计。2.1单片机控制模块采用Atmel公司的AT89S52单片机作为控制器。该单片机扩展功能强,软件编程灵活,自由度大,可通过软件编程实现各种算法和逻辑控制,并具有功耗低、体积小、技术成熟等优点,使其广泛应用于各个电子控制系统,完全能满足本系统的功能需求。2.2 74hc244驱动模块 用74hc244驱动四位数码管。74hc244芯片是八同相三态缓冲器/线驱动器,可以作为驱动数码管;两个四位数码管是做显示用的。2.3 电源模块5v的恒定电源,采用小系统上的电源模块,用杜邦线将5v和gnd引出接在我的两块板子的接口上。3. 总体设计方案3.1系统模块系统模块主要是由电源模块、74hc244驱动数码管模块、控制模块三个组成。系统框图如下所示:电源模块AT89s52控制模块74hc244驱动数码管模块图3.1设计模块3.2系统方案:单片机控制模块主要利用单片机接受到键盘输入的密码,然后检测密码正确与否;74hc244驱动数码管模块则用来驱动四位数码管,数码管是用来显示密码的输入的数字;电源模块提供5v的恒定电压。4. 硬件电路设计4.1 分析任务要求。写出系统整体设计思路根据题目的要求,需要考虑如下几个任务:按键的输入,密码的判断,密码输入正确或错误的计时、输出信号的控制等。 键盘的输入:由于需要输入6个数字作为密码,先要判断按键时数字键还是功能键,若判断为数字键按下,则需要将每次键盘的输入内容依次暂存在一个数组中。在每次按键输入时,需要启动定时器实现待机计时(5秒)。若5秒内没有输入内容则清除已输入的内容。密码的判断和计时:在按下确认键之后,要将输入的内容与初始密码核对,如果密码正确,输出相应的指示,同时还要启动定时器实现4s的计时。如果密码错误,错误计数变量增1,同时输出密码指示信号,若错误次数超过3s,则输出报警等信号,同时启动定时器实现15秒的计时。 输出信号的控制主要根据按键输入与密码的核对情况来决定。 整体程序设计思想:程序分为主程序和中断服务程序两个主要部分,主程序完成变量和单片机特殊功能寄存器的初始化后,进入一个循环结构。在循环中,首先判断有无按键按下,若有按键则判断是否数字键还是功能键,根据按键的情况执行相应的功能。然后根据密码是否正确的判断情况,执行相应的操作。循环中最后将需要显示的内容通过动态扫描在数码管上显示。 中断服务程序只要实现三个状态的计时,待机时需要计时5秒,密码正确需要计时5s,密码3次输入错误需要计时15秒。当前处于何种计时,由主程序根据密码判断结果来决定。单片机AT89S51简介 AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 4.1.1 主要特性 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 4.1.2 引脚功能说明 Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写l可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:Pl 是一个带内部上拉电阻的8位双向IO口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),Flash编程和程序校验期间,Pl接收低8位地址。 P2 口:P2 是一个带有内部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL),在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器(如执行MOVXRi 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。 P3 口:P3 口是一组带有内部上拉电阻的8 位双向I0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I0口线外,更重要的用途是它的第二功能,如下表所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。 ALEPROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。 EAVPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。 XTALl:振荡器反相放大器及内部时钟发生器的输入端。 4.2选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、蜂鸣器的输出驱动、独立式键盘以及发光二极管的输出等。数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。在74HC244的7段码输出线上串联100欧姆电阻起限流作用。蜂鸣器的驱动采用PNP三极管8550来驱动,低电平有效。独立式按键使用上提拉电路连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。硬件电路原理图如图附录所示。4.3分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图 软件任务要求主要包括按键扫描、密码判断、动态扫描输入的内容、计时、指示信号输出以及蜂鸣器提示音的输出等。主程序主要完成变量与寄存器的初始化、按键的扫描与判断、密码的判断以及数码管动态扫描显示等。主程序流程图如图4-1所示。 图4-1 密码锁的主程序流程图中断服务程序主要完成三种定时的计时工作,包括按键之后启动的待机计时,当待机超过5s则清除已输入的内容。密码输入正确之后的计时,4s之后清除开锁驱动信号与已开锁指示信号。 密码输入错误3次的计时,计时15s,在则15s内无法再次输入密码,15秒过后清除所有报警与指示。中断服务程序流程图如图4-2所示。 图4-2 密码锁中断服务程序流程图 单片机资源的分配与变量的定义: 密码的输入与判断需要定义4个变量。原始密码存储在数组init_val6中。键盘输入的密码存储在数据show_val6中,变量 key_index的值表示当前按键是六位密码中的哪一位,每输入一个密码数字该变量增一。密码输入错误的次数暂存在变量error_num中。 计时功能需要5个变量。模式变量cnt_state存储计时属于什么状态,0表示待机计时,1表示密码正确的计时,2表示密码错误3次的计时。三个变量(cnt_val_15s,cnt_val_5s, cnt_val_4s)分别实现待机、密码正确和密码错误3次后的计时工作。定时器T1每250ms产生一次中断,变量T1_cnt记录定时器溢出中断的次数,当记录到4000时表示计时1秒。(4)设计系统软件调试方案、硬件调试方案及软硬件联合调试方案 软件调试方案:伟福软件中,在“文件新建文件”中,新建C语言源程序文件,编写相应的程序。在“文件新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。 在 “项目编译”菜单中将C源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以 “*.hex”和“*.bin” 后缀的目标文件。硬件调试方案:在设计平台中,将单片机的P1.0-P1.7分别与8个独立式键盘通过插线连接起来,将P3.0-P3.3分别与4个发光二极管连接起来,P3.4与蜂鸣器的输入连接起来。在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台的下载线接口上,运行“MCU下载程序”,选择相应的flash 数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash中。然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。总结本次设计主要采用的是AT89S52单片机,该单片机的稳定性比较好,编程简单,功能易实现。还可以采用其它系列的单片机,比如AVR,EMC,PIC等单片机。基本完成了题目的全部要求,能正常完成各项指定任务,并且工作稳定,制作工艺方面也精益求精,使其外观尽量紧凑美观,软件方面也力求简洁可靠。本系统以AT89S52单片机芯片为核心控制部分,利用74hc244驱动数码管。在系统设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,来满足系统设计要求。因为时间有限,该系统还有很多值得改进的地方。在本设计中,我要进行硬件和软件的开发与调试。在这次设计中值得一提的就是在实际的调试中,要求软件与硬件紧密结合,从而诊断出问题出在哪里。我认为硬件电路的设计与调试,要与电路原理,实际的电压值、电流值紧密的相关,理论上通的电路还不能说明什么,还要看它在实际的电路中能否正常工作而不被损坏。首先,在电路调试方面,在老师和同学的帮助和讨论下,我先把每一个外围电路的工作原理弄懂了,对它的工作电压电流核实,然后我在实验板上把实际的电路连接起来,加上电源模板,一个一个的调试,发现它确实能够正常工作时在做下一步。在电路印制板设计方面:我设计的是用了两个电路板来实现,一个是以AT89S52芯片为中心的控制模块,首先是要看懂以前的小系统,也就是AT89S52的功能;一块74hc244驱动模块,利用74hc244来驱动四位数码管,而数码管做显示作用。在程序调试方面也遇到各种问题,单独调试每个模块程序时能正常工作,但把它们组合连在一起的时候有的模块就不正常工作。经过仔细的检查和耐心的调试才发现有的出现时序的问题,所以造成有的不能工作。参考文献1徐锡存,曹国华编著.单片机原理及接口技术M.西安:西安电子科技大学出版社,2007. 2钟富昭编著.8051单片机典型模块设计与应用M.北京:人民邮电出版社,2007.3黄智伟编著.全国大学生电子设计竞赛电路设计M.北京:北京航空航天大学出版社,2006.4楼然苗,李光飞编著.单片机课程设计指导M. 北京:北京航空航天大学出版社,2007.5 苏家健等编.单片机原理及应用技术M. 北京:高等教育出版社,2004.11 6 徐惠民,安德宁.单片微型计算机原理接口与应用第1版M.北京:北京邮电大学出版,1996参考文献需要一篇英文的附录:硬件原理图 源程序清单/晶振11.0592MHz,T1每250微秒中断,按键P1.0-P1.7,发光二极管接P3.0-P3.3,p3.4/*变量的定义: show_val6: 显示的值 init_val6: 密码初始值 key_val: 返回按键的值 255-表示无按键按下 key_index: 当前按键是哪一位密码 T1_cnt: 定时器计数溢出数 cnt_val_15s: 报警计时的数值 cnt_val_5s: 待机时间计时 cnt_val_4s: 输入正确,等待4秒清除开锁信号 cnt_state: 计时状态 error_num: 错误次数 led_seg_code:数码管7段码*/#include reg51.h/*说明key0=P10; key1=P11;key2=P12; key3=P13;key4=P14;key5=P15;enter=P16;esc=P17;*/sbit relay_open=P30; /电磁锁开锁驱动sbit pw_error=P31; /密码错误信号sbit alarm_out=P32; /报警输出sbit open_lock=P33; /已开锁指示信号sbit audio_out=P34; /有源蜂鸣器unsigned char data cnt_val_15s,cnt_val_5s,cnt_val_4s,cnt_state;unsigned int data T1_cnt;unsigned char data key_val,key_index,key_val_old;unsigned char data state_val,error_num;unsigned char data show_val6;char code init_val6=1,2,3,4,5,0;char code led_seg_code11=0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/led_seg_code0-9代表0-9 led_seg_code10=0x00数码管不显示任何内容/-延时程序-void delay(unsigned int i)/延时 while(-i); /-清除输入内容-void init_variant()unsigned char i; for(i=0;i3999) /如果计数3999, 计时1s T1_cnt=0; switch (cnt_state) case 0: /待机,需要计时5s if(cnt_val_5s5) cnt_val_5s+; else cnt_val_5s=0; init_variant();/待机计时到5秒时,清除输入的内容 TR1=0; /停止计时 break; case 1:/密码输入正确,需要计时4s if(cnt_val_4s4) cnt_val_4s+; else cnt_val_4s=0; init_variant();/密码输入正确,计时到4秒时,清除输入的内容 open_lock=1; /已开锁信号清零 relay_open=1; /开锁信号清零 cnt_state=0; TR1=0; /停止计时 break; case 2: /密码输入错误3次,计时15s if(cnt_val_15s15) cnt_val_15s+; else cnt_val_15s=0; init_variant();/三次密码错误时,计时15秒,清除输入的内容 open_lock=1; / 清除所有指示和报警 relay_open=1; alarm_out=1; pw_error=1; cnt_state=0; TR1=0; /停止计时 break; /-判断键盘输入内容与密码是否一致-unsigned char check_input_pw() unsigned char i,k; k=1; for(i=0;i x=19 TL1=0x19; EA=1; /开中断 ET1=1; TR1=0; /开定时器T1 while(1) key_val=scan_key(); /按键输入,有键按下key_val为0-7,无键按下key_val为255。 if (key_val!=key_val_old) key_val_old=key_val; if (key_val!=255& cnt_state!=2) audio_out=0; delay(100); /延时去抖动 audio_out=1; switch (key_val) case 0: case 1: case 2: case 3: case 4: case 5: if(key_index6) /密码为6位,超过6位视为输入无效 show_valkey_i

温馨提示

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

评论

0/150

提交评论