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

下载本文档

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

文档简介

1、目 录1绪论11.1引言11.2电子密码锁的背景11.3本设计特点12设计要求22.1设计任务22.2设计要求23硬件电路设计23.1设计方案的选择3 3.1.1方案一3 3.1.2方案二3 3.1.3方案确定33.2密码输入方式的选择4 3.2.1方案一4 3.2.1方案二4 3.2.3方案确定43.3主要元器件简介43.4硬件系统结构5 3.4.1复位电路5 3.4.2晶振电路6 3.4.3存储电路6 3.4.4报警电路74.程序设计84.1程序清单84.2 proteus/keil仿真图17 4.2.1电子密码锁开机仿真结果17 4.2.2电子密码锁修改密码仿真结果175.总结18参考文

2、献1931.绪论1.1引言在日常生活和工作中,锁是每个人都离不开的,它是保护个人财产安全、保护资料档案的关键元素。随着电子技术的飞速发展,传统弹子锁的缺点渐渐被放大,社会对新式电子密码锁的需求越来越大,前景广阔。本课题主要采用单片机完成了一套具有按键输入、显示、解锁、报警及密码修改等多种功能的电子密码控制系统。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码

3、,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。1.2 电子密码锁的背景 随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了

4、更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。1.3 本设计特点本系统由24C02和12864显示的电子密码锁设计单片机系统、4×3矩阵键盘、12864显示和报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能(本设计由P0口控制LCD显示,密码正确则进入系统。密码错误显示“密码错误,重新输入密码”)除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。2.设计要求2.1设计任务设计一种基于

5、单片机的密码锁2.2 设计要求2.2.1密码用键盘输入(4-8位)2.2.2用户可预置密码(4-8位)2.2.3用LED数码管或LCD显示密码值,密码设置成功或开锁后显示“*”2.2.4密码输入成功后开锁,密码输入错误时数码管或者LCD提示错误信息,并且红色的LED亮,三次输入错误后,扬声器报警。3.硬件电路设计3.1设计方案的选择3.1.1方案一采用数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;

6、如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。3.1.2方案二采用一种是用以80C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其

7、原理如图所示。80C51单片机矩阵键盘控制输入错误锁定键盘延时报警控制电路24C02掉电存储开锁控制电路指示电路串口显示电路图3-1系统总设计结构图3.1.3方案确定通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。 另外从经济实用的角度出发,采用80C51单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。3.2密码输入方式的选择 3.2.1方案一指纹输入识别 :指纹识别技

