ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:801.52KB ,
资源ID:9009705      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9009705.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(密码锁的设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

密码锁的设计.docx

1、密码锁的设计 届别 2012届 学号 *21 毕业论文 基于单片机密码锁的设计与实现姓 名 王 强 系 别、 专 业 物电系 电子信息科学与技术 导 师 姓 名、职 称 黄健全 讲师 完 成 时 间 2012年3月 摘 要本文从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51与低功耗CMOS型E2PROM AT24C02分别作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用汇编语言编写主控芯片的控制程序,设计并实现了一款可以任意更改密码具有报警功能的电子密码锁。关键词:密码锁;单片机;EEPROM;AT24C02ABSTRACTAn electroni

2、c cipher lock was designed in this paper, which has the function of alarm and whose cipher can be changed many times. This cipher lock uses AT89S51 SCM and E2PROM AT24C02 as main chip and data memory cell. The system was controlled by programming the MCU (micro control unit) and has the advantages o

3、f simple circuit including keyboard, LCD display, alarm, and unlock parts.Keywords: Cipher lock; MCU; EEPROM; AT24C021.引言1.1选题背景及意义随着社会经济的不断发展,安全防盗已成为社会问题。如何制作安全可靠,又要使用方便的各种防盗锁,是制锁者长期以来研制的主题。传统的机械锁,由于其构造简单,被撬的事件屡见不鲜。在电子技术飞速发展的今天,具有防盗报警等功能的电子密码锁代替弹子锁和密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从

4、而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。具有保密性高,使用灵活性好,安全系数高等优点,受到了广大用户青睐。选题以应用广泛,与人们的生命财产息息相关的电子密码锁为研究目前,力图在可靠性、性价比方面有所收获,具有一定的应用价值。1.2研究现状随着电子技术的不断发展,特别是单片机应用的不断推广,无论电子密码锁功能性,稳定性都有了比较全面地提高。电子锁的常用识别方式有虹膜识别,指纹识别,声音识别。电子锁在国外发展比较早,所以应用也比较广泛,主要在家庭装较贵重地方,银行,保险柜等应用较多。在多年前,由于价格较普通机械锁更贵,普通场合应用较少。近几年来,各种新型的电子密码锁不断研制,具有越来越

5、高的性价比,在各种场合的应用越来越广泛。由于电子密码锁的功能、安全是机械锁无法相比的,如果能够在保证安全可性的前提下,进一步降低成本,电子密码锁将具有更广阔的发展前境。1.3 论文研究内容选题的主要研究内容是电子密码锁的设计与实现。设计一种电子密码锁的控制系统电路,使得密码锁具有以下功能:开机输入密码,密码正确则电磁锁打开;允许连续输入错误密码不超过两次,否则电子锁报警。考虑到研究核心是电子密码锁的控制部分,电子密码锁的执行部分用发光二极管来代替,绿色发光二极管亮表示密码锁开启,红色发光耳机管亮表示密码锁锁定。电子锁的行为表现为:1.开机输入密码,密码正确绿灯亮;2.密码输入错误红灯亮;3.连

6、续三次输入密码不正确则锁定键盘,并报警凤鸣。2. 硬件设计2.1 主要器件2.1.1 单片机AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC51兼容。片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51是一种功能强、灵活性高且价格合理的

7、单片机,可方便的应用于各种控制领域。其主要特性如下: (1)与MCS-51产品指令系统兼容 (2)4K字节可编程闪烁存储器 (3)寿命:1000写/擦循环(4)数据保留时间:10年(5)全静态工作:0Hz-24Hz(6)三级程序存储器锁定(7)128*8位内部RAM(8)32可编程I/O线(9)两个16位定时器/计数器(10)6个中断源 (11)可编程串行通道(12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路 另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到零并提供两种软件的省电方式-空闲方式和掉电方式。在空闲方式中,CPU停止工作。在掉电方式中,片内振荡器停止工作,由于时

8、钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下次硬件复位为止。2.1.2 存储芯片AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生

9、串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。电路接线图如图1:图1 AT24C02接线图图中AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89C51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,在AT89C51试验开发板上和单片机的P3.5连接。第6脚SCL为串行时钟输入

10、线,在AT89C51试验开发板上和单片机的P3.6连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地。24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。2.1.3 液晶显示器现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字

11、符对比度调节和背光功能。图2 为显示器。图2 显示器LCD16022.2 单元电路2.2.1 晶振电路单片机引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C1、C2取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为20pF。其原理图见图3.图3 晶振电路图2.2.2 复位电路 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,

12、单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。原理图见图4.图4 复位电路图2.2.3 键盘电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图5所示:图5 键盘电路原理图 2.2.4 存储电路掉电存储单元的作用是在电源断开的时候,

13、存储当前设定的单价信息。AT24C02是ATMEL公司开发的可擦除存储芯片,AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。其接线如图6所示:图6 存储电路原理图2.2.5 报警电路报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导通蜂鸣器发出蜂鸣声报警。如图7所示:图7 报警电路原理图2.2.6 执行电路开锁控制电路的功能是当

14、输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。只有用户操作键盘时,单片机的电源端才能得到3V电源,否则单片机处于节电工作方式。开锁步骤如下:首先按下键盘上的开锁按键,然后利用键盘上的数字键09输入密码,最后按下确认键。当用户输入一密码后,单片机自动进行密码校验,如果密码不符,则报警。只有当密码正确,单片机才能控制电子锁内的微型继电器吸合。当继电器吸合以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。开锁以后,单片机自动清除掉由用户输人的这个密码。如图8所示:

15、图8 执行电路原理图2.3 总体电路Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。 本密码锁采用proteus进行电路图设计,经过元件选型,用万能实验版进

16、行硬件焊接,以实现硬件部分。 其外围电路包刮键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成画出总体电路见图9:图9 总电路图3. 软件设计3.1主程序图10 主程序流程图3.2 子程序3.2.1 按键输入 图11 键功能流程图3.2.2 EEPROM读写图12 读写流程图3.2.3 密码设置图13 密码设置流程图3.2.4 开锁程序图14 开锁流程图4. 系统实现与测试硬件焊接完成后,下载程序(见附录),然后插上电源,第一步开锁,输入

17、密码,为了安全起见,输入的密码在显示器上显示*号,输入原始密码000000,密码正确开锁。显示器会显示open。见图15.图15 正确开锁输入密码错误则显示error,并且蜂鸣器发声报警,见图16。 图16 密码错误用户可以根据自己的需要修改密码,但在修改秘码前必须先输入正确的原始密码,让后再设置新密码,输入一个6位数的新密码,设置密码时界面会显示Set New Word Enable,见图17.图17 输入一次新密码然后再输入新密码,系统会显示please input again,若两次输入的新密码一致,则修改密码成功。此时会显示Reset Password Ok.见 图18。图18 密码修

18、改成功测试表明:设计的电子密码锁可以实现密码控制开锁、密码修改等功能,辅以适当的执行部件,则可以达到一定的安防效果。该电子密码锁电路简单,成本低廉,操作方便,安全可靠。结 论为了能够更好地完成这次的毕业设计的任务,我通过不同的渠道学习了选题的相关知识,这些是我在课堂上无法学到的。在毕业设计的这段时间里,我学会了在网络上查找有关选题的硬件资料,其中包括:电子密码锁国内外发展现状、AT89C51单片机及其引脚说明等。在做毕业设计的初期阶段,难度很大,没有头绪。在参考一些成功例子,经过一段时间的摸索后,初步形成了设计方案,并最后得以完成,有了很大的收获。通过毕业设计,我不但对单片机有了更为深入的了解

19、,对与之相关的应用也有了更广泛的认识。更重要的是,进一步加强了自己的动手能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性。让我了解到电子技术和软件编程对当今人们生活的重要性。毕业设计的经历也使我认识到,做任何事情都应脚踏实地,刻苦努力地去做。毕业设计是我大学时期影响深刻的一次实践和锻炼经历。致 谢在这四年当中,我除了学习之外还在日常生活中积累了许多经验。本论文是在黄老师的精心指导下完成的。论文从选题到完成的整个过程中,得到了黄老师的热情帮助和精心指导。黄健全老师严谨的治学态度、渊博的专业知识、敏锐的学术眼光、精益求精的精神给

20、我留下了深刻的印象,并对我的学习和工作产生极大地促进作用。四年的大学生活转眼流逝,对于我来说,在成长中给予我帮助的每一个人都功不可没。感谢老师们对我的谆谆教诲,在此,再次感谢所有任课老师的精心授业和教辅人员的辛勤工作!参考文献1胡汉才.单片机原理及接口技术M清华大学出版社,2004.2潘永雄.新编单片机原理与应用M,西安:西安电子科技大学出版社,2003.3王千.实用电子电路大全M.电子工业出版社,2001,p101.4何立民.单片机应用技术选编M.北京:北京航空大学出版社,1998;5李华.MCS-51系列单片机使用接口技术M.北京航空航天大学出版社,1993;6彭为.单片机典型系统设计实例

21、精讲M,北京:电子工业出版社,2006; 7王迎旭.单片机原理及及应用M机械工业出版社.2001.8潘新民,王燕芳.微型计算机控制技术实用教程M.北京:电子工业出版社,2007:75-76,118-1199 童诗白,华成英,模拟电子技术基础M,北京:高等教育出版社,2000;10李朝清.单片机原理及接口技术M.北京航空航天大学出版社2004.11周航慈.单片机应用程序设计技术M.北京航空航天大学出版社. 12刘瑞新.单片机原理及应用教程.北京:机械工业出版社,2003.13李华.MCS-51系列单片机使用接口技术.北京航空航天大学出版社,1993.14 樊昌信,曹丽娜.通信原理M,北京:国防工

22、业出版社,2007;5附 录电子密码锁程序源代码#include #include#define LCM_Data P0#define uchar unsigned char #define uint unsigned int#define Busy 0x80 /用于检测LCM状态字中的Busy标识sbit LCM_RS=P27;sbit LCM_RW=P26;sbit LCM_E=P25;sbit Scl=P34; /24C02串行时钟sbit Sda=P35; /24C02串行数据sbit ALAM = P21; /报警 sbit KEY = P20; /开锁bit operation=0

23、; /操作标志位bit pass=0; /密码正确标志/bit ResetEn=0; /重设密码充许标志bit ReInputEn=0; /重置输入充许标志 void Delay5Ms(void);unsigned char code a=0xFE,0xFD,0xFB,0xF7; /控盘扫描控制表unsigned char code start_line = password:_;unsigned char code clear = ;unsigned char code name = =Coded-Lock=; /显示名称unsigned char code Correct = -corre

24、ct-; /输入正确unsigned char code Error = -error-; /输入错误unsigned char code codepass= -pass-; unsigned char code LockOpen= -open-; /OPENunsigned char code SetNew = SetNewWordEnable;unsigned char code Input = input:_; /INPUTunsigned char code ResetOK = ResetPasswordOK_;unsigned char code initword= =initpas

25、sword=;unsigned char code Er_try= error,try_again_;unsigned char code again= pleaseinputagain;unsigned char InputData6; /输入密码暂存区unsigned char CurrentPassword6=1,3,1,4,2,0; /当前密码值unsigned char TempPassword6;unsigned char N=0; /密码输入位数记数unsigned char ErrorCont; /错误次数计数unsigned char CorrectCont; /正确输入计数

26、unsigned char ReInputCont; /重新输入计数unsigned char code initpassword6=0,0,0,0,0,0;/*void Delay1ns(void) unsigned int TempCyc = 200; while(TempCyc-); */=5ms延时=void Delay5Ms(void) unsigned int TempCyc = 5552; while(TempCyc-);/=400ms延时=void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCyc

27、B; while(TempCycA-) TempCycB=7269; while(TempCycB-); /=/=24C02=/=void mDelay(uint t) /延时 uchar i; while(t-) for(i=0;i125;i+) ; void Nop(void) /空操作 _nop_(); _nop_(); _nop_(); _nop_();/*起始条件*/void Start(void) Sda=1; Scl=1; Nop(); Sda=0; Nop(); /*停止条件*/void Stop(void) Sda=0; Scl=1; Nop(); Sda=1; Nop();

28、/*应答位*/void Ack(void) Sda=0; Nop(); Scl=1; Nop(); Scl=0;/*反向应答位*/void NoAck(void) Sda=1; Nop(); Scl=1; Nop(); Scl=0; /*发送数据子程序,Data为要求发送的数据*/void Send(uchar Data) uchar BitCounter=8; uchar temp; do temp=Data; Scl=0; Nop(); if(temp&0x80)=0x80) Sda=1; else Sda=0; Scl=1; temp=Data1; Data=temp; BitCounter-; while(BitCounter); Scl=0;/*读一字节的数据,并返回该字节值*/uchar Read(void) uchar temp=0; uchar tem

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1