下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 基于STC89C52单片机的电子密码锁毕业设计_附原理图_pcb图_源程序_仿真图

基于STC89C52单片机的电子密码锁毕业设计_附原理图_pcb图_源程序_仿真图.doc

基于STC89C52单片机的电子密码锁毕业设计_附原理图_pc…

请安静的离开我_
2018-08-09 0人阅读 举报 0 0 暂无简介

简介:本文档为《基于STC89C52单片机的电子密码锁毕业设计_附原理图_pcb图_源程序_仿真图doc》,可适用于战略管理领域

基于STCC单片机的电子密码锁毕业设计附原理图pcb图源程序仿真图基于STCC单片机的电子密码锁学生姓名:xx学生学号:xxxxx院(系):电气信息工程学院年级专业:级电子信息工程班指导教师:陶文英二〇一三年六月摘要随着人们生活水平的提高如何实现家庭防盗这一问题也变的尤其的突出传统的机械锁由于其构造的简单被撬的事情屡见不鲜电子密码锁具有安全性能高成本低功耗低操作简单等优点使其作为防盗卫士的角色越来越重要。从经济实用角度出发采用系列单片机设计一款可更改密码LCD显示,具有报警功能该电子密码锁体积小易于开发成本较低安全性高能将其存储的现场历史数据及时上报给上位机系统实现网络实时监控方便管理人员及时分析和处理数据。其性能和安全性已大大超过了机械锁特点有保密性好,编码量多,远远大于弹子锁随机开锁成功率几乎为零密码可变用户可以经常更改密码防止密码被盗同时也可以避免因人员的更替而使锁的密级下降误码输入保护。当输入密码多次错误时报警系统自动启动电子密码锁操作简单易行受到广大用户的亲睐。关键词单片机,密码锁,更改密码,LCD目录摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„错误~未定义书签。绪论电子密码锁简介„„„„„„„„„„„„„„„„„„„„„„„„„„„„„电子密码锁的发展趋势„„„„„„„„„„„„„„„„„„„„„„„„„设计方案„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„主要元器件„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„主控芯片STCC„„„„„„„„„„„„„„„„„„„„„„„„„„„晶体振荡器„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„LCD显示密码模块的设计„„„„„„„„„„„„„„„„„„„„„„„„LCD简介„„„„„„„„„„„„„„„„„„„„„„„„„„„LCD液晶显示模块与单片机连接电路„„„„„„„„„„„„„„„硬件系统设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„设计原理„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„电源输入电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„矩阵键盘„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„复位电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„晶振电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„报警电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„显示电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„开锁电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„电路总体构成„„„„„„„„„„„„„„„„„„„„„„„„„„„„„软件程序设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„主程序流程介绍„„„„„„„„„„„„„„„„„„„„„„„„„„„„键盘模块流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„显示模块流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„修改密码流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„开锁和报警模块流程图„„„„„„„„„„„„„„„„„„„„„„„„电子密码锁的系统调试及仿真„„„„„„„„„„„„„„„„„„„„„硬件电路调试及结果分析„„„„„„„„„„„„„„„„„„„„„„„„软件调试及功能分析„„„„„„„„„„„„„„„„„„„„„„„„„„调试过程„„„„„„„„„„„„„„„„„„„„„„„„„„„„„仿真结果分„„„„„„„„„„„„„„„„„„„„„„„„„„„„仿真全图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„结论„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„附录:„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„绪论电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作从而控制机械开关的闭合完成开锁、闭锁任务的电子产品。它的种类很多有简易的电路产品也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:)保密性好编码量多远远大于弹子锁。随机开锁成功率几乎为零。)密码可变用户可以随时更改密码防止密码被盗同时也可以避免因人员的更替而使锁的密级下降。)误码输入保护当输入密码多次错误时报警系统自动启动。)无活动零件不会磨损寿命长。)使用灵活性好不像机械锁必须佩带钥匙才能开锁。)电子密码锁操作简单易行一学即会。电子密码锁的发展趋势日常生活和工作中住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁其钥匙容易丢失保险箱主要用机械密码锁其结构较为复杂制造精度要求高成本高且易出现故障人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁为满足人们对锁的使用要求增加其安全性用密码代替钥匙的密码锁应运而生。由于电子器件所限以前开发的电子密码锁其种类不多保密性差最基本的就是只依靠最简单的模拟电子开关来实现的制作简单但很不安全在后为多是基于EDA来实现的其电路结构复杂电子元件繁多也有使用早先的引角的系列单片机来实现的但密码简单易破解。随着电子元件的进一步发展电子密码锁也出现了很多的种类功能日益强大使用更加方便安全保密性更强由以前的单密码输入发展到现在的密码加感应元件实现了真真的电子加密用户只有密码或电子钥匙中的一样是打不开锁的随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效且不能实现远程控制只能适用于保密要求高且供个人使用的箱、柜、房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息组合使用这些信息能够使电子防盗锁获得高度的保密性如防范森严的金库需要使用复合信息密码的电子防盗锁组合使用信息也能够使电子防盗锁获得无穷扩展的可能使产品多样化对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。设计方案采用以单片机为核心的控制方案由于单片机种类繁多各种型号都有其一定的应用环境因此在选用时要多加比较合理选择以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、IO口、定时计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机STCC作为本设计的核心元件利用单片机灵活的编程设计和丰富的IO端口及其控制的准确性实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制外接LCD液晶显示屏用于显示作用。当用户需要开锁时先按键盘,输入密码。密码输完后按下确认键如果密码开锁键之后按键盘的数字键输入正确则开锁不正确则重新输入密码当三次密码错误则发出报警当用户需要修改密码时先按下键盘设置键后输入原来的密码只有当输入的原密码正确开锁后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储密码修改成功。主要元器件主控芯片STCC)STCC单片机的主要特性如下:Stcc是一种带K字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammableandErasableReadOnlyMemory)的低电压高性能CMOS位微处理器俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准的MCS指令集和输出管脚相兼容。由于将多功能位CPU和闪烁存储器组合在单个芯片中stc的stcc是一种高效微控制器为很多嵌入式控制系统提供了一种灵活性高且价廉的方案stcc芯片引脚图如图所示。图stcc芯片引脚图主要特性:与MCS兼容K字节可编程闪烁存储器寿命:写擦循环数据保留时间:年全静态工作:HzHz三级程序存储器锁定*位内部RAM可编程IO线两个位定时器计数器个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路)STCCRC引脚功能说明:、主电源引脚V和VSSSSSTCC芯片引脚图V(脚)接V电压SSV(脚)接地。SS、外接晶体引脚XTAL和XTALXTAL(脚)接外部晶体的一个引脚。在单片机内部它是一个反相放大器的输入端这个放大器构成了片内振荡器。当采用外部振荡器时对HMOS单片机此引脚应接地对SHMOS单片机此引脚作为驱动端。XTAL(脚)接外晶体的另一端。在单片机内部接至上述振荡器的反相放大器的输出端。采用外部振荡器时对HMOS单片机该引脚接外部振荡器的信号即把外部振荡器的信号直接接到内部时钟发生器的输入端对XHMOS此引脚应悬浮。、控制或与其它电源复用引脚RSTVPD、ALEPROG、PSEN和EAVPPRSTVPD(脚)当振荡器运行时在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约k的下拉电阻与V引脚之间连接一个约μF的电容以保证可靠地复位。SSV掉电期间此引脚可接上备用电源以保证内部RAM的数据不丢失。当SSV主电源下掉到低于规定的电平而VPD在其规定的电压范围(V)内SSVPD就向内部RAM提供备用电源。ALEPROG(脚):当访问外部存贮器时ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器ALE端仍以不变的频率周期性地出现正脉冲信号此频率为振荡器频率的。因此它可用作对外输出的时钟或用于定时目的。然而要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)个LS型的TTL输入电路。对于EPROM单片机(如)在EPROM编程期间此引脚用于输入编程脉冲(PROG)。PSEN(脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间每个机器周期两次PSEN有效。但在此期间每当访问外部数据存储器时这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)个LS型的TTL输入。EAV引脚):当EA端保持高电平时访问内部程序存储器但在PS(程PP(序计数器)值超过FFFH(对S)或FFFH(对)时将自动转向执行外部程序存储器内的程序。当EA保持低电平时则只访问外部程序存储器不管是否有内部程序存储器。对于常用的来说无内部程序存储器所以EA脚须常接地这样才能只选择外部程序存储器。对于EPROM型的单片机(如)在EPROM编程期间此引脚也用于施加V的编程电源(V)。PP(控制或与其它电源复用引脚RSTVpdALEPROGPSEN和EAVpp。RSTVpd当振荡器运行时。在此引脚上出现两个机器同期的高电平(由低到高跳变)将使单片机复位。在VSS掉电期间此引脚可接上备用电源由Vpd向内部RAM提供备用电源以保持内部RAM中的数据。ALEPROG正常操作时为ALE功能(允许地址钱存)提供把地址的低字节锁存到外部锁存器。ALE引脚以不变的频率(振荡周期的)周期性地发出正脉冲信号。因此它可用作对外输出的时钟或用于定时目的。但要注意每当访问外部数据存储器时将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)八个LSTTL电路。对于EPROM型单片机在EPROM编程期间此引脚接收编程脉冲(PROG功能)。PSEN外部程序存储器读选通信号输出端。在从外部程序存储器取指令(或数据)期间PSEN在每个机器周期内两次有效。PSEN同样可以驱动八个LSTTL输入。EA,VppEA为内部程序存储器和外部程序存储器选择端。当EA为高电平时访问内部程序存储器(PS值小于K)。当EA为低电平时则访问外部程序存储器。对于EPROM型单片机在EPROM编程期间此引脚上加VEPROM编程电源(Vpp)。、输入输出(IO)引脚P、P、P、P(共根)P口(脚至脚):是双向位三态IO口在外接存储器时与地址总线的低位及数据总线复用能以吸收电流的方式驱动个LS型的TTL负载。P口(脚至脚):是准双向位IO口。由于这种接口输出没有高阻状态输入也不能锁存故不是真正的双向IO口。P口能驱动(吸收或输出电流)个LS型的TTL负载。对、P引脚的第二功能为T定时计数器的外部输入P引脚的第二功能为TEX捕捉、重装触发即T外部控制端。对EPROM编程和程序验证时它接收低位地址。P口(脚至脚):是准双向位IO口。在访问外部存储器时它可以作为扩展电路高位地址总线送出高位地址。在对EPROM编程和程序验证期间它接收高位地址。P可以驱动(吸收或输出电流)个LS型的TTL负载。P口(脚至脚):是准双向位IO口在MSS中这个引脚还用于专门功能是复用双功能口。P能驱动(吸收或输出电流)个LS型的TTL负载。作为第一功能使用时就作为普通IO口用功能和操作方法与P口相同。作为第二功能使用时各引脚的定义如表所示。值得强调的是P口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。如表。表P口管脚备选功能PRXD(串行输入口)PTXD(串行输出口)PINT(外部中断)PINT(外部中断)PT(记时器外部输入)PT(记时器外部输入)PWR(外部数据存储器写选通)PRD(外部数据存储器读选通)晶体振荡器晶体振荡器简称晶振其作用在于产生原始的时钟频率这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例要实现对模拟信号kHz或kHz的采样频率发生器就必须提供一个kHz或kHz的时钟频率。如果需要对这两种音频同时支持的话声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本通常都采用SCR将输出的采样频率固定在kHz但是SRC会对音质带来损害而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。石英晶体振荡器是一种高精度和高稳定度的振荡器石英晶体振荡器也称石英晶体谐振器它用来稳定频率和选择频率是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片它可以是正方形、矩形或圆形等)在它的两个对应面上涂敷银层作为电极在每个电极上各焊一根引线接到管脚上再加上封装外壳就构成了石英晶体谐振器简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装也有用玻璃壳、陶瓷或塑料封装的。只要在晶体振子板极上施加交变电压就会使晶片产生机械变形振动此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时就会发生压电谐振从而导致机械变形的振幅突然增大。时钟信号用来提供单片机片内的各种微操作的时间基准时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS单片机内部有一个用于构成振荡器的高增益反向放大器引脚XTAL和XTAL分别是此放大电器的输入端和输出端由于采用内部方式时电路简单所得的时钟信号比较稳定实际使用中常采用这种方式外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。外接晶体以及电容C和C构成并联谐振电路它们起稳定振荡频率、快速起振的作用其值为pF左右晶振频率选MHzLCD显示密码模块的设计显示模块主要由LCD显示屏组成他显示的是键盘输入的密码以及密码正确与错误的提示。当输入密码时出于安全性的考虑显示的密码是有*号代替为暗密。当输入六位密码后按下确认键系统会与存于ROM的密码对比若密码错误显示屏会显示Error若密码正确显示屏会显示Right。LCD简介)功能介绍液晶也叫字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个X或者X等点阵字符位组成每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用正因为如此所以他不能显示图形。LCD是指显示的内容为X,即可以显示两行每行个字符液晶模块(显示字符和数字)。)LCD采用标准的脚(无背光)或脚(带背光)接口各引脚接口说明如下表所示:表引脚功能说明编号符号引脚说明编号符号引脚说明VSS电源地D数据VDD电源正极D数据VL液晶显示偏压D数据RS数据命令选择D数据RW读写选择D数据E使能信号D数据D数据BLA背光源正极D数据BLK背光源负极其引脚图如下图所示:图LCD引脚图)LCD寄存器的选择表LCD寄存器的选择ERWRS功能说明写入命令寄存器写入数据寄存器读取忙碌标志及RAM地址读取RAM数据X不动作LCD液晶显示模块与单片机连接电路图LCD液晶显示模块与单片机连接电路硬件系统设计设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码后经过单片机对用户输入的密码与自己保存的密码进行对比从而判断密码是否正确然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。显示电路复位电路STC振荡电路C开锁电路单片键盘电路机报警电路图组成原理电源输入电路三端集成稳压器LM和LM是作为固定输出电压的典型应用。正常工作时输入、输出电压差为V。电容C为输入稳定电容其作用是减小纹波消振、抑制高频和脉冲干扰它一般为uF。电容C为输出稳定电容其作用是改善负载的瞬态响应它一般为uF。使用三端稳压器时要根据输出电流的大小选择加散热器否则会由于过热而无法工作到额定电流。图电源输入电路矩阵键盘由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘它由行线和列线组成也称行列式键盘按键位于行列的交叉点上密码锁的密码由键盘输入完成与独立式按键键盘相比要节省很多IO口。本设计中使用的这个*键盘不但能完成密码的输入还能作特别功能键使用比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法。图矩阵键盘复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态并从这个状态开始工作例如复位后PC,H使单片机从第个单元取指令。无论是在单片机刚开始接上电源时还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间)P口为高组态P,P口输出高电平外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键在接通电源瞬间电容C上的电压很小复位下拉电阻上的电压接近电源电压即RST为高电平在电容充电的过程中RST端电压逐渐下降当RST端的电压小于某一数值后CPU脱离复位状态由于电容C足够大可以保证RST高电平有效时间大于个振荡周期CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C通过R放电。当电容C放电结束后RST端的电位由R与R分压比决定。由于R<<R因此RST为高电平CPU处于复位状态松手后电容C充电RST端电位下降CPU脱离复位状态。R的作用在于限制按键按下瞬间电容C的放电电流避免产生。火花以保护按键触电图复位电路晶振电路STCC引脚XTAL和XTAL与晶体振荡器及电容C、C按下图所示方式连接。晶振、电容C,C及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器振荡信号频率与晶振频率及电容C、C的容量有关但主要由晶振频率决定范围在,MHz之间电容C、C取值范围在pF左右。根据实际情况本设计中采用MHZ做系统的外部晶振。电容取值为pF。图晶振电路报警电路报警部分由陶瓷压电发声装置及外围电路组成加电后不发声当有键按下时“叮”声每按一下发声一次密码正确时不发声直接开锁当密码输入错误时单片机的P引脚为低电平三极管T导喇叭发出噪鸣声报警。图报警电路显示电路LCD液晶显示屏显示。图显示电路开锁电路通过单片机开锁执行机构发光二极管D发光以替代达到开锁的目的。图开锁电路开锁原理:返回LNE密码正单片D确,机发Y微控光制器P低电STC平C开锁原理图电路总体构成在确定了选用什么型号的单片机后就要确定在外围电路其外围电路包括电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成根据实际情况键盘输入部分选择*矩阵键盘显示部分选择LCD液晶显示屏来完成。本次设计的各大模块在上述章节中已仔细介绍了将各大模块融合在一起后组成电子密码锁硬件电路键盘输入模块和LCD液晶显示屏显示模块是最主要的两大模块键盘主要是完成密码的输入、修改密码、消除密码等等任务。而显示模块则是主要完成输入密码的显示以及密码输入正确或者错误的提示。而剩余的就是报警模块、开锁模块以及单片机的最小系统。开锁顾名思义就是密码输入正确后打开大门而报警主要是为安全着想当有人非法入侵时便于抓住犯人。单片机最小系统则是单片机正常运行的保障。总的硬件电路如图。图总电路图软件程序设计电子密码锁的软件设计是整个电子密码锁可靠安全运行的关键密码锁软件程序分为主程序、延时程序、LCD液晶显示屏显示程序、修改密码程序、扫描键盘输入程序、报警程序。密码通过矩阵键盘输入并且在LCD液晶显示屏上显示如果输入密码正确则可以直接开锁。如果不正确并且次以上输入不正确则启动报警系统触发蜂鸣器发声。如果要修改密码则需要在输入基础密码判别正确后输入修改后的密码通过系统确认后方可修改密码。为了完成上述任务在进行软件设计时通常把整个过程分成若干个部分每一部分叫做一个模块。而本次设计分为四大模块分别是键盘输入模块、LCD液晶显示屏显示模块、开锁和报警模块以及修改密码模块通过主程序来实现控制。主程序流程介绍主程序主要内容是各程序模块的调用并利用各模块进行电子密码锁功能的实现即是键盘输入密码并在LCD液晶显示屏显示密码当密码输入完成后单片机会将输入进的密码与原单片机内部所储存的密码进行对比如若密码正确则代表电磁吸合器的发光二极管会发光同时LCD液晶显示屏会显示出正确的密码如若密码错误会启动计数器计数当错误次数超过三次时报警系统会启动即是蜂鸣器会发出报警声以提醒保安。流程图如图所示。开始初始化输入密码NN次数加密码正确,次数>,YY报警程序Y开锁程序开锁,NY修改程序修改密码码,N返回图主程序流程键盘模块流程图键盘输入模块主要包含键盘的扫描、延时去抖、找到键值以及返回键值。键盘扫描时循环的程序编写是会使其进入是循环这样可以检验出是否有按键按下如果无按键按下就会进入等待有按键按下的状态如果有按键按下的话就进入延时去抖的步骤这样可以肯定的确定扫描到的按键是否被按下。经过去抖之后就是确定按键的位置即是第几行和第几列找到按键后就是确定键值并返回按键值每一次扫描到有键按下后最后都要有释放闭合按键的步骤这是为了避免影响下一次键盘的扫描和按键值的读取。流程图如图所示键盘扫描N有键闭合Y延时去抖找到闭合键计算键值闭合键释放返回键值图键盘模块流程按键的消抖子程序所示:if(presson!=XF)按键消抖(时间自定){delay()presson=KEYIO}确定键值的子程序如下所示:switch(row){casexe:row=breakcasexd:row=breakcasexb:row=breakcasex:row=break}switch(col){casex:col=breakcasexb:col=breakcasexd:col=breakcasexe:col=break}recieve=keyvaluerowcol}显示模块流程图LCD显示模块的软件设计主要包含开始、初始化LCD、清除LCD、写LCD四个过程。其中写包含写数据和写字符。写数据的部分程序:写数(位数据)voidprintfdata(ucharrow,ucharcol,ucharcount,uintdat){ucharsh,sh,sh,sh,shsh=datsh=datsh=datsh=datsh=datwriteadr(xc)switch(row){case:row=xbreakcase:row=xcbreakdefault:break}writeadr(rowcol)delay()if(count>=)writedata(sh)if(count>=)writedata(sh)if(count>=)writedata(sh)if(count>=)writedata(sh)if(count>=)writedata(sh)写字符的小程序为:写一段字符voidprintfchar(ucharrow,ucharcol,ucharInbuffer){uchariwriteadr(xc)switch(row){case:row=xbreak,流程图如下:开始初始化LCD清除LCD写LCD结束图显示模块流程图修改密码流程图修改密码模块主要是在输入密码正确之后按下键即是修改密码键就能进入修改密码界面其流程分为四个步骤分别为按下键并启动定时、输入修改的密码、按下确认键键、LCD的显示。修改密码的部分程序如下:改密码voidchword(void){unsignedcharrecieve=xff,b,j=LCDCLR()printfchar(,,"newpasswordd")while(recieve!=){recieve=keypad()delay()if(recieve<=recieve>=){bj=recieveprintfdata(,j,,recieve)j}elseif(recieve==){if(j!=){aj=''printfchar(,j,"d")j}}流程图如图所示:按下键启动定时输入密码存入缓冲按下确认键比较密码调用LED调用显示图修改密码流程图开锁和报警模块流程图开锁和报警模块主要任务是把从键盘输入到单片机的密码和本身保存在单片机中的密码进行对比如果正确就开锁如果错误的话就进行计数并显示在LCD液晶显示屏上当输入密码的错误次数达到次就进入报警模式启动蜂鸣器报警。其流程图如图所示。图报警流程图电子密码锁的系统调试及仿真硬件电路调试及结果分析硬件调试首先检查电路板焊接是否有误检查有是否出现虚焊、漏焊、线路短接、元器件引脚是否错误焊接等等问题然后检查电路中某些元器件是否起作用最后利用一些小程序测试LCD是否完好无损。检测单片机是否工作可通过观察示波器显示的波形是否衰减或者利用万用表测一下脚的电压应该有个V就说明起振了另外ALE如果有信号或者有电压也说明单片机工作了。我采用利用万用表侧、脚的电压其结果显示为V。检测电路有无虚焊可用万用表的二极管档来检测当把万用表的红黑两表笔接触在焊接线路的两端后万用表发出声音则说明没有虚焊。检查电路是否短路也是利用同一原理。软件调试及功能分析软件调试即是把已经写好的C语言程序载入到软件调试工具检查软件是否有设法错误再根据软件提示对本程序进行修改直到没有错误再生成单片机能运行的机器码再用开发板或其它单片机写入工具把机器码写入单片机进行实际的程序调试根据实际情况再对程序的不足加以修改直到满足设计要求。本设计采用Proteus和KEIL软件进行仿真、调试首先在在Proteus软件上进行硬件电路的描绘其次在KEIL软件编写电子密码锁的源程序源程序经过汇编后产生Hex文件最后将生成的目标文件添加到单片机中仿真调试。调试过程首先打开KEILC主程序新建工程新建文本框写入程序保存检查是否有语法错误经反复检查无误后汇编生成单片机可执行的HEX文件。然后用与开发板相匹配的写入软件把HEX文件写入单片机。图KEILc调试介面图程序写入界面仿真结果分析当系统通电进入初始化状态后LCD显示屏会显示Welcome结果如图所示。图系统初始化当进入输入密码阶段时依次按下按键上的数字键后LCD显示屏显示如图所示。图输入密码阶段仿真图当按下确定键键后显示屏上显示正确且二极管灯亮表示密码正确开门如图所示。图输入密码正确时仿真图按下确认键后二极管不亮且显示屏上显示Error表示密码输入错误门的锁不会打开。如图所示。图输入密码错误仿真图当需要修改密码时只需按下键即可进入到修改密码界面修改成功后显示success修改错误后显示屏会显示fail。图修改密码仿真图图修改失败仿真图仿真全图图仿真全图结论本次设计通过硬件电路设计、软件编程、硬件调试、软件调试以及系统调试完成了设计要求达到了设计目的。本次设计最终的结果如下:,电子密码锁通过键盘能成功进行输入密码,LCD液晶显示屏上能显示输入的密码,能判断输入的密码是否正确并且能显示判断结果,能在密码输入正确后开门,能在密码输入错误次数达到三次以上后进行报警,能在开门后通过一按键对原有密码进行更改,能用*代替显示输入的密码数字隐藏了密码这实现了密码保护。但是在实现上述功能时也存在许多不足。第一在密码输入正确时除了要使代表电磁吸合器的发光二极管发光以外还应该加上语音模块提示门开这样更人性化一些。第二密码输入错误次数小于三次时也应该采取措施提醒。第三密码修改部分本次设计实现的不是很好密码能进行修改但是只能修改第一个密码。第四本次设计的电子密码锁安全方面还可以提高进步。本设计中的报警系统只是一个简单的系统要应用于实际生活还需要进一步改进。电子锁是信息化时代发展的产物应时而生我相信随着科技的不断发展将来的电子锁一定更加完美更加人性化更加便宜更加安全。本次设计中还有待完善的地方还很多。首先修改密码可进一步完善实现有不管多少户住户和多少个密码都能修改密码。其次也是最重要的安全防问题报警途径很多有视屏监视和发出报警声提醒值班的保安等等。未来电子密码锁需要大面积占据市场首先必须要突破的就是安全问题如果解决了这个问题电子密码锁就能在锁的行业所向披靡。最后本次设计还可以精进的地方就是输入密码错误时的处理方法。在输入密码错误次数在三次以内时也应该采取措施。比如禁止输入三秒或者也用发声模块提醒只要发声频率不一致就可区分。参考文献余永权,汪明慧,黄英单片机在控制系统中的应用M北京:电子工业出版社周润景张丽敏王伟AltiumDesigner原理图与PCB设计M北京:电子工业出版社蒋同泽现代移动通信系统M北京:电子工业出版社,张毅刚单片机原理及应用M,北京:高等教育出版社,张云基于GSM的短消息业务协议分析J北京:电子工业出版社刘法治常用电子元器件及典型芯片应用技术M,北京:机械工业出版社,张迎单片微型计算机原理、应用及接口技术M国防工业出版社石东海单片机数据通信技术从入门到精通M西安电子科技大学出版社附录:PCB布局:********************************************************************************功能键SS数字键S更改密码S更改密码完毕后确认S重试密码、重新设定S关闭密码锁初始密码:密码位数:位注意:掉电后所设密码会丢失重新上点时密码恢复为原始的与P相连的位发光LED点亮代表锁被打开熄灭代表锁被锁上程序功能:、开锁:下载程序后直接按六次S(即代表数字)位LED亮锁被打开输入密码时六位数码管依次显示小横杠。、更改密码:只有当开锁(LED亮)后该功能方可使用。首先按下更改密码键S然后设置相应密码此时六位数码管会显示设置密码对应的数字。最后设置完六位后按下S确认密码更改此后新密码即生效。、重试密码:当输入密码时密码输错后按下键S可重新输入六位密码。当设置密码时设置中途想更改密码也可按下此键重新设置。、关闭密码锁:按下S即可将打开的密码锁关闭。推荐初级演示步骤:输入原始密码按下更改密码按键S按到设置密码按S确认密码更改按S关闭密码锁输入新的密码打开密码锁*******************************************************************************#include<regh>#defineucharunsignedchar#defineuintunsignedintucharold,old,old,old,old,old原始密码ucharnew,new,new,new,new,new每次MCU采集到的密码输入uchara=,b=,c=,d=,e=,f=送入数码管显示的变量ucharwei,key,tempbitallow,genggai,ok,wanbi,retry,close各个状态位sbitdula=P^sbitwela=P^sbitbeep=P^unsignedcharcodetable={xf,x,xb,xf,x,xd,xd,x,xf,xf,x,xc,x,xe,x,x,x,x}voiddelay(unsignedchari){ucharj,kfor(j=ij>j)for(k=k>k)}voiddisplay(uchara,ucharb,ucharc,uchard,uchare,ucharf){dula=P=tableadula=dula=wela=P=xfewela=wela=delay()P=tablebdula=dula=P=xfdwela=wela=delay()P=tablecdula=dula=P=xfbwela=wela=delay()P=tableddula=dula=P=xfwela=wela=delay()P=tableedula=dula=P=xefwela=wela=delay()P=tablefdula=dula=P=xdfwela=wela=delay()}voidkeyscan(){{P=xfetemp=Ptemp=tempxfif(temp!=xf){delay()if(temp!=xf){temp=Pswitch(temp){casexee:key=weibreakcasexde:key=weibreakcasexbe:key=weibreakcasexe:key=weibreak}while(temp!=xf){temp=Ptemp=tempxfbeep=}beep=}}P=xfdtemp=Ptemp=tempxfif(temp!=xf){delay()if(temp!=xf){temp=Pswitch(temp){casexed:key=weibreakcasexdd:key=weibreakcasexbd:key=weibreakcasexd:key=weibreak}while(temp!=xf){temp=Ptemp=tempxfbeep=}beep=}}P=xfbtemp=Ptemp=tempxfif(temp!=xf){delay()if(temp!=xf){temp=Pswitch(temp){casexeb:key=weibreakcasexdb:key=weibreakcasexbb:genggai=wei=breakcasexb:if(allow)ok=break}while(temp!=xf){temp=Ptemp=tempxfbeep=}beep=}}P=xftemp=Ptemp=tempxfif(temp!=xf){delay()if(temp!=xf){temp=Pswitch(temp){casexe:retry=breakcasexd:close=break}while(temp!=xf){temp=Ptemp=tempxfbeep=}beep=}}}}voidshumima()对按键采集来的数据进行分配{if(!wanbi){switch(wei){case:new=keyif(!allow)a=elsea=keybreakcase:new=keyif(a==)b=elseb=keybreakcase:new=keyif(a==)c=elsec=keybreakcase:new=keyif(a==)d=elsed=keybreakcase:new=keyif(a==)e=elsee=keybreakcase:new=keyif(a==)f=elsef=keywanbi=break}}}voidyanzheng()验证密码是否正确{if(wanbi)只有当六位密码均输入完毕后方进行验证{if((new==old)(new==old)(new==old)(new==old)(new==old)(new==old))allow=当输入的密码正确会得到allowe置一}}voidmain(){while(){keyscan()shumima()yanzheng()if(allow)验证完后若allow为则开锁{P=xif(!genggai)wanbi=}if(genggai)当S更改密码键被按下genggai会被置一{if(allow)若已经把锁打开才有更改密码的权限{while(!wanbi)当新的六位密码没有设定完则一直在这里循环{keyscan()shumima()if(retry|close)而当探测到重试键S或者关闭密码锁键S被按下时则跳出{wanbi=break}display(a,b,c,d,e,f)}}}if(ok)更改密码时当所有六位新密码均被按下时可以按下此键结束密码更改{其他时间按下此键无效ok=wei=genggai=old=newold=newold=new此时旧的密码将被代替old=newold=newold=newa=b=c=d=e=f=}if(retry)当重试按键S被按下retry会被置位{retry=wei=wanbi=a=b=c=d=e=f=new=new=new=new=new=new=}if(close)当关闭密码锁按键被按下close会被置位{close=genggai=所有变量均被清零。wei=wanbi=allow=P=xffa=b=c=d=e=f=new=new=new=new=new=new=}display(a,b,c,d,e,f)实时显示}}aafbbcgdegfcdpeddpGNDGND

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/49

基于STC89C52单片机的电子密码锁毕业设计_附原理图_pcb图_源程序_仿真图

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利