免费预览已结束,剩余19页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 绪论 在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。1.1电子密码锁的设计思路与技术要求从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中。本设计通过键盘和用户获得交互,如果输入的密码与预定的密码相符的话,则授予其相应权限,在本系统中是使黄色LED灯点亮。如果密码输入错误,则蜂鸣器发出报警声音。系统支持错误密码的退位,并且支持输入完成之后的确认。1.2系统的主要技术参数(1)使用一块AT89C51作为主控芯片。 (2)默认密码为123456,输入密码,数码管显示为“ -”(3)按CLR键实现退格功能。(4)按ENTER键输入密码,密码正确则黄灯亮,密码错误则蜂鸣器响。第2章 单片机简介2.1单片机介绍单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。ATMEL单片机(51单片机):ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机.2.2单片机的应用领域 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。2)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3)在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途4。第3章系统方案与论证3.1设计要求数字密码锁一般分为两种类型:密码不可改变和密码可以改变。本文只讨论密码不可改变的设计。设计不可变的数字密码锁,即将密码保存再程序存储器中,上电后,系统进入初始化状态,表示要求用户输入密码,密码由程序中的TABLE表设定,若用户输入密码正确,则显示输入密码正确信号,并进行相应的动作,在本系统中,是使LED灯点亮;若用户输入密码错误,显示密码输入错误的信号,并使蜂鸣器发声,同时系统回到输入状态。3.2系统基本方案3.2.1 主控模块的选择89C51芯片内部有ROM,且片内ROM全部采用Flash ROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术,而且内存也只有4KB。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。基于前两种方案的比较,考虑到AT89S52,该芯片内部既有ROM,又与MCS-51兼容,而且ISP在线编程技术适用AT89S52芯片中,这样既降低了成本也无需反复插拔芯片,可避免损坏芯片管脚,同时可省去了仿真器和专用编程器,大大减低了操作难度和成本。而且该单片机的性能稳定且内存达8KB。综观上述方案的论证与比较,采用AT89S52作为单片机的芯片3.2.2并行I/O口扩展模块的选择MCS-51单片机系统如果不作任何扩展,P0P3口可作I/O接口使用。但是再很多数据采集场合都需要扩展外部数据存储器,而且P3口也要优先考虑第二功能的使用,这样,真正可以用作I/O接口的仅仅为P1或P2、P3的部分未用引脚。在一个实际应用系统中,需要很多I/O接口作为对外控制引脚,如控制键盘,显示电路等,这样就需要用到I/O扩展的问题在本系统中,选用74LS245作为并行I/O扩展模块3.2.3 显示模块的设计 LCD数码管液晶显示,有单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,但同时液晶显示器的程序编写复杂,价格昂贵,从而降低了整个系统的性价比,故不采用此种方案。LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和理解。经过以上方案的比较,排除了前两种方案之后,最后选择方案三:LED数码管动态扫描显示。7SEG-MPX8-CC八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。本系统选用7SEG-MPX8-CC3.2.4键盘接口的设计键盘接口电路是嵌入式系统设计中与用户进行人机交互的重要界面,实现向单片机输入命令的功能。键盘由一组敞开的键盘开关组成,每个按键被赋予一个代码,称为键码。键盘分为编码式键盘和非编码式键盘,由于编码式键盘硬件实现复杂,本系统采用实现简单的编码式矩阵键盘。本系统使用43矩阵式键盘,是比较常见的键盘排列方式,键盘由09的数字键和1个后退键、1个确认键构成。3.2.5系统各模块的最终方案经过方案论证和比较,选出最优秀的系统框架如图3-1 主控模块LED显示模块键盘模块声音模块并行I/O模块选择图3-1 系统框架第四章 系统硬件设计与实现4.1系统硬件概述密码锁系统主要由六个部分构成,其核心是AT89C51单片机,其核心是AT89C51单片机,通过AT89C51进行控制各个模块,并行I/O扩展模块从P0口传输数据到AT89C51单片机中,并行I/O扩展模块接数码管ABCDEFG和DP口,P2口传输数据到八段数码管的18位。利用AT89C51单片机编程实现数码管的动态显示,显示模块是连接一片八段数码管以动态扫描方式同时驱动八个数码管来显示当前的数字; P3口用来接矩阵式键盘,单片机P1口接上一个发光二极管和一个蜂鸣器,如果密码正确,则单片机驱动二极管发亮显示,如果密码错误,则通过蜂鸣器来报警。4.2主要单元电路设计AT89C51单片机是双列直插40引脚的集成电路芯片,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。MCS-51单片机第8引脚接蜂鸣器,第40引脚为电源端,第31引脚需要接高电位使单片机选用内部程序存储器;第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号;第9脚为复位脚,当其接高电位时,单片机停止当前工作并恢复到初始状态。图4-1 AT89C51外形与引脚4.3并行I/O扩展模块电路设计利用74LS245实现并行I/O接口扩展是通过分时选通74LS245来实现的,利用如下指令实现对P1口的分时复用。74LS245为三态输出的八组缓冲器和总线驱动器,8位输入有八个输入引脚(A0A7),输出端同样由八个引脚(B0B7)构成。74LS245芯片使用双向数据缓冲器,所以输入输出方向是双向的,即不但能用于对外部设备的读数据操作也能进行写操作。在本系统中,只需要使用其中的输出功能。4.4 LED数码管显示模块设计单片机P0口连接74LS245,由于74LS245的输出是低电位有效,因此采用共阳极的数码管。通过单片机P0口输出的信号经过74LS245译码后输出给数码管显示。由于采用的是动态方式因此我们使用的是P2口来组合选择通道,通过编程来实现数码管的动态显示。4.5键盘接口模块的设计键盘接口电路是嵌入式系统设计中与用户进行人机交互的重要界面,实现向单片机输入命令的功能。键盘由一组敞开的键盘开关组成,每个按键被赋予一个代码,称为键码。键盘分为编码式键盘和非编码式键盘,由于编码式键盘硬件实现复杂,本系统采用实现简单的编码式矩阵键盘。本系统使用43矩阵式键盘,是比较常见的键盘排列方式,键盘由09的数字键和1个后退键、1个确认键构成。第5章系统软件设计采用软件对系统进行编程比起硬件实现其功能要简单、快捷很多。本系统的软件设计采用了汇编语言编程。软件程序分为两部分:第一部分为主程序;第二部分为子程序。其中子程序又分键盘扫描程序子程序、按键处理子程序、声音报警子程序、左移子程序、右移子程序、和数码管显示子程序等。主程序中通过判断当前时间来跳转到相应的子程序来实现系统的各模块的功能。下面就各个部分进行逐一说明。5.1 主程序的设计主程序开始时先初始化,初始化8位数码管的段码、初始密码,空间初始化,存储区清零,然后开始运行数码显示子程序,程序进出等待状态。主程序的流程图如图5-1初始化输入高电平点亮LED灯输入六位数据功能键是否按下是否原始密码图5-1 主程序流程图5.2 子程序设计(程序见附录,在此只简单介绍) 5.2.1键盘扫描子程序的设计键盘使用矩阵式键盘,由行和列组成,CPU对所有按键进行监视,一旦发现按键被按下,CPU经过程序加以识别,并转入相应键的处理程序,实现该键功能。键盘设置再行列交叉点上,行列分别连接到按键开关的两端。行线通过上拉电阻接到Vcc上。平时按键无动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由此行线相连的列线电平决定。5.2.2 按键处理子程序按键处理程序,对不同的按键做出响应。5.2.3 声音报警子程序定时器中断服务程序,用于声音报警。5.2.4左移子程序当输入一个密码时,8位数码管显示的数字往左移动一位。5.2.5右移子程序当输入一个密码出现错误时,可以通过CLR按键往后退一位,8位数码管显示的数字往右移动一位。5.2.6数码管显示子程序本系统采用动态扫描的方式来显示数字,在第一时刻P0口输出的信号经74LS245和单片机的P3口的数字相组合成的不同的通道来选择送给第一个数码管显示,同理第二时刻第二个数码管显示数字,直到最后一个数码管显示。当处于输入状态时候,显示“PE”,每输入一个字符,出现一个“-”表示密码。5.3 电路图的建立首先打开单片机仿真软件,查找AT89C51、7SEG-MPX8-CC-BLUE、74LS245、BUTTON、POWER、GROUD等元件,然后根据设计要求放置在相应的位置,并进行连线。第六章 系统测试6.1 测试工具keil 、Proteus6.2 指标测试在调试程序时,刚开始只编写出了数码管的时钟显示部分的程序,经过多次调试,删除都无法进行,以及确认键的进行。最后发现是DISP数码管显示子程序出现了问题,数码管要相互切换使用,一种情况是输入正确的密码,一种情况是输入错误。当输入错误的话,则蜂鸣器发出报警。当时在调试回退按钮时,还出现了减乱的情况,后面经过分析程序,弄懂了是程序转换出现的问题。6.3 测试结果分析与结论本文首先对电子密码锁的设计思路作了系统的说明,然后详细介绍了通过ATMEL89C51单片机实现频率测量仪的设计,实现了输入密码并防止密码泄露,在LED上显示“-” 字符,并通过发光二极管以及蜂鸣器表示输入密码的正误。本文还详细的给出了相关的硬件框图和软件流程图,并编制了该汇编语言程序。最后使用单片机仿真设计软件PROTEUS进行了验证性的仿真。依据调试后得出的结果来看,本设计在完成基本要求,电路需要键盘输入的数字判断是否与初始化的密码相符,密码输入时,数码管显示“-”,防止密码泄露,系统支持输入错误之后的回退,也支持密码错误之后的声音报警,基本功能都实现了。参考文献【1】 单片机原理及基于单片机的嵌入式系统设计,中国水利水电出版社,2007年【2】 潘永雄.新编单片机原理与应用M.西安:西安电子科技大学出版社,2003.年【3】 The L297 Stepper Motor Controller Application Note致 谢本人的毕业论文一直是在老师的悉心指导下进行的。导师治学态度严谨,并且在整个毕业设计过程中,老师不断对我得到的结论进行总结,并提出新的问题,使得我的毕业设计课题能够深入地进行下去,也使我接触到了许多理论和实际上的新问题,使我做了许多有益的思考。在此表示诚挚的感谢和由衷的敬意。通过此次毕业设计实习,我感觉自己的能力有了很大的提高,不仅在学习上,而且在如何解决问题上。由于用一种以前不太懂的汇编语言编程,缺乏一些基本的经验和常识,在几个月的时间里,在老师的积极指导下,在同学的帮助和自己努力学习下,使自己顺利地完成了此次设计任务。在此,我对给予此次毕业设计极大帮助的老师、以及参与并协助完成此次毕业设计的所有老师、同学表示最真诚的感谢!附 录;*;以下8个字节存放8位数码管的段码LED_BIT_1EQU30HLED_BIT_2EQU31HLED_BIT_3EQU32HLED_BIT_4EQU33HLED_BIT_5EQU34HLED_BIT_6EQU35HLED_BIT_7EQU36HLED_BIT_8EQU37H;以下6个字节存放初始密码WORD_1EQU38HWORD_2EQU39HWORD_3EQU3AHWORD_4EQU3BHWORD_5EQU3CHWORD_6EQU3DH;以下6个字节存放用户输入的6位密码KEY_1EQU3EHKEY_2EQU3FHKEY_3EQU40HKEY_4EQU41HKEY_5EQU42HKEY_6EQU43H;*CNT_AEQU44HCNT_BEQU45HKEY_CNTEQU46H;已输出的密码位数LINEEQU47H;按键行号ROWEQU48H;按键列号VALEQU49H;键值;*;以下为初始化程序,包括数据存储空间初始化,设置初始密码ORG00HSJMPSTARTORG0BHLJMPINT_T0START:MOVCNT_A,#00H;程序初始化MOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HSETBP1.0MOVLED_BIT_1,#00H;段码存储区清0MOVLED_BIT_2,#00HMOVLED_BIT_3,#00HMOVLED_BIT_4,#00HMOVLED_BIT_5,#00HMOVLED_BIT_6,#00HMOVLED_BIT_7,#79HMOVLED_BIT_8,#73HMOVKEY_1,#00H;输入密码存储区清0MOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMOVKEY_5,#00HMOVKEY_6,#00HMOVWORD_1,#6;设置初始密码为123456MOVWORD_2,#5MOVWORD_3,#4MOVWORD_4,#3MOVWORD_5,#2MOVWORD_6,#1MOVTMOD,#01HMOVTH0,#(65536-700)/256MOVTL0,#(65536-700)MOD256MOVIE,#82HA0:LCALLDISP;*;以下为键盘扫描程序,计算键值并存入VALLSCAN:MOVP3,#0F0H;扫描行码L1:JNBP3.0,L2LCALLDLY_SJNBP3.0,L2MOVLINE,#00HLJMPRSCANL2:JNBP3.1,L3LCALLDLY_SJNBP3.1,L3MOVLINE,#01HLJMPRSCANL3:JNBP3.2,L4LCALLDLY_SJNBP3.2,L4MOVLINE,#02HLJMPRSCANL4:JNBP3.3,A0LCALLDLY_SJNBP3.3,A0MOVLINE,#03HRSCAN:MOVP3,#0FH;扫描列码C1:JNBP3.4,C2MOVROW,#00HLJMPCALCUC2:JNBP3.5,C3MOVROW,#01HLJMPCALCUC3:JNBP3.6,C1MOVROW,#02HCALCU:MOVA,LINE;计算键值MOVB,#03HMULABADDA,ROWMOVVAL,A;*;以下为按键处理程序,对不同的按键作出响应CJNEA,#0AH,J1;是否为CLR键MOVR1,KEY_CNTCJNER1,#00H,J2LCALLALARM_1LJMPSTART J2:LCALLSHIFTR DECKEY_CNTW00:LCALLDISP;等待按键抬起MOVA,P3CJNEA,#0FH,W01LJMPA0W01:MOVA,P3CJNEA,#0F0H,W02LJMPA0W02:SJMPW00J1:MOVA,VALCJNEA,#0BH,J3;判断是否为ENTER键MOVR1,KEY_CNTCJNER1,#06H,J4MOVA,WORD_1;比较密码CJNEA,3EH,J5MOVA,WORD_2CJNEA,3FH,J5MOVA,WORD_3CJNEA,40H,J5MOVA,WORD_4CJNEA,41H,J5MOVA,WORD_5CJNEA,42H,J5MOVA,WORD_6CJNEA,43H,J5CLRP1.0LCALLDLY_LLJMPFINIJ5:LCALLALARM_2LJMPSTARTJ4:LCALLALARM_1LJMPSTARTJ3:INCKEY_CNT;按下数字键MOVA,KEY_CNTCJNEA,#07H,K1LCALLALARM_1W10:LCALLDISP;等待按键抬起MOVA,P3CJNEA,#0FH,W11LJMPSTARTW11:MOVA,P3CJNEA,#0F0H,W12LJMPSTARTW12:SJMPW10LJMPSTARTLJMPSTARTK1:LCALLSHIFTLW20:LCALLDISP;等待按键抬起MOVA,P3CJNEA,#0FH,W21LJMPA0W21:MOVA,P3CJNEA,#0F0H,W22LJMPA0W22:SJMPW20LJMPA0ALARM_1:SETBTR0;操作错误报警JBTR0,$RETALARM_2:SETBTR0;密码错误报警JBTR0,$LCALLDLY_LRET;*;定时器中断服务程序,用于声音报警INT_T0:CPLP1.7MOVTH0,#(65536-700)/256MOVTL0,#(65536-700)MOD256INCCNT_AMOVR1,CNT_ACJNER1,#30,RETUNEMOVCNT_A,#00HINCCNT_BMOVR1,CNT_BCJNER1,#20,RETUNEMOVCNT_A,#00HMOVCNT_B,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋装饰公司协议书
- 房屋购买代办协议书
- 房屋转让合同协议书
- 房屋门窗安装协议书
- 房建劳务施工协议书
- 房管所撤销合同范本
- 房顶安全协议书范本
- 手工制品保密协议书
- 手机订货协议书范本
- 打包机采购合同范本
- 八上第4章第2节生活中的水溶液1
- 八宝粥的煮法
- 福建省高速公路集团公司招聘考试笔试试题【含答案】
- 2026-2031中国海底电缆行业市场投资价值报告(版)
- 河南科技大学《模拟电子技术》2025年学年期末试卷及答案
- 睡眠呼吸暂停综合征护理措施
- 2025-2026学年高一化学上学期第三次月考卷【测试范围:1~3章】(人教版必修第一册)(考试版A4)
- 2025年高压电工证考试题库及答案(含答案)
- (2025年)《市场营销》期末考试题附答案
- 2026湖北市政建设集团有限公司校园招聘考试笔试参考题库附答案解析
- 2025北京首都儿科研究所、首都医科大学附属首都儿童医学中心面向应届毕业生(含社会人员) 招聘96人笔试考试备考题库及答案解析
评论
0/150
提交评论