基于单片机的电子密码锁设计_第1页
基于单片机的电子密码锁设计_第2页
基于单片机的电子密码锁设计_第3页
基于单片机的电子密码锁设计_第4页
基于单片机的电子密码锁设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告课程名称_单片机综合应用设计题目名称_基于单片机的电子密码锁设计学生学院_电气与信息工程学院专业班级_学号学生姓名_课程设计题目基于单片机的电子密码锁设计一、设计项目简介1设计意义及目的电子密码锁是现代生活中常用的加密工具,它克服了机械式密码锁密码量少、安全性能差的缺点,尤其是微控制器的智能电子密码锁,不仅具有电子密码锁的功能,还可引入智能化管理功能,从而使密码锁具有更高的安全性和可靠性。由于电子密码锁的保密性高、使用灵活性好、安全系数高等特点,受到了广大用户的亲睐,具有报警功能的电子密码锁代替弹子锁和密码量少的机械锁是必然趋势。本课程设计是基于89C51为核心的单片机控制的电子密码锁设计,能完成开锁、修改密码、密码错误亮灯显示、LED显示密码等基本的密码锁功能,并通过PROTUES软件成功地进行了仿真。2系统功能描述本设计采用单片机为主控芯片,结合外围电路组成电子密码控制系统。设计主要功能有1设置6位密码,密码通过键盘输入,若密码正确,则锁打开,代表锁的二极管亮。2初始密码由单片机内部决定,用户可对密码进行修改。3密码只能输入6位数字,超过6位的输入无效。3设计达到目标1完成相应C语言程序的编写。定义相关函数,具体包括延时函数、中断函数、键盘扫描函数、显示函数和主函数等。2在KEIL环境下编译程序,生成HEX文件,要求程序编译正确,原理清楚。3设计电子密码锁原理图,尽量有一定复杂度和难度,设计简洁、易懂。4在PROTUES环境下完成电路原理图的绘制与仿真。正确绘制电路图,完成其参数的定义与元器件的连接,注意为单片机加载HEX文件,其他包括键盘扫描电路,显示电路和开锁电路的设计等等。系统上电后,要求正确仿真,即输入所需求的六位密码,系统正确运行,模拟开锁。分析仿真结果,并为硬件的制作打下基础。5硬件制作与调试。要求自己选用相关元件,选用电路板等实现硬件的制作。完成后,自己调试运行,要求接入5V直流电源,输入六位密码,完成开锁的模拟实现过程。找出相关问题,并进行改进。6结果分析。总体完成后,对整个系统总结,分析优点与缺点,撰写、完善实验报告,得出实验结论。2、系统硬件设计本设计主要由单片机、矩阵键盘、液晶显示器等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由键盘输入部分、显示部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、按键功能程序、密码设置程序和延时程序等组成。1系统设计方案整体设计方案如上框图2系统电路原理图设计及说明1键盘输入电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个44键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示、修改密码等。键盘的每个按键功能在程序设计中设置。STC89C51单片机电源输入键盘输入复位电路晶振电路显示电路解锁电路图1矩阵键盘2复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图所示的复位电路。该电路为最简单的复位电路,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。图2上电复位3显示电路为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。按下电源开关之后,显示器处于开启状态。显示器处于初始状态,当需要对密码锁进行开锁时,用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个数字。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“OK”,单片机其中P30引脚会输出低电平,使代表开锁的绿色二极管发光,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P31输出低电平,电子密码锁不能被打开,红灯亮。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口如图所示。图3LCD1602屏管脚图4开锁电路在本次设计中,基于节省材料的原则,暂时用LED发光管代替电磁锁(在实际设计中,则用一个继电器代替电子锁模拟开锁过程),绿色发光二级管亮,表示开锁;红色发光二极管亮,表示没有开锁。电路图如图所示。发光管发光,即表示密码输入正确,表示开锁;密码输入错误,则红色发光二级管亮。图4开锁电路3电路PCB图设计及说明电路的PCB图采用PROTEL99SE进行作图,各个元件根据实际物品的大小进行封装,在PCB上各个元件的布局要合理,各个元件摆放整齐后设置好布线的规则,然后开始布线,布线采用了半自动半人工的布线方式,使PCB板的走线合理。三、系统软件设计1软件设计方案电子密码锁工作的主要过程是通过键盘输入密码,同时LCD显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或其他处理。密码的设定是一个很重要的部分,在此程序中密码是固定的“012345”,采用六位密码。用C语言编写程序代码,具体设计包括头文件及其相关定义、键盘扫描子程序、LCD显示子程序、中断程序、延时程序以及主程序设计等。编写完毕后,用KEIL软件进行编译,生成HEX文件。相关的一些关键子程序设计如下。2软件设计框图及说明如图所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,判断密码是否正确,密码正确开锁,密码错误则开锁不成功。在开锁情况下进行修改密码,点击确认密码修改成功,否则结束返回。若密码修改成功则再执行之前的操作。1主程序流程图NYY开始初始化键盘扫描子程序输入密码子程序LCD显示子程序密码正确开锁不成功开锁成功重设密码密码重置子程序N2键盘扫描程序键盘扫描主要就是对按键进行扫描、消抖并被定位。键盘扫描流程图如图所示。键盘扫描C语言程序为VOIDGET_KEYP10XF0结束LIEP1P10X0FHANGP1ADDRESHANG|LIEWHILEADDRES0XFFDELAY5P10XF0LIEP1P10X0FHANGP1ADDRESHANG|LIEIFADDRES0XFFFLAGSWITCHADDRESCASE0XEENUM1BREAKCASE0XDENUM2BREAKCASE0XBENUM3BREAKCASE0X7ENUMABREAKCASE0XEDNUM4BREAKCASE0XDDNUM5BREAKCASE0XBDNUM6BREAKCASE0X7DNUMBBREAKCASE0XEBNUM7BREAKCASE0XDBNUM8BREAKCASE0XBBNUM9BREAKCASE0X7BNUMCBREAKCASE0XD7NUM0BREAKCASE0X77NUMDBREAK3重设密码子程序VOIDREST_CIPHERABCDEF0N0D01WHILECONGET_KEYIFNINCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSTATICUCHARSHOW_VAL6STATICUCHARINIT_VAL61,1,1,1,1,1UCHARKEY,TIMES0UNSIGNEDCHARCODEKEY_CODE0XEE,0XED,0XEB,0XE7,0XDE,0XDD,0XDB,0XD7,0XBE,0XBD,0XBB,0XB7,0X7E,0X7D,0X7B,0X77/以下是1602程序SBITEP27/1602使能引脚SBITRWP25/1602读写引脚SBITRSP26/1602数据/命令选择引脚VOIDDELAYINTI,JFORI0I100IFORJ0J20JVOIDENABLEUCHARDELP0DELRS0RW0E0DELAYE1DELAYVOIDWRITEUCHARDELP0DELRS1RW0E0DELAYE1DELAYVOIDL1602_INITVOIDENABLE0X01ENABLE0X38ENABLE0X0CENABLE0X06ENABLE0XD0VOIDL1602_CHARUCHARHANG,UCHARLIE,CHARSIGNUCHARAIFHANG1A0X80IFHANG2A0XC0AALIE1ENABLEAWRITESIGNVOIDL1602_STRINGUCHARHANG,UCHARLIE,UCHARPUCHARAIFHANG1A0X80IFHANG2A0XC0AALIE1ENABLEAWHILE1IFP0BREAKWRITEPP/以上是1602显示程序VOIDDELAYMSUINTMSUCHARTWHILEMSFORT0T120TUINTCHECK_INPUT_PWUINTI,KK0FORI0I6IIFSHOW_VALIINIT_VALIK1RETURNKUCHARKEYSCANUCHARSCAN1,SCAN2,KEYCODE,JP10XF0SCAN1P1IFSCAN1/延时30MSSCAN1P1IFSCAN1SCAN2P1KEYCODESCAN1|SCAN2/组合成键编码FORJ0J15JIFKEYCODEKEY_CODEJKEYJRETURNKEYELSEP10XFFVOIDKEYDOWNSTATICUCHARI0,J1,M0,N1,FLAG0,FLAG20UCHARKP10XF0IFP1IFKEY10IFFLAG1INIT_VALMKEYL1602_CHAR2,N,KEY48DELAYMS255MNIFM6M0N1FLAG0L1602_STRING1,1,“GETNEWCODE“L1602_STRING2,1,“ELSEL1602_STRING1,1,“INPUTTINGCODE“L1602_STRING2,J,“SHOW_VALIKEYIJIFI6I0J1IFFLAG21IFCHECK_INPUT_PW0L1602_STRING1,1,“CODERIGHT“DELAYMS255FLAG1FLAG20L1602_STRING1,1,“INPUTNEWCODE“L1602_STRING2,1,“ELSEL1602_STRING1,1,“CODEWRONG“L1602_STRING2,1,“INPUTCODEAGAIN“IFKEY10IFCHECK_INPUT_PW1L1602_STRING1,1,“INPUTERROR“L1602_STRING2,1,“I0J1DELAYMS255TIMESIFTIMES3P30XFEL1602_STRING1,1,“SYSTEMCLOCKED“WHILE1L1602_STRING1,1,“INPUTCODEAGAIN“L1602_STRING2,1,“ELSEL1602_STRING1,1,“DOOROPEN“L1602_STRING2,1,“P30X7FDELAYMS255DELAYMS255P30XFFIFKEY11L1602_STRING1,1,“INPUTOLDCODE“L1602_STRING2,1,“I0J1FLAG21IFKEY12L1602_STRING1,1,“INPUTYOURCODE“L1602_STRING2,1,“I0J1IFKEY13L1602_STRING1,1,“SHOWPASSWORD“FORK0K6KL1602_CHAR2,K1,INIT_VALK48DELAYM

温馨提示

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

评论

0/150

提交评论