首页 基于51单片机电子锁设计

基于51单片机电子锁设计

举报
开通vip

基于51单片机电子锁设计基于51单片机电子锁设计摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数...

基于51单片机电子锁设计
基于51单片机电子锁设计摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,本系统各项功能已达到本设计的所有要求。关键词:单片机;密码锁;单片机设计,电子锁。ElectronicLockDesignwith51SeriresSingleChipControllerAbstractAlongwiththeexaltationofsocialscienceandthelivinglevelofpeople,howcarryoutthefamilytoguardagainsttheft,thisproblemalsochangeparticularlyoutstanding.Becauseofthesimpleconstructoftraditionalmachinelock,theaffairsoftheftishackneyed.theelectronicslockissaferbecauseofitsconfidentiality,usingthevividgood,thesafecoefficientishigh,beingsubjectedtothelargecustomerclose.Itcancarryoutthekeyinformationtoregisterinthemainonboardinitialattestation,thepasswordinformationencryptetc.Gotocorrespondbylettertheprincipleaccordingtothestringbetween51machines,thisiseasytoencryptandprotecttothepasswordsinformationrandom.Adoptthenumericalsignalcodes,notonlycancarryoutmanycontrolsoftheroadinformation,raisetheanti-interferencethatsignaldeliver,reducethemistakeaction,butalsothepowerconsumeislow,Respondquickly,theefficiencydeliverishigh,workstablecredibilityetc.Thesoftwaredesignadoptionthedesignthoughtfromtoptobottom,tomakethesystemtowardweardistributetype,turntothedirectiondevelopmentofsmall,strengthenthesystemandcanexpandthestabilityandcirculate.Testtheresultenunciation,variousfunctionsofthissystemarealreadyallrequestofthisdesign.keyword:singlechip;cryptogramlock;singlechipdesign;electronicslock.目录摘要 7第一章绪论 111.1电子锁的特点 111.2电子密码锁的发展趋势 12第二章系统的总体设计 12第三章单片机介绍 133.1单片机概述 133.2单片机编程语言介绍 143.3系统的选型 163.4AT89C51引脚功能介绍 173.5定时器的使用 18第四章系统的硬件设计 214.1单片最小系统设计 214.2数码管显示电路的设计 224.3键盘电路的设计 234.4报警及指示电路 244.5上锁、开锁控制电路 28第五章系统的软件设计 295.1系统的总体软件流程 295.2密码锁的程序设计 315.2.1密码比较子程序 315.2.2键盘扫描子程序 315.2.3数码管显示部分驱动程序 35第六章结束与展望 37致谢 38参考文献 40附录一:系统总体电路设计 41附录二系统程序源代码 43 第一章绪论门禁系统顾名思义就是对出入口通道进行管制的系统,它是在传统的门锁基础上发展而来的。传统的机械门锁仅仅是单纯的机械装置,无论结构设计多么合理,材料多么坚固,人们总能用通过各种手段把它打开。在出入人很多的通道(象办公室,酒店客房)钥匙的管理很麻烦,钥匙丢失或人员更换都要把锁和钥匙一起更换。为了解决这些问题,就出现了电子磁卡锁,电子密码锁,这两种锁的出现从一定程度上提高了人们对出入口通道的管理程度,使通道管理进入了电子时代,但随着这两种电子锁的不断应用,它们本身的缺陷就逐渐暴露,磁卡锁的问题是信息容易复制,卡片与读卡机具之间磨损大,故障率高,安全系数低。密码锁的问题是密码容易泄露,又无从查起,安全系数很低。同时这个时期的产品由于大多采用读卡部分(密码输入)与控制部分合在一起安装在门外,很容易被人在室外打开锁。这个时期的门禁系统还停留在早期不成熟阶段,因此当时的门禁系统通常被人称为电子锁,应用也不广泛。最近几年随着感应卡技术,生物识别技术的发展,门禁系统得到了飞跃式的发展,进入了成熟期,出现了感应卡式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,门禁系统的应用领域也越来越广。1.1电子锁的特点电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大提高。电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于是有了电子锁一日千里的跃进。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,主要特点如下:1) 保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2) 密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3) 误码输入保护。当输入密码多次错误时,报警系统自动启动,防止试探密码。1.2电子密码锁的发展趋势从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。第二章系统的总体设计系统的总体设计框图如图2-1所示图2-1系统总体设计框图基于单片机的密码锁设计主要包括单片机及其外围电路构成的最小系统,数码管显示电路,蜂鸣器报警电路、LED指示,开锁、上锁控制电路以及键盘电路等几个部分组成。整个系统以单片机AT89C51为控制核心,密码锁通过间键盘和显示电路等完成与人的信息交换,通过开锁、上锁控制电路完成对锁的打开和关闭的控制。蜂鸣器报警电路和LED指示电路提到提示和报警的作用,扩展系统的功能,使操作更加方便。键盘电路设计0—9、开锁、上锁、修改密码等按键。通过键盘电路输入密码锁的密码,系统将判断输入的密码是否正确,若正确系统将通过开锁控制电路执行开锁动作。若不正确,系统将提示重新输入密码,若三次输入密码错误,系统将同通过数码管显示错误信息,并发出声光报警,并锁定键盘输入。此时,系统只有通过硬件复位或者重新上电,才能重新开始工作。当系统正确输入密码开锁后,可以通过上锁键使系统重新上锁,回到等待密码输入开锁的状态,也可以通过密码修改键执行修改密码的操作,修改密码需要再次输入就密码,并连续两次输入的新密码输入一致,才能修改密码成功,否则,系统将自动回到初始状态,等待密码输入开锁。第3章 单片机介绍3.1单片机概述单片微机(Single-ChipMicrocomputer)简称单片机,通常统称微控制器(Micro-Controller简写μC)或微型处理部件(MicroControllerUnit简写MCU)。一般的说,单片机就是在一块硅片上集成CPU、RAM、ROM、定时器/计数器、和多种I/O的完整的数字处理系统。二十世纪,微电子、IC集成电路行业发展迅速,其中单片机行业的发展最引人注目。单片机功能强、价格便宜、使用灵活,在计算机应用领域中发挥着极其重要的作用。从INTEL公司于1971年生产第一颗单片机Intel-4004开始,开创了电子应用的“智能化”新时代。单片机以其高性价比和灵活性,牢固树立了其在嵌入式微控制系统中的“霸主”地位,在PC机以286、386、Pentium、PⅢ高速更新换代的同时,单片机却“始终如一”保持旺盛的生命力。例如,MCS-51系列单片机已有十多年的生命期,如今仍保持着上升的态势就充分证明了这一点。1.单片机的结构与组成目前,单片机的系统结构有两种类型:一种是将程序和数据存储器分开使用,即哈佛(Harvard)结构,当前的单片机大都是这种结构。另一种是采用和PC机的冯.诺依曼(VonNeumann)类似的原理,对程序和数据存储器不作逻辑上的区分,用来存放用户程序,可分为EPROM、OTP、ROM和FLASH等类。EPROM型内存编程后其内容可用紫外线擦除,用户可反复使用,故特别适用于开发过程,但EPROM型单片机价格很高。具有ROM型(掩膜型)内存的单片机价格最低,它适用于大批量生产。由于ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户要更改程序代码就十分不便,在产品未成熟时选用ROM型单片机风险较高。OTP型(一次可编程)单片机介于EPROM和ROM型单片机之间,它允许用户自己对其编程,但只能写入一次。OTP型单片机生产多少完全可由用户自己掌握,不存在ROM型有最小起订量和掩膜费问题,另外,该类单片机价格已同掩膜型十分接近,故特别受中小批量客户的欢迎。Flash型(闪速型)单片机允许用户使用编程工具或在线快速修改程序代码,且可反复使用,故一推出就受到广大用户的欢迎。Flash型单片机,即可用于开发过程,也可用于批量生产,随着制造工艺的改进,Flash型单片机价格不断下降,使用越来越普遍,它已是现代单片机的发展趋势。随机内存(RAM):用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百个字节。RAM的内容是易失性(也有的称易挥发性)的,掉电后会丢失。最近出现了EEPROM或FLASH型的数据存储器,方便用户存放不经常改变的数据及其它重要信息。单片机通常还有特殊寄存器和通用寄存器,它们是单片机中存取速度最快的内存,但通常存储空间很小。2.中央处理器(CPU)是单片机的核心单元,通常由算术逻辑运算部件ALU和控制部件构成。CPU就象人的大脑一样,决定了单片机的运算能力和处理速度。并行输入/输出(I/O)口:通常为独立的双向口,任何口既可以用作输入方式,又可以作输出方式,通过软件编程来设定。现代的单片机的I/O口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。I/O是单片机的重要资源,也是衡量单片机功能的重要指针之一。串口输入/输出口:用于单片机和串行设备或其它单片机的通信。串行通信有同步和异步之分,这可以用硬件或通用串行收发器件来实现。不同的单片机可能提供不同 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的串行通信接口,如UART、SPI、、MicroWire等。3.定时器/计数器(T/C)单片机内部用于精确定时或对外部事件(输入信号如脉冲)进行计数,有的单片机内部有多个定时/计数器。4.系统时钟通常需要外接石英晶体或其它振荡源来提供时钟信号输入,也有的使用内部RC振荡器。以上是单片机的基本构成,现代的单片机又加入了许多新的功能部件,如模拟/数字转换器(A/D)、数字/模拟转换器(D/A)、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等等。3.2单片机编程语言介绍对于51系列单片机,现有四种语言支持,即汇编、PL/M,C和BASIC。BASIC通常附在PC机上,是初学编程的第一种语言。一个新变量名定义之后可在程序中作变量使用,非常易学,根据解释的行可以找到错误而不是当程序执行完才能显现出来。BASIC由于逐行解释自然很慢,每一行必须在执行时转换成机器代码,需要花费许多时间不能做到实时性。BASIC为简化使用变量,所有变量都用浮点值。BASIC是用于要求编程简单而对编程效率和运行速度要求不高的场合。PL/M是Intel从8080微处理器开始为其系列产品开发的编程语言。它很像PASCAL,是一种结构化语言,但它使用关键词去定义结构。PL/M编译器好像汇编器一样可产生紧凑代码。PL/M总的来说是“高级汇编语言”,可详细控制着代码的生成。但对51系列,PL/M不支持复杂的算术运算、浮点变量而无丰富的库函数支持。学习PL/M无异于学习一种新语言。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言结构是以括号{}而不是子和特殊符号的语言。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的内存结构有初步了解寄存器分配、不同内存的寻址及数据类型等细节可由编译器管理程序有 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的结构,可分为不同的函数。这种方式可使程序结构化将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性编程及程序调试时间显著缩短,从而提高效率提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机不同较快地移植过来。51的汇编语言非常像其它汇编语言。指令系统比第一代微处理器要强一些。51的不同存储区域使得其复杂一些。尽管懂得汇编语言不是你的目的,看懂一些可帮助你了解影响任何语言效率的51特殊规定。例如,懂得汇编语言指令就可以使用在片内RAM作变量的优势,因为片外变量需要几条指令才能设置累加器和数据指针进行存取。要求使用浮点和启用函数时只有具备汇编编程经验才能避免生成庞大的、效率低的程序,这需要考虑简单的算术运算或先算好的查表法。最好的单片机编程者应是由汇编转用C而不是原来用过标准C语言的人。本设计采用C51编程。由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。3.3系统的选型本系统以MCS-51单片机成员中的AT89C51为控制核心。AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序内存,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序内存既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89C51单片机可为您提供许多高性价比的应用场合,它灵活应用于各种控制领域。主要性能参数:(1)与MCS-51产品指令系统完全兼容(2)4K字节在系统编程(ISP)Flash闪速内存(3)1000次擦写周期(4)4.0-5.5V的工作电压范围(5)全静态工作模式:0Hz—33MHz(6)三级程序加密锁(7)2568字体内部RAM(8)32个可编程I/O口线(9)3个16位定时/计数器(10)5个中断源(11)全双工串行UART通道(12)低功耗空闲和掉电模式(13)中断可从空闲模唤醒系统(14)看门狗(WDT)及双数据指针(15)掉电标识和快速编程特性(16)灵活的在系统编程(ISP—字节或页写模式)其内部结构结构如图3-1所示:3.4AT89C51引脚功能介绍1.电源引脚Vcc和GNDVcc:电源电压,GND(10脚):接地端。2.时钟电路引脚XTALl和XTAL2XTAL2(18脚):接外部晶体和微调电容的一端。在内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。要检查单片机的振荡电路是否正确工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚):接外部晶体的微调电容的另一端。在片内它是振荡电路反相放大器的输入端。若需采用外部时钟电路时,该引脚输入外部时钟脉冲如图3-2,3-3所示。3.控制信号引脚RSTRES(8脚)“RST是复位信号输入端,高电平有效。当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,可以完成复位操作。4.I/O(输入/输出)P0、P1、P2和P3标准51单片机,如8051、8031、AT89C51、AT89S51、P89C51等有4个I/O(输入/输出)口,分别为:P0口(39—32脚):P0口是一个漏极开路的8位双向埠。作为漏极八路的输出端口,每次能驱动8个Ls型TTL负载。当P0口作为输入口使用时,其先向锁存器(地址80H)写入全1,此时P0口的全部引脚悬空,叫作为高阻抗输入。P1口(1—8脚):P1口是一个带上拉电阻的8位准双向I/O端口每一位能驱动(吸收成输出电流)4个LS型TTL负载。在P1口作为输入口使用时,应先向P1口锁存器(地址90H)写入全1,上拉电阻接成高电平。P2口(21—28脚):P2口是一个带内部上接电阻的8位准双向埠。P2口的每一位能驱动4个LS型TTL负载。P3口(21—28脚):P3口是一个带内部上接电阻的8位准双向埠。P3口的每一位能驱动(吸收或输出电流)4个LS型TTL负载。P3口与其它的I/O埠有很大区别,它除作为—般准双向I/O口外,每个引脚还具有专门的功能,见表3-1。表3.1端口引脚功能3.5定时器的使用定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择。这两个定时/计数器有4种操作模式,通过TMOD的M1和M0选择两个定时/计数器的模式。1)模式0图3-3所示为模式0工作方式。此模式下定时器寄存器配置为13位寄存器,当计数从全为1翻转为全为0时定时器中断标志位TFn置位。当TRn=1同时GATE=0或INTn=1时定时器计数置位GATE时允许由外部输入。INTn控制定时器,这样可实现脉宽测量,TRn为TCON寄存器内的控制位。模式0的操作对于定时器0及定时器1都是相同的两个不同的GATE位,TMOD.7和TMOD.3分别分配给定时器0及定时器1。图3-4定时器/计数器/0/1的模式0:13定时器/计数器2)模式1模式1除了使用了THn及TLn全部16位元外其它与模式0相同。3)模式2此模式下定时器寄存器作为可自动重装的8位计数器TLn。如图3-5所示,TLn的溢出不仅置位TFn,而且将THn内容重新装入TLnTHn。内容由软件预置重装时,THn内容不变。模式2的操作对于定时器0及定时器1是相同的。图3-5定时器寄存器4)模式3此模式下定时器0的TL0及TH0作为两个独立的8位计数器,图3-6为模式3时的定时器0逻辑图。TL0占用定时器0的控制位C/T、GATE、TR0、INT0及TF0。TH0限定为定时器功能计数器周期占用定时器1的TR1及TF1。此时TH0控制定时器1中断。模式3可用于需要一个额外的8位定时器的场合。当定时器0工作于模式3时,定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器或者应用于任何不要求中断的场合。图3-6定时器/计数器/0/1的模式3:双8位计数器第4章 系统的硬件设计4.1单片最小系统设计单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统包括:单片机、晶振电路、复位电路。前面已经提到单片机选用AT89C51。单片机及外围电路如图4-1所示。图4-1单片机最小系统设计1.时钟电路AAT89C5内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图4-2(a)所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图4-2(b)所示,XTAL1接地,XTAL2接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。2.复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表3-1所示。表4-1一些寄存器的复位状态(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图4-3所示。整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4-4(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图4-4(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图4-4(c)所示。上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。本系统的复位电路采用图4-4(b)上电复位方式。密码三次输入错误后,系统将停止运行,键盘将被锁定,此时,通过复位按键可以实现对系统的复位。使程序继续运行。4.2数码管显示电路的设计数码管显示也称为LED显示,是一种主动发光的信息显示方式,它的每一个字段由一个发光的二极管组成,其外形和引脚如下图所示:LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳机极数码管;相反的,就叫共阴的(如下图所示)那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。密码锁采用7段LED数码管显示,这里采用8位共阴极数码管采用扫描形式工作,其8个数据为接在单片机的P1口,AT89C51单片机的P1口的每一个I/O都能能吸收8个TTL逻辑器件的输入漏电流,算下来能驱动约10mA。能驱动数码管的8个数据阴极。8位共阳极数码的8个阴极采用8个NPN三极管驱动。用单片机P3口控制。LED数码管显示电路如图4-7所示。图4-7数码管显示电路4.3键盘电路的设计键盘是标准的输入设备,实现键盘有两种 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 :一是采用现有的一些芯片实现键盘扫描,如8279,CH451,LMC9768等,还有就是用软件实现键盘扫描。使用现成的芯片可以节省CPU的开销,但增加了成本,而用软件实现具有较强的灵活性,也只需要很少的CPU开销,可以节省开发成本。本文便使用软件实现键盘的扫描。常见的键盘可分为独立按键式键盘和行列扫描式键盘。由于密码锁所涉及的按键较多,本设计采用行列扫描式键盘理论上当按键按下或弹起时,可以相应的产生低电平或高电平,但实际并非如此。键盘按键一般都采用触点式按键开关。当按键被按下或释放时,按键触点的弹性会产生抖动现象。即当按键按下时,触点不会迅速可靠地接通,当按键释放时,触点也不会立即断开,而是要经过一段时间的抖动刁才能稳定下来,按键材料不同,抖动时间也各不相同。按键抖动可能导致单片机将一次按键操作识别为多次操作,一般采用硬件电路或软件程序来消除。图4-8按键抖动示意图一次完整的按键过程,包含以下几个阶段:如图4-8所示。1、等待阶段:此时按键尚未按下,处于空闲阶段;2、闭合抖动阶段:此时键刚刚按下,但信号处于抖动状态,系统在检测时应消抖延时,约5ms到20ms;3、有效闭合阶段:此时抖动己经结束,一个有效按键动作己经产生,系统应该在此时执行按键功能,或将按键编码 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 下来,待键弹起时再执行其功能;4、释放抖动阶段:许多时候编程人员并不在此时消抖延时,但最好也执行一次消抖延时,以防止误操作;5、有效释放阶段:若设计要求在按键抬起时才执行功能,则应当在此时进行按键功能的处理。本设计中采用对按键的抖动采用软件延时消抖处理。系统的键盘设计电路图如下:图4-9系统的键盘电路设计图密码锁的按键主要包括0—9、开锁、上锁、修改密码等,通过按键的操作完成信息的交换。行列式键盘的工作过程将在下一章中详细介绍。4.4报警及指示电路图4-10报警及提示电路电路图蜂鸣器报警电路如图4-10(左)。报警电路会在连续三次输入错误密码时发出报警提示,这部分通过驱动蜂鸣器发声实现,当其接通5V的电压会发出蜂鸣叫声。用NPN型三极管驱动蜂鸣器,三极管的基极接单片机的P0.3口,当其输出高电平时蜂鸣器发声。这里,单片机P0.3口需要上拉。LED指示电路和蜂鸣器报警类似,同样是在系统工作过程中,起到提示和警示的作用。图4-10(右)为其电路图,这里直接用单片机的P0.1口驱动发光二极管。当P0.1口输出高电平时,二极管点亮,发光,当P0.1口输出低电平时,发光二极管熄灭。同样P0.1口需要上拉电阻上拉。4.5上锁、开锁控制电路图4-11系统的开锁、上锁控制电路密码锁的开锁、上锁控制电路如上图所示,系统的开锁、上锁通过继电器完成,继电器通过单片机的I/O 端口控制,当P0.2口输出高电平时,在上拉电阻的上拉作用下,继电器的线圈带电吸合,接点状态发生变化,常开接点1、3闭合;常闭接点1、2打开。通过继电器输出接点的通断状态变化就可以控制密码锁的上锁和开锁。完成对其上锁和开锁的控制。 第5章系统的软件设计5.1系统的总体软件流程本设计采用汇编语言编程。系统在上电复位后,程序开始运行,经过初始化,程序等待键盘的开锁密码输入,此时程序循环对键盘进行扫描。通过键盘电路的0到9这十个数字键输入密码锁的密码,密码输入满六位后,系统将自动判断输入的密码是否与原存储密码一致,若一致说明密码正确,系统将通过开锁控制电路执行开锁动作。若有任何不一致说明密码不正确,系统将等待重新输入密码并再判断密码的正确与否,若三次输入密码错误,系统将同通过数码管显示错误信息,发出声光报警,并锁定键盘输入。此时,系统只有通过硬件复位或者重新上电,才能重新开始工作。系统正确输入密码开锁的状态下,软件将关注上锁和修改密码两个按键的状态。此时,可以通过上锁键使系统重新上锁,软件将自动回到等待密码输入开锁的状态,也可以通过密码修改键执行修改密码的操作,修改密码键按下后,首先等待输入原密码并判断正确与否,原密码正确才输入新密码,并且修改密码需要再次输入新密码,软件将两次输入的新密码是否一致输入一致,若一致修改密码成功,程序将修改后的新密码保存在原密码的存储地址上。完成密码的修改。在密码修改过程中,出现什么输入错误,系统将自动回到等待密码输入开锁的状态。系统的软件流程图如下图所示。图5-1系统的总体软件流程5.2密码锁的程序设计系统程序源代码见本文附录二,这里介绍主要功能模块程序的设计。5.2.1密码比较子程序在输入密码开锁和修改密码输入原密码和两次输入新密码的过程中都用到了密码比较子程序,这段程序主要完成比较R0,R1所分别指向的连续六个地址单元是否相等,若全部相同,标志位MM_FLAG置1,否则请0。;******************************密码比较子程序***************************;比较R0,R1所分别指向的连续六个地址单元是否相等,若全部相同,标志位MM_FLAG置1;************************************************************************MMBJ:MOVR4,#6BJNEXT:MOVA,@R0MOV80H,@R1CJNEA,80H,BUDENG;比较是否一致DJNZR4,BJNEXT;是否比较六位完成SETBMMFLAG;置相同标志位AJMPFANHUIBUDENG:CLRMMFLAG;不等,清标志位FANHUI:RET;*********************************************************************5.2.2键盘扫描子程序本系统使用4×4矩阵键盘当没有键按下时,行线和列线之间是不相连的,若第N行与第M列的键被按下,那么第N行与第M列的线就被接通。根据上述原理,本系统的键盘扫描方法是利用P2口的低四位作为行扫描线,P2口的高四位作为列回扫线。参考图4-9,具体实施方法为:先使P2.0口输出低电平,P2口其他口输出高电平,然后对P2.4、P2.5、P2.6、P2.7四个口分别作判断。若此四口都为高电平,则没有键按下;若有键按下,P2.4、P2.5、P2.6、P2.7四个口必定有一个口输入为低电平,再判断P2.4、P2.5、P2.6、P2.7哪个口为低电平则可判断按键在哪列上。如P2.4、P2.5、P2.6、P2.7没有低电平,再使P2.1为低电平,其他口为高电平,依次扫描下去,找到按键所在的行,再判断P2口的高四位哪一位为低,便可知道键在哪一列上。键盘扫描子程序如下:;******************************键盘扫描子程序****************************;对键盘进行扫描,键值存于A;***************************第一行按键检测******************************JPSM:MOVP2,7FH;第一行行线送0JBP2.3,NEXT1;判断第一列列线是否为0,若不是0表示按键未按下,跳转NEXT1,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#1;表示"1"键按下,存键值AJMPSAOMIAOEND;结束本周期扫描NEXT1:MOVP2,7FH;第一行行线送0JBP2.2,NEXT2;判断第二列列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#2;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT2:MOVP2,7FH;第一行行线送0JBP2.1,NEXT3;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#3;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT3:MOVP2,7FH;第一行行线送0JBP2.0,NEXT4;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#4;存键值AJMPSAOMIAOEND;结束本周期扫描;***************************第二行按键检测******************************NEXT4:MOVP2,0BFH;第二行行线送0JBP2.3,NEXT5;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#5;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT5:MOVP2,0BFH;行线送0JBP2.2,NEXT6;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#6;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT6:MOVP2,0BFH;行线送0JBP2.1,NEXT7;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#7;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT7:MOVP2,0BFH;行线送0JBP2.0,NEXT8;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#8;存键值AJMPSAOMIAOEND;结束本周期扫描;************************第三行按键检测********************************NEXT8:MOVP2,0DFH;第三行行线送0JBP2.3,NEXT9;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#9;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT9:MOVP2,0DFH;行线送0JBP2.2,NEXT10;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#10;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT10:MOVP2,0DFH;行线送0JBP2.1,NEXT11;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#11;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT11:MOVP2,0DFH;行线送0JBP2.0,NEXT12;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#12;存键值AJMPSAOMIAOEND;结束本周期扫描;***************************第四行按键检测****************************NEXT12:MOVP2,0EFH;第四行行线送0JBP2.3,NEXT13;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#13;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT13:MOVP2,0EFH;行线送0JBP2.2,NEXT14;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#14;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT14:MOVP2,0EFH;行线送0JBP2.1,NEXT15;判断列线是否为0,若不是0表示按键未按下,继续下一按键扫描LCALLDELAY;按键延时消抖MOVA,#15;存键值AJMPSAOMIAOEND;结束本周期扫描NEXT15:MOVP2,0EFH;行线送0JBP2.0,SAOMIAOEND;判断列线是否为0,若不是0表示按键未按下,结束扫描LCALLDELAY;按键延时消抖MOVA,#16;存键值SAOMIAOEND:RET;******************************************************************************5.2.3数码管显示部分驱动程序本系统使用共阴极数码管显示。选码由P3口输出高电平有效,选位由P1口输出低电平有效。显示方式分别有静态显示与动态显示两种。本设计采用动态显示方式,由于8个显示器的段码同名端是连接在一起的,如果选码的管脚(本系统中为P1)都为0,那么8个显示器则显示同一字符。要使各个数码管出现不同字符必须采用“分时动态扫描”的方法显示。即每次点亮一个LED显示器,延时一段时间再点亮下一个LED显示器……周而复始,8个LED显示器轮流动态扫描。利用人视觉余辉的暂留效应,看起来好像几个显示器上“同时”显示不同的字符。这里采用中断方式扫描,利用定时器T1定时时间50ms,每过50ms对显示扫描一遍,也就是每秒20次。显示部分程序写到中断服务程序中。中断服务程序如下:;**************************显示中断服务程序***********************要显示的数据存于60H-67H中,定时时间50ms;*****************************************************************XS_T1ER:PUSHACCCLRTF1MOVA,R3JZXIANSHIMOVR0,67HNEXTLED:MOV@R0,#0FDH;显示输入对应的"-"DECR0DJNZR3,NEXTLEDXIANSHI:MOVP1,67H;段码送P1口SETBP3.7;选中位LCALLDELAY1MOVP1,66H;段码送P1口SETBP3.6;选中位LCALLDELAY1MOVP1,65H;段码送P1口SETBP3.5;选中位LCALLDELAY1MOVP1,64H;段码送P1口SETBP3.4;选中位LCALLDELAY1MOVP1,63H;段码送P1口SETBP3.3;选中位LCALLDELAY1MOVP1,62H;段码送P1口SETBP3.2;选中位LCALLDELAY1MOVP1,61H;段码送P1口SETBP3.1;选中位LCALLDELAY1MOVP1,60H;段码送P1口SETBP3.0;选中位LCALLDELAY1MOVTMOD,#10H;T1工作方式设置MOVTH1,#3CH;T1置初值,定时周期50ms,每隔50ms扫描一次LED显示MOVTL1,#0B0HSETBTR1;启动T1POPACCRETI 第6章结束与展望通过这次毕业设计,让我复习了很多学过的知识,同时锻炼了自己的动手能力和查阅资料。尤其是解决在实际中解决排查问题的能力。1、 通过这次的设计,我熟悉了使用Protel的技巧,学会了制作电路板的一些技巧,并且熟悉了如何使用电子元器件。2、 在设计中,我熟悉了使用汇编语言对单片机进行编写程序,熟悉了使用软件对程序进行调试,并且加深了对单片机的编程技巧。3、 在做这个设计的过程中,我遇到了不少的问题。这锻炼了我筛选、查阅资料,并将理论结合到自己的设计中的能力。一步一步的排除故障原因,找到故障的原因并解决故障。4、 这次的设计使我对模拟电子、数字电子知识加深了了解,在设计的过程中,出现了很多这些方面的问题,通过对以往知识的复习巩固,将问题解决。这次的设计有很多的不足,和市场上的产品有一定的差距,例如没有使用液晶显示屏,还可以做得更好,还请老师同学们提出宝贵意见! 致谢通过本次毕业设计,我在指导老师刘志远老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。衷心感谢各位老师的指导和帮助。在未来的工作和学习中,我将以更好的成绩来回报各位领导和老师。 参考文献[1]《电子技术基础.数字部分(第四版)》高等教育出版社2003年3月  主编:康华光  [2]ATMLECorporation,8-BitMicrocontrollerAT89C51DATESHEET.0265F-A–12/97[3]路勇,高文焕主编.电子电路实验及仿真.清华大学出版社,1999[4]康华光编.电子技术基础.高等教育出版社,2000[5]冯建华,单片机应用系统设计与产品开发,人民邮电出版社,2004[6]杨文龙编,单片机原理及应用.西安电子科技大学出版社,2000[7]马忠梅等,单片机的C语言应用程序设计.北京航空航天大学出版社,1997[8]《74系列芯片 手册 华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载 》重庆大学出版社1999年9月主编:李海  [9]DallasSemiconducotr,ProgrammableResolution1-WireDigitalThermometerDS18B20DATESHEET.[10]阉石,数字电子技术基础.北京:高等教育出版社,2004[11]何立民,单片机高级教程-应用与设计.北京:北京航空航天大学出版社,2000 附录一:系统总体电路设计附录二系统程序源代码LEDLAMPEQUP0.1;指示灯BAOJINGEQUP0.3;报警信号输出OPENEQUP0.2;开锁输出MMFLAGEQU20H.0;密码正确标志位;***********************************************************************ORG0000HAJMPSTARTORG001BHLJMPXS_T1ER;跳转T1中断服务程序;******************************************************************************;密码存储于40H-45H,输入的密码存于50H-55H,修改密码时第二次新密码输入存于70H-75H;显示部分缓冲区60H-67H;******************************************************************************START:MOVP2,0FFH;初始化P2口CLRLEDLAMP;关闭发光二极管CLRBAOJING;关闭蜂鸣器MOV40H,#00H;密码初始为000000MOV41H,#00HMOV42H,#00HMOV43H,#00HMOV44H,#00HMOV45H,#00HMOVR3,#0;显示部分显示"-"的个数CLRMMFLAG;清密码比较标志位MOVTMOD,#10H;T1工作方式设置MOVTH1,#3CH;T1置初值,定时周期50ms,每隔50ms扫描一次LED显示MOVTL1,#0B0HSETBEA;开总中断SETBET1;开T1中断SETBTR1;启动T1INPUT:MOVR4,#3;密码输入错误次数计数初值MMINPUT:MOVR0,#50H;密码存储首地址送R0MMINPUT1:LCALLANJIANSHURUMOVR3,#00H;清显示的"-"MOVA,R0CJNEA,#56H,MMINPUT1;R0值加1后没有指到56H,密码输入未满6位,继续MOVR0,#50H;输入密码的首地址给R0MOVR1,#40H;密码的首地址存R1LCALLMMBJ;调用密码比较子程序,看输入的密码是否正确JBMMFLAG,KAISUO;如果标志位为1,表示密码正确,跳转开锁程序CLRMMFLAG;清标志位DJNZR4,MMINPUT;密码输入错误次数没有到3次,继续MOV67H,#61H;显示错误信息SETBLEDLAMP;发光二极管点亮SETBBAOJING;蜂鸣器报警HERE:AJMPHERE;程序在此处停止运行,不再扫描键盘输入,直到硬件复位KAISUO:CLRMMFLAG;清标志位LCALLJPSM;调用键盘扫描程序CJNEA,#11,KAISUO;等待开锁键SETBOPEN;开锁PANCLOSE:LCALLJPSM;调用键盘扫描程序CJNEA,#12,PANXGMM;判断上锁键,CLROPEN;上锁AJMPINPUT;跳转等待开锁状态PANXGMM:LCALLJPSM;调用键盘扫描程序CJNEA,#13,PANCLOSE;判断密码修改键MOVR0,#50H;原密码存储首地址送R0LCALLANJIANSHURU MOVR3,#00H;清显示的"-"MOVA,R0CJNEA,#56H,MMINPUT1;R0值加1后没有指到56H,密码输入未满6位,继续MOVR0,#50H;输仍密码的首地址给R0MOVR1,#40H;密码的首地址存R1LCALLMMBJ;调用密码比较子程序,判断输入原密码是否正确JBMMFLAG,INPUTNEW;如果标志位为1,表示密码正确,跳转准备输入新密码MOV67H,#61H;显示错误信息SETBLEDLAMP;发光二极管点亮SETBBAOJING;蜂鸣器报警AJMPINPUT;修改密码失败,跳转回等待开锁状态INPUTNEW:MOVR0,#50H;第一次输入的新密码存储首地址送R0LCALLANJIANSHURU MOVR3,#00H;清显示的"-"MOVA,R0CJNEA,#56H,MMINPUT1;R0值加1后没有指到56H,密码输入未满6位,继续MOVR0,#70H;第二次输入的新密码存储首地址送R0LCALLANJIANSHURU MOVR3,#00H;清显示的"-"MOVA,R0CJNEA,#76H,MMINPUT1;R0值加1后没有指到76H,
本文档为【基于51单片机电子锁设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
拍拍£宝贝
有多年的行政人事工作经验,现负责公司员工招聘,筛选,面试,培训等管理
格式:doc
大小:1MB
软件:Word
页数:41
分类:企业经营
上传时间:2018-05-30
浏览量:11