8、术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为“节点”(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。3.2.2方案二矩阵键盘输入识别: 由各按键组成的矩

9、阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。  行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。3.2.3方案确定考虑到方案一软硬件太过复杂,而且成本也高,故不采用,而方案二每个按键都可通过程序赋予功能,从而完成密码识别本方案简单易行,故采用。3.3

10、主要元器件简介3.3.1 24C02串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。随着世界上各公司对该器件的开发,市场上推出了许多牌号的24C02器件,甚至还有一些冒牌的24C02器件,这样就使批量生产的单片机控制系统的质量出现时好时坏的问题。笔者经过大量的设计实践和试验摸索找出了24C02在应用中之所以出现数据被冲掉的原因,并总结了一套保护24C02数据安全的软硬件设计方法。3.3.2 80C5180C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的

11、延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40个引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。3.3.3 1286412864液晶是一种统称,只说明类屏的一个特征,就是128*64个点构成。对于液晶屏的特性则没有说明。3.4硬件系统结构3.4.1复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接

12、上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图2-1所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。图3-2复

13、位电路3.4.2晶振电路 80c51引脚XTAL1和XTAL2与晶体振荡器及电容C4、C5按图2-2所示方式连接。晶振、电容C4C5及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C4、C5的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C4、C5取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做系统的外部晶振11。电容取值为20pF。图3-3晶振电路3.4.3存储电路 AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术

14、实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能。采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。图3-4存储电路3.4.4报警电路报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导喇叭发出噪鸣声报警。图3-5报警电路4.程序设计4.1 程序清单*/#i

15、nclude<reg51.h>#include<12864.h>#include<keypad.h>#include<24C01.h>#define uchar unsigned char#define uint unsigned intsbit LED1=P15;sbit LED2=P16;sbit INIT=P22;sbit SOUND=P17;ucharidata key6=0,0,0,0,0,0;ucharidataiic6=0,1,2,3,4,5;void press(uchar *s)uchardat;/* P3=0xf0;/保存第一

16、位密码while(P3=0xf0);dat=key_scan();if(dat!=0x0a)&&(dat!=0x0b) *s=dat;Left(); star_12864(star,0x05,16); s+;/* P3=0xf0; /保存第二位密码while(P3=0xf0);dat=key_scan(); if(dat!=0x0a)&&(dat!=0x0b) *s=dat;Left(); star_12864(star,0x05,24); s+;/* P3=0xf0; /保存第三位密码while(P3=0xf0);dat=key_scan();if(dat!=

17、0x0a)&&(dat!=0x0b) *s=dat;Left(); star_12864(star,0x05,32); s+;/* P3=0xf0; /保存第四位密码while(P3=0xf0);dat=key_scan();if(dat!=0x0a)&&(dat!=0x0b) *s=dat;Left(); star_12864(star,0x05,40); s+;/* P3=0xf0; /保存第五位密码while(P3=0xf0);dat=key_scan();if(dat!=0x0a)&&(dat!=0x0b) *s=dat;Left();

18、star_12864(star,0x05,48); s+;/* P3=0xf0; /保存第六位密码while(P3=0xf0);dat=key_scan();if(dat!=0x0a)&&(dat!=0x0b) *s=dat;Left(); star_12864(star,0x05,56); /* doP3=0xf0;/键入Enter键盘继续执行下面语句,否则等待while(P3=0xf0);dat=key_scan();while(dat!=0x0b);void Delay10ms(void) /延时10ms uinti,j,k;for(i=5;i>0;i-)for(j

19、=4;j>0;j-)for(k=248;k>0;k-);void main()uchardat;uchar i=0,j=0,k;uchar x; LED1=1; LED2=1; SOUND=0; INIT=1; if(INIT=0) /密码初始化 x=SendB(iic,0x50,6);Delay10ms(); /首先从IIC器件中读出密码以供下面输入密码进行比较 x=ReadB(iic,0x50,6); Init_12864();/for(i=0;i<150;i+)Delay10ms();/*若密码不正确,循环执行dowhile()*do P3=0xf0;while(P3=

20、0xf0);dat=key_scan();while(dat!=0x0b);if(dat=0x0b) do LED1=1; System(); /显示:"请输入密码"字幕press(key); if(key0=iic0)&&(key1=iic1)&&(key2=iic2)&&(key3=iic3)&&(key4=iic4)&&(key5=iic5) /密码比较,若密码正确责进入系统,若密码不正确则显示密码错误,重新输入密码 true();do P3=0xf0;/键入1或2继续执行下面语句,否则等

21、待while(P3=0xf0);dat=key_scan();while(dat!=0x01&&dat!=0x02); if(dat=1) /开锁 LED1=0;unlock();for(i=0;i<100;i+)Delay10ms();continue; if(dat=2)/修改密码 doSystem(); press(key);again();press(iic); if(key0=iic0)&&(key1=iic1)&&(key2=iic2)&&(key3=iic3)&&(key4=iic4)&

22、&(key5=iic5) succeed();/修改密码成功for(i=0;i<100;i+)Delay10ms();Delay10ms(); x=SendB(iic,0x50,6);Delay10ms(); x=ReadB(iic,0x50,6);break; else /修改密码不成功,重新修改 repeat();for(i=0;i<100;i+)Delay10ms(); while(1); else /密码不正确,重新输入密码j+;if(j=3)for(i=0;i<8;i+) LED2=0;for(k=0;k<5;k+)Delay10ms(); LED2=1;for(k=0;k<5;

温馨提示

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

评论

0/150

提交评论