您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于51单片机的密码锁(可改密码)
实习报告实习名称:单片机应用实习院(系)名称:电气与信息工程学院专业班级:xxxxxxxxx学生姓名:xxxxxx学号:xxxxxx指导教师:xxxxxxxxxx黑龙江工程学院教务处制2014年7月目录-1-第1章总体设计方案………………………………………………………………………………….………………...41.1总体设计方案………………………………………………………………………………………………….…............4第2章硬件电路设计….……………………………………………………………………………….……...............52.1单片机最小系统电路设计……………………………………………………………………………….…………...52.2液晶显示模块……………………………………………………………………………………………………………..62.3键盘输入模块………………………………………………………………………………………………………….….72.4AT24C02密码存储模块…………………………………………………………………………………..…………..82.5系统供电电路设计………………………………………………………………………………………………….….92.6蜂鸣器和继电器模块…………………………………………………………..…………………………………...10第3章系统软件设计……………………………………………………………………………………...................113.1软件总体设计思路.…………………………………………………………………………………………………...113.2主程序流程设计.……………………………………………………………………………………………………….12总结…………………………………………………………………………………………………………………………...................13参考文献………………………………………………………………………………………………………..………...................14附录…………………………………………………………………………………………………………………..............................15附录一……………………………………………………………………………………………………………………………………...15附录二……………………………………………………………………………………………………………….……………………..15-2-实习任务书学生姓名xxxx系部电气与信息工程学院专业班级测控12-1指导教师姓名xxx职称副教授讲师是否外聘□是否题目名称键盘式电子密码锁一、设计的内容、目的和意义本次实习是有关于键盘式电子密码锁的设计。在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。本次实习的目的是实现电子密码锁的功能,并运用单片机技术设计一个结构简单,并且相对低成本的密码锁。二、设计的技术指标要求1、研究方法(1)总体按照最优化的方法进行软件设计和硬件设计,走软件实现道路;(2)对软硬件进行模块划分,并对各单元电路结合EDA工具进行论证设计;(3)在查阅文献基础上展开设计,力求创新。2、技术要求(1)采用6位密码(2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘摘要-3-本次设计使用ATMEL公司的STC89C52实现一基于单片机的智能电子密码锁的设计,其主要具有如下功能:1、设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。2、密码可以由用户自己修改设定(只支持6位密码),初始密码输入成功后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。3、报警、锁定键盘功能。密码输入错误1602LCD会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。4、AT24C02保存密码,支持复位保存,掉电保存功能。方案比较及选择方案1用数字逻辑器件搭建电子密码锁,电路复杂庞大,且稳定性差,密码位数有限,保密性差方案2:用FPGA可编程逻辑器件设计电子密码锁,程序通用性差,可读性低,不易移植。成本昂贵方案3:单片机AT89c51为核心,设计一个电子密码锁系统。系统分为硬件和软件两个部分。硬件部分主要包括键盘输入模块、显示电路模块、密码存储模块、单片机电路模块等;软件部分主要包括如下模块:系统的主流程、键盘的扫描、LCD的读写、密码存储器的读写比较等。确定方案及理由:方案1需要大量逻辑器件。方案2需要FPGA可编程逻辑器件,价格昂贵所以本次实习选择价格简单操作相对简单的第三个方案。4第1章总体设计方案1.1总体设计方案密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:1、密码输入功能:插上电源后,LCD提示输入密码,输入密码时在1602LCD上显示“*”每输入一个数字,LCD上向右移一格,同时“*”加一个。值到输入6个“*”为此,若一次性输入大于6个密码,则只保留前6位密码,按“确定”生效。若按取消键,锁关闭,所有输入清除。2、密码更改功能:将输入的值作为新的密码(初始密码是6个0)。3、当密码输入成功后,或者密码修改成功后,LCD上有提示成功字符,同时蜂鸣器响两声作为提示。其具体系统原理框图如图1.1所示。1.2软硬件功能分析键盘输入模块、液晶显示模块、AT24C02存储模块、电源模块以及蜂鸣器与继电器模块。系统的总体工作过程是这样的:首先,从键盘输入密码,单片机采集到密码后通过液晶显示,同时与AT24C02存储模块中的密码比对,密码正确后继电器开关打向另一端以模拟开锁过程,三次密码输入错误后报警模块报警。键盘输入模块复位电路密码存储模块STC89C52显示模块报警电路开锁电路5通过对器件性价比及其他方面的考虑,键盘采用矩阵式键盘,显示采用LCD1602字符型液晶显示器为了,用外扩一个AT24C02E2PROM存储密码。第2章硬件电路设计2.1单片机最小系统电路设计单片机最小系统设计是单片机应用系统设计的基础。AT89S52单片机最小系统电路如图2.1所示。P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RESET9P3.0RXD10P3.1TXD11P3.2INT012P3.3INT113P3.4T014P3.5T115P3.6WR#16P3.7RD#17XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN#29ALE30EA#31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U2AT89S5230pFC93030pFC63010uFC812Y112M1KR2VCCGNDS1SW-PBVCCGNDVCC123456789RP14.7K123456789RP24.7KVCC123456789RP34.7K123456789RP44.7KVCC图2.1单片机最小系统电路2.2液晶显示模块本次实际的显示模块是采用的1602,电路图如图所示6P1.0(T2)1P1.1(T2EX)2P1.23P1.34P1.45P1.56P1.67P1.78RESET9P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20(A0)P2.021(A1)P2.122(A2)P2.223(A3)P2.324(A4)P2.425(A5)P2.526(A6)P2.627(A7)P2.728PSEA29ALE30EA31(AD7)P0.732(AD6)P0.633(AD5)P0.534(AD4)P0.435(AD3)P0.336(AD2)P0.237(AD1)P0.138(AD0)P0.039VCC40U1AT89C51123456781615141312111094K7RP1ResPack4C2VSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D714====CODEDLOCK===*LCD_1602ABCDABCD1234D0D1D2D3D4D5D5D7D61KR1ResTapGNDVCCGNDVCCVCCGNDVCC图2.2液晶显示电路1602的引脚功能:第1脚:为地。第2脚:VCC接5V正电源。第3脚:为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个20K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15~16脚:空脚。2.3键盘输入模块使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。7P1.0(T2)1P1.1(T2EX)2P1.23P1.34P1.45P1.56P1.67P1.78RESET9P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20(A0)P2.021(A1)P2.122(A2)P2.223(A3)P2.324(A4)P2.425(A5)P2.526(A6)P2.627(A7)P2.728PSEA29ALE30EA31(AD7)P0.732(AD6)P0.633(AD5)P0.534(AD4)P0.435(AD3)P0.336(AD2)P0.237(AD1)P0.138(AD0)P0.039VCC40U1AT89C51S?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBS?SW-PBABCD1234ABCD1234GND图2.3矩阵键盘电路通过行列键盘扫描的方法可获取键盘输入的键值,从而得知按下的哪个键,具体过程如下:(1)查询是否有键按下。单片机向行扫描口输出全为“0”的扫描码,然后从列检测口检测信号,只要有一列信号不为“1”,则表示有键按下,且不为“1”的列即对应为按下的按键所在的列。(2)查询按下按键所在的行、列位置。前面已经取得了按下键的列,接下来要确定按键所在的行,这需要进行逐行扫描,单片机首先使第1行为“0”,其余各行为“1”,接着进行行列检测,若为全“1”,表示不在第1行,否则即在第1行;然后使第2行为全“0”,其余各行为“1”,再进行列检测,若为全“1”,表示不在第2行;这样逐行检测,直到找到按键所在的行。当各行都扫描以后仍没有找到,则放弃扫描,认为是键的错误动作。在扫描键盘过程中,应该注意以下问题:(1)当按下或松开按键时,按键会产
本文标题:基于51单片机的密码锁(可改密码)
链接地址:https://www.777doc.com/doc-6242712 .html