电子密码锁
一、引言
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了两种方案:一种是用以AT89C2051为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到单片机方案原理复杂,而且调试较为繁琐,所以本文采用后一种方案。
二、总体方案设计
1、设计思路
共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
2、总体方框图
三、设计原理分析
电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输次数锁定电路。
1、键盘输入、密码修改、密码检测、开锁及执行电路 .
其电路如下图3-1-1所示:
图3-1-1键盘输入、密码修改、密码检测、开锁、执行电路
开关K1~K9是用户的输入密码的键盘,用户可以通过开关输入密码,开关两端的电容是为了提高开关速度,电路先自动将IC1~IC4清零,由报警电路送来的清零信号经C25送到T11基极,使T11导通,其集电极输出低电平,送往IC1~IC4,实现清零。
密码修改电路由双刀双掷开关S1~S4组成(如图3-1-2所示), 它是利用开关切换的原理实现密码的修改。例如要设定密码为1458,可以拨动开关S1向左,S2向右,S3向左,S4向右,即可实现密码的修改,由于输入的密码要经过S1~S4的选择,也就实现了密码的校验。本电路有16组的密码可供修改。
图3-1-2密码修改电路
由两块74LS112(双JK触发器,包含IC1~IC4)组成密码检测电路。由于IC1处于计数状态,当用户按下第一个正确的密码后,CLK端出现了一个负的下降沿,IC1计数,Q端输出为高电平,用户依次按下有效的密码,IC2~IC3也依次输出高电平,送入与门IC5,使其输出开锁的高电平信号送往IC13的2脚,执行电路动作,实现开锁。
执行电路是由一块555单稳态电路(IC13),以及由T10、T11组成的达林顿管构成。若IC13的2脚输入一高电平,则3脚输出高电平,使T10导通,T11导通,电磁阀开启,实现开门,同时T10集电极上接的D5(绿色发光二极管)发亮,表示开门,20秒后,555电路状态翻转,电磁阀停止工作,以节电。其中电磁阀并联的电容C24使为了提高电磁阀的力矩。
2、报警电路
报警电路实现的功能是:当输入密码的时间超过40秒(一般情况下用户输入不会超过),电路报警80秒,防止他人恶意开锁。
电路包含两大部分,2分钟延时和40秒延时电路。其工作原理是当用户开始输入密码时,电路开始2分钟计时,超出40秒,电路开始80秒的报警。图如下3-2-1所示
图3-2-1报警电路
有人走近门时,触摸了TP端(TP端固定在键盘上,其灵敏度非常高,保证电路可靠的触发),由于人体自身带的电,使IC10的2脚出现低电平,使IC10的状态发生翻转,其3脚输出高电平,T5导通(可以通过R12控制T1的基极电流),其集电极接的黄色发光二极管D3发光,表示现在电子锁处于待命状态,T6截止,C4开始通过R14充电(充电时间是40秒,此时为用户输入密码的时间,即用户输入密码的时间不能超过40秒,否则电路就开始报警, 由于用户经常输入密码,而且知道密码,一般输入密码的时间不会超过40秒),IC2开始进入延时40秒的状态。
开始报警:当用户输入的密码不正确或输入密码的时间超过40秒,IC11的2脚电位随着C4的充电而下降,当电位下降到1/3Vcc时(即40秒延时结束时候),3脚变成高电位(延时时是低电平),通过R15使(R15的作用是为了限制T7的导通电流防止电流过大烧毁三极管)T7导通,其集电极上面接的红色发光二极管D4发亮,表示当前处于报警状态,T8也随之而导通,使蜂鸣器发声,令贼人生怯,实现报警.
停止报警:当达到了80秒的报警时间,IC10的6,7脚接的电容C5放电结束,IC10的3脚变成低电平,T5截止,T6导通,强制使强制电路处于稳态,IC11的3脚输出低电平,使T7,T8截止,蜂鸣器停止报警;或者用户输入的密码正确,则有开锁电路中的T10集电极输出清除报警信号,送至T12(PNP),T12导通,强制使T7基极至低电位,解除报警信号。
3、报警次数检测及锁定电路
若用户操作连续失误超过3次,电路将锁定5分钟。其工作原理如下:当电路报警的次数超过3次,由IC9(74161)构成的3位计数器将产生进位,通过IC7,输出清零信号送往74161的清零端,以实现重新计数。经过IC8(与门),送到IC12(555)的2脚,使3脚产生5分钟的高电平锁定脉冲(其脉冲可由公式T=1.1RC计算得出),经T9倒相,送IC6输入端,使IC6输出低电平,使IC13不能开锁,到锁定的目的。电路图如下3-3-1所示:
图3-3-1报警次数检测及锁定电路
4、备用电源电路
为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。其电路图如下3-4-1所示:
220V市电通过变压器B降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。
图3-4-1电源电路
由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+ 图3-4-2停电检测及电子开关切换电路 T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如3-4-3所示: 图3-4-3 蓄电池自动充电电路 五、总结与体会 以上为实习期间所设计的电子密码锁电路,它经过多次修改和整理,以是一个比较不错的设计,可以满足人们的基本要求,但因为水平有限,此电路中也存在一定的问题,譬如说电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但过于复杂,本次设计未其中;用开关作74LS112的CLK脉冲,不是很稳定,可以调换其它高速开关或计数脉冲;电路密码只有16种可供修改,但由于他人不知道密码的位数,而且还要求在规定的时间内按一定的顺序开锁,所以他人开锁的几率很小;电路中未加显示电路,但可通过其它数字模块实现这一功能。这需要一段时间的进一步改进,如果有好的意见,希望老师给以支持。 通过这三周的学习,我感觉有很大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:能够充分利用图书馆去查阅资料,增加了许多课本以外的知识。能对protel 99、和EWB等仿真软件操作,能达到学以致用。对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。 在实习中,我感受到了老师对学生的那种悔人不卷的精神,每天的固定时间,老师都来给我们指导,使我们少走弯路,顺利完成实习任务,请允许我向你们致意崇高的敬意,感谢你们,老师! 单片机源程序如下: #include #include #include #define uchar unsigned char #define uint unsigned int #define data_IO P2 sbit rs=P3^0; //指令和数据寄存器 “1是数据,” “0是指令” sbit rw=P3^1;//读写控制,“1读” “0写” sbit e=P3^2; //片选信号 sbit p=P2^7; sbit deng=P3^3;///响音乐的端口 sbit md=P3^4;///修改密码时的灯 uchar pwflag;//密码是否正确的标志位 uchar count;// uchar gg=0 ;//只有输入正确的密码才能修改密码 uchar cs=3 ;//输入密码的错误次数 uchar m[]={1,2,3,4,5,6}; ///初始密码 static uchar mbuf[6];///输入的密码 char d[32]={' ','I','M','P','O','R','T',' ','C','I','P','H','E','R',':',' ', ' ',' ','_',' ',' ','_','_','_','_','_','_',' ',' ',' ',' ',' '};//输入密码 code char ks[32]={'C','O','N','G','R','A','T','U','L','A','T','E',' ','Y','O','U', ' ','O','P','E','N','I','N','G',' ',' ','L','O','C','K','!',' '};////开锁 code char cw[32]={' ','C','I','P','H','E','R',' ',' ','E','R','R','O','R',' ',' ', '~','~','~','~','~','~','~','~','~','~','~','~','~','~','~','~' };////错误 code char xc[32]={' ',' ','A','M','E','N','D',' ','S','U','C','C','E','E','D',' ', ' ',' ',' ',' ',' ','!','!','!','!','!','!',' ',' ',' ',' ',' '};//修改成功 code char xg[32]={' ','A','M','E','N','D',' ',' ','C','I','P','H','E','R',':',' ', ' ',' ',' ',' ',' ','_','_','_','_','_','_',' ',' ',' ',' ',' '};///修改密码*/ void yanshi(uint n)///////////////延时函数/////////////////////////////////// { uint i; for(i=0;i void delay(uint n)///////////////延时函数/////////////////////////////////// { uint i,j; for(i=0;i<1000;i++) {for(j=0;j } void busy() ////////////////////判断是否忙//////////////////////////////////////// {data_IO=0xff; rs=0; //写指令 //////////////////// rw=1; //表示读状态 // 三个的状态表示 // e=1; //下降延// // 判忙状态 // while(!p); //////////////////// // e=0; } void xiezl(uchar shuju) /////////////////////*写指令*///////////////////////////// { busy();/*yanshi(6500);*/ data_IO=shuju; rs=0; //写指令 //////////////////// rw=0; //表示写状态 // 三个的状态表示 // e=1; //下降延// // 写指令 // e=0; ///////// //////////////////// } void w_dat(uint n)//////////////////写数据////////////////////////// { busy(); /*yanshi(6500) ;*/ data_IO=n; rs=1; //写数据 //////////////////// rw=0; //表示写状态 // 三个的状态表示 // e=1; //下降延// //写数据 // e=0; ///////// //////////////////// // return; } void xianshi(uchar js[]) //////////////////显示函数/////////////////////////////// { uchar h,v; xiezl(0x01); //清屏显示 yanshi(2000) ; xiezl(0x80); // DDRAM地址的设置 for(h=0;h<16;h++) {w_dat(js[h]); ///n表示有写几位数据 yanshi(100) ; } xiezl(0xc0);//换行 for(v=(16);v<32;v++) {w_dat(js[v]); ///n表示有写几位数据 yanshi(100) ; } } void chushihua(void)///////////////////*液晶模块初始化*/ { uchar i; rs=0; //写指令 rw=0; //表示写状态 e=0; //使能 for(i=0;i<3;i++) { xiezl(0x38); //功能设置,8位,一行显示,5*7点阵 yanshi(1000); } xiezl(0x38); //两行显示 xiezl(0x0f); //显示开关控制位 xiezl(0x18); //移位控制,光标和显示一起左移 xiezl(0x06); //设置输入模式 xiezl(0x01); //清屏显示 xiezl(0x80); // DDRAM地址的设置 } bit pwcmp(void) { bit flag; uchar i;
上一篇:单片机直流电机的pwm调速与控制设计
下一篇:51单片机定时器做的可调数字时钟设计
推荐阅读最新更新时间:2024-11-17 12:23
设计资源 培训 开发板 精华推荐
- NCV78702R2GEVK:NCV78702 TSSOP 套件
- MPC5777M发动机管理评估系统
- 单片机高精度频率计设计 原理图+pcb+源程序
- 用于便携式计算机的 25W、3.3V、5V DC 到 DC 多输出电源
- C5157211_STM32F405RGT6方案验证板
- 在主/从中使用 LTC3612EUDC 降压稳压器以使用 1MHz 外部时钟实现一致跟踪输出的典型应用
- LTC7812IUH 宽输入范围至 12V/8A 低 IQ、级联升压+降压稳压器的典型应用电路
- 基于TCPP01-M12的USB Type-C电力输送水槽扩展板 ,适配STM32 Nucleo
- STEVAL-MKI170V1,用于标准 DIL24 插座的 IIS328DQ 适配器板
- poker机械键盘gh60 标准poker配列