基于51单片机的简易电子密码锁.doc
《基于51单片机的简易电子密码锁.doc》由会员分享,可在线阅读,更多相关《基于51单片机的简易电子密码锁.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 前言随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。下面就是现在主流电子密码锁:目前常见的遥控式电子防盗锁主要有光遥控和无线电遥控两类。键盘式电子密码锁从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。卡式电子防盗锁使用各种“卡”作为钥匙的电子防盗锁是当前最
2、为活跃的产品,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接 触式卡两大类。生物特征防盗锁人的某些与生俱来的个性特征(如手、眼睛、声音的 特征)几乎不可重复,作为“钥匙”就是唯一的(除非被逼迫或伤害)。因此,利用生物特征做密码的电子防盗锁,也特别适合金融业注重“验明正身”的行业特点。人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自 古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30
3、年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码 量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC 卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以
4、对它的研究一直没有明显进展。 目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被 广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。 在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。 一、 作品功能:1、设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
5、2、密码可以由用户自己修改设定(只支持6位密码),锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。3、报警、锁定键盘功能。密码输入错误显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。4、AT24C02保存密码,支持复位保存,掉电保存功能。二、按键说明按键定义图如图示:采用4X4键盘输入,键盘对应名称如下:1 2 3 A4 5 6 B7 8 9 C* 0 # D其中,【09】为数字键,用于输入相应的密码, 【*】号键为取消当前操作【#】号键为确认【D】键为修改密码 其它键无功能及定义三、操作说明:密码锁初始密码为:.1、
6、开锁:插上电源后,程序自动调入初始密码,此时依次输 入:,然后按【#】(确认)键,此时锁会打开,可以看到显示open,密码锁打开。2、 退出并关锁:按下【*】(取消)键,此时锁关闭,所有输入清除。3、 修改密码:在开锁状态下,再次输入正确的密码并按下【#】(确认)键,此时听到两声提示,输入新的六位密码并按【D】(重设)键,再重复输入一次新密码并按【D】,会听到两声提示音,表示重设密码成功,内部保存新密码并存储到AT24C02。(如两次输入的新密码不一样,则重设密码失败)。4、 报警并锁定键盘:当输入密码错误后,报警并锁定键盘3秒,如3秒内又有按键,3秒再启动。5、 当重置新密码时,新密码会保存
7、于AT24C02存储器里。四、框图及流程图 1、系统结构框图 AT89S52显示模块键盘输入模块报警电路复位电路开锁电路密码存储模块2、主程序设计流程图初始化 修改开锁密码正确 输入旧密码N原密码相同 Y开锁出错报警 N N Y设新密码 返回 3、键功能程序流程图。 键功能程序键值=09?键值=开锁?键值=确认?键值=设置? 返回密码输入程序确认程序设置程序开锁程序YNYNYN YN 4、开锁程序流程图LCD初始化按开锁键输入密码确认程序开锁N输入密码正确?报警程序开锁成功返回Y 5.电子密码锁原理图程序(c语言)#include #include#define LCM_Data P0#def
8、ine uchar unsigned char #define uint unsigned int#define w 6/定义密码位数sbit lcd1602_rs=P25;sbit lcd1602_rw=P26;sbit lcd1602_en=P27;sbit Scl=P34;/24C02串行时钟sbit Sda=P35;/24C02串行数据sbit ALAM = P21;/报警sbit KEY = P20;/开锁sbit open_led=P22;/开锁指示灯bit operation=0;/操作标志位bit pass=0;/密码正确标志bit ReInputEn=0;/重置输入充许标志b
9、it s3_keydown=0;/3秒按键标志位bit key_disable=0;/锁定键盘标志unsigned char countt0,second;/t0中断计数器,秒计数器void Delay5Ms(void);unsigned char code a=0xFE,0xFD,0xFB,0xF7; /控盘扫描控制表unsigned char code start_line= password: ;unsigned char code name = =Coded Lock=; /显示名称unsigned char code Correct = correct ;/输入正确 unsigned
10、 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= Init password.;unsigned char co
11、de Er_try= error,try again!;unsigned char code again= input again ;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;/正确输入计数unsigned char ReInputCont; /重新输
12、入计数unsigned char code initpassword6=0,0,0,0,0,0;/=5ms延时=void Delay5Ms(void)unsigned int TempCyc = 5552;while(TempCyc-);/=400ms延时=void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-); /=24C02=void mDelay(uint t) /延时 uchar i; while(t
13、-) 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();/*应答位*/void Ack(void)Sda=0;Nop();Scl=1;Nop();Scl=0;/*反向应答位*/void NoAck(void) Sda=1; Nop(); Scl=1; Nop();
14、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 temp1=0;uchar BitCounter=
15、8;Sda=1;doScl=0;Nop();Scl=1;Nop();if(Sda)temp=temp|0x01;elsetemp=temp&0xfe;if(BitCounter-1)temp1=temp1;temp=temp1;BitCounter-;while(BitCounter);return(temp);void WrToROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PData=Data; for(i=0;iNum;i+) Start(); Send(0xa0); Ack(); Send(Address+i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 简易 电子 密码锁
限制150内