《基于单片机的电子密码锁设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计毕业论文.doc(34页珍藏版)》请在三一办公上搜索。
1、 本科学生毕业设计题 目:_基于单片机的电子密码锁设计_ Design of Electronic password lock Based on SCM学院名称:_物理与电子信息学院_专业名称:_电 子 信 息 工 程 专 业_年 级:_2009级9班_学生姓名:_ _学 号:_ _指导教师:_ _ 职称/学历:_ 副教授/博士_教务处 制目录摘要.2Abstract.2第1章 绪论4 1.1课题背景及研究意义4 1.2电子密码控制简介4 1.3电子密码控制的发展趋势4 1.4本设计所要实现的目标5第2章 系统概述6 2.1采用以单片机为核心的控制方案6 2.2设计原理6第3章 系统硬件设计8
2、 3.1 89S51单片机的8 3.1.1 89S51单片机管脚图83.2电路总图构成9 3.3 电源输入部分9 3.4 键盘输入部分10 3.5 复位部分.103.6 晶振部分 .11 3.7 显示部分.11 3.8 报警部分.12 3.9 密码存储部分.12第4章 系统软件设计.15 4.1主程序设计.15 4.1.1 主程序流程图.15 4.1.2按键功能流程图.16 4.1.3密码设置流程图.16结论 .18参考文献 .19 附录A.20附录B .21致谢 .32 基于单片机的电子密码锁设计 在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了
3、机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。电子密码锁是一种通过密码输入来控制电路或是芯片工作从而控制机械开关的闭合完成开锁、闭锁任务的电子产品。它的种类很多有简易的电路产品也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心通过编程来实现的。 本文以AT89C51单片机为核心器件结合按键电路、液晶
4、显示电路、报警指示电路和开锁机构利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能,其主要具有如下功能 密码通过键盘输入若密码正确则将锁打开 密码输入错误蜂鸣器将报警提示 用户可以自由设定密码 本密码锁具有设计方法合理简单易行成本低安全实用等特点具有一定的推广价值关键词: 电子密码锁 AT24C02 LCD1602 The design of electronic code lock based on single chip microcomputer ZengXiangQiCollege of physics and electron
5、ic information specialty of electronic information engineering level 2009 Instructor: Dai XianzhiIn the field of preventive security technology, with electronic anti-theft alarm function of password control system gradually replace the traditional mechanical cipher control system, to overcome the me
6、chanical control of the cipher code less, its safety performance, so that the electronic password control system both in technical or performance are greatly improves step. Along with large scale integrated circuit technology development, especially the single came out, with the emergence of micropr
7、ocessor smart password control system, which has the traditional electronic password control systems function, but also the introduction of intelligent management, expert analysis system and other functions, so that the password control system has high security, reliability, application widely.Elect
8、ronic code lock is a password input through the control circuit or chip in mechanical switches to control the closure in completing unlocking, locking the task of electronic products. It has many types in a simple circuit productalso has higher cost chip-based products. Now the widely used electroni
9、c code lock is a chip as the core in the programming. This paper takes AT89C51 MCU as core device in combination of key circuit, display circuit, alarm indication circuit and unlocking mechanism in SCM flexible programming design and rich in I/O port and its control accuracy through software program
10、 to control the whole system to achieve the basic functions of electronic cipher lock, which mainly has the following functionsThe password input through the keyboard in the correct password, if in the lock openThe password input error in the alarm buzzerThe user can freely set the password of the c
11、ipher lock has a reasonable design methods in simple low cost in safety and practicality in has certain promotion valueKeywords: Electronic code lock AT24C02 LCD1602第1章 绪论1.1课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业1。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
12、温度是工业对象中的一个重要的被控参数。近几年来快速发展了多种先进的温度控制方式,这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。由于单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途,所以本设计采用单片机作为核心控制元件。1.2电子密码控制简介电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。电子密码控制不论性能还是安全性都已大大超过了机械类。其特点如下:1) 保密性好,编码量多,远远
13、大于机械控制。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6) 电子密码控制系统具有操作简单易行,一学即会的特点。1.3电子密码控制的发展趋势由于电子器件所限,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,后来便是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列
14、单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码控制系统 。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统。组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。可以看出组合使
15、用电子信息是电子密码控制系统今后发展的趋势 。1.4本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第2章 系统概述2.1采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、
16、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素 。基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。当用户需要开锁时,先
17、按键盘开锁键之后按键盘的数字键09、AF输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。2.2设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制
18、开锁还是报警。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。其原理框图如图一所示: AT89C51晶振电路复位电路键盘输入电源输入显示电路报警电路 图一 原理框图第3章 系统硬件设计3.1 89S51单片机89S51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含6个中断源,2个优先级,2个16位定时/计数器。89S51的存储器系统由4K的程序存
19、储器(掩膜ROM),和128B的数据存储器(RAM)组成。89S51单片机管脚图: 图二 189S51单片机管脚图部分引脚说明:1. 时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;在89S51 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。2. 控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。ALE/PROG(30 脚):地址锁存允许信号端。P
20、SEN(29 脚):程序存储允许输出信号端。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。3.输入/输出端口P0/P1/P2/P3:3.2电路总图构成在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602。其原理图如图三所示: 图三 电路总原理图3.3电源输入部分 密码锁主要控制部分电源需要用5V直流电源供电,其电路如图四所示,而5V电源输入时往往伴有杂波,所以加一个2.2uF的电容滤波。这样输出的
21、电压一般能满足要求。图四 电源输入原理图3.4键盘输入部分 由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置 。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图五所示: 图五 键盘输入原理图3.5复位部分 单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后P
22、C0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。根据实际情况选择如图六所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决
23、定。由于R53?报警程序NYNY返回确认程序再次输新密码两次新密码输入相同?NY设置程序图十四 密码设置流程图结论以上为毕业期间所设计的电子密码控制系统的电路,它经过多次修改和整理,可以满足设计的基本要求。输入密码时,如三次输入错误,则进行报警,在输入时,LCD显示为“*”,在修改密码时,则显示数字。次设计还具有防盗功能,如对密码控制系统进行破坏,有报警功能。但因为我的水平有限,此电路中也存在一定的问题。譬如说电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但由于过于复杂,本设计并未加入;电路密码只有16种可供修改,但由于他人不知道密码的位数,而且还要求在规定的时间内按一定的
24、顺序开锁,所以他人开锁的几率很小。由于使用的是单片机作为核心的控制元件,配合其它器件,使本密码控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平。参考文献1 石文轩,宋薇.基于单片机MCS-51的智能密码锁设计M.武汉工程职业技术学院学报,2004,(01);2 祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002,(01);3 叶启明.单片机制作的新型安全密码锁J.家庭电子,2005,(10);4 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004,(03);5 董继成.一种新型安全的单片机密码锁J.电子技术,2004,
25、(03);6 杨茂涛.一种电子密码锁的实现J.福建电脑,2004,(08);7 瞿贵荣.实用电子密码锁J.家庭电子,2000,(07);8 ATmega.ATmega8L-8AC,2006,(01);9 Wireless World,1998,vol、84,No、1509,p69;10 王千.实用电子电路大全M,电子工业出版社,2001,p101;11 何立民.单片机应用技术选编M,北京:北京航空大学出版社,1998;12 李华.MCS-51系列单片机使用接口技术M,北京航空航天大学出版社,1993;13 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,2006;14 潘永雄.新编单
26、片机原理与应用M,西安:西安电子科技大学出版社,2003;15 童诗白,华成英,模拟电子技术基础M,北京:高等教育出版社,2000;16 阎石主.数字电子技术基础M,北京:高等教育出版社,1998;27 樊昌信,曹丽娜.通信原理M,北京:国防工业出版社,2007;28 李瀚荪.电路分析基础M,北京:高等教育出版社1991;19 郭海英.基于单片机的电子安全密码锁的设计M.现代电子技术,2005,(13);20 何希才,杜煜.实用电子电路设计M.北京:电子工业出版社,199821 康华光.电子技术基础(第四版)M.北京:高等教育出版社,1998附录A系统整体电路系统整体PCB图附录B 全部程序清
27、单#include #include #include #include lcd.h#include key.huchar key_buf16=0;uchar old_key16=0;uchar key_index=0;uchar string_buf17=0;uchar key;uchar key_statu=0;uchar clear=1;uchar check=0;char times=3;uchar change=0; void delay_ms(uint t)uint i,j;for(i=0;it;i+)j=2000;while(-j);void save_iic()iic_writ
28、es(0,(uchar *)(key_buf),16);void read_iic()iic_reads(0,(uchar *)(old_key),16);void runtimer1() TH1= 38; TL1=228; TR1=1;ET1=1; EA=1;void timer1(void)interrupt 3if(times=0|!alarm)ir_out=ir_out;uchar ir_key_check()uchar i=0; uchar j;if(!ir_key1) if(!check)for(i=0;i16;i+)if(key_bufi!=old_keyi)lcd_set_ad
29、dr(0xa8);lcd_print( PassWord Error!);times-;delay_ms(250);lcd_set_addr(0xa8);lcd_print( );key_index=0;for(j=0;j16;j+)string_bufj=0x0;key_bufj=0x0;if(times=0)times=0;return 0;key_index=0;times=3;for(j=0;j16;j+)string_bufj=0x0;key_bufj=0x0;ir_pin=1;lcd_clear();lcd_print( PassWord Pass! );lcd_set_addr(
30、0xa8);lcd_print(The Door Opened );delay_ms(250);lcd_set_addr(0xa8);lcd_print( );check=1;elseif(change)lcd_clear();key_index=0;save_iic();for(j=0;j16;j+)string_bufj=0x0;key_bufj=0x0;lcd_print( Input Password );lcd_set_addr(0xa8);lcd_print( );check=0;clear=1;read_iic();change=0;ir_pin=0;elselcd_clear(
31、);ir_pin=0;lcd_print( Door Closed! );delay_ms(250);lcd_clear();lcd_print( Input Password );check=0;clear=1;change=0;return 0; if(!ir_key2) if(check)clear=0;elseclear=1;key_index=0;for(j=0;j16;j+)string_bufj=0x0;key_bufj=0x0;lcd_set_addr(0xa8);lcd_print( );if(check)lcd_clear();change=1;lcd_print( Change PassWord );lcd_set_addr(0xa8);lcd_print( );return 0; void key_press()if(!clear)if(Key_Status()&!key_statu)key_statu=1;if(key_index9?(A-10+key_bufkey_index):(key_bufkey_index+0);key_index+;lcd_set_addr(0xa8); lcd_print(string_buf);if(!(key_statu&Key_Status()key_statu=0;