电子密码锁设计

2024-05-13

1. 电子密码锁设计

密码锁是锁的一种,开启时用的是一系列的数字或符号。密码锁的密码通常都只是排列而非真正的组合。部分密码锁只使用一个转盘,把锁内的数个碟片或凸轮转动;亦有些密码锁是转动一组数个刻有数字的拨轮圈,直接带动锁内部的机械。

文字密码锁的分类:
文字密码锁可分为:机械密码锁、数字密码锁等等。

密码锁的设计:
1、多拨式
  最简单的密码锁,常见於低安全设定的单车锁,使用多个拨圈。每个圈的中间有凹位。锁的中心的一条轴,上有数个凸出的齿,用来卡住拨圈。当拨圈转到正确的密码组合,锁便可以打开。这种锁是最容易打开的。很多这类锁根本无需知道密码都能开启。除非它的内部组件造得完美无瑕,否则只要把轴向外拉,其中一个齿便会比其他更为拉紧拨圈。这时轮动被拉紧的拨圈,直至听到小小的「卡」声,表示这个齿已进入了正确的凹位。重覆这步骤,很快便可以把锁打开。
2、单一转盘式
  用在挂锁或匣万上的密码锁可以是只有一个转盘。转盘推动背后数个平衡碟片或凸轮。习惯上,开启这种锁时先把转盘顺时针转到第一个数字,然后反时针转到第二个数字,如此直至最后一个数字。凸轮上通常有凹位,当转入正确的密码后,各位成一直线,锁便可以打开。   这种密码锁较为安全,但亦非全无缺点。例如,部分密码挂锁可以拉紧锁头,然后转动转盘直至不能再动,这样便能把密码找出。亦有些转盘密码锁的数字之间有特定关系,使到密码的组合可能性大为降低。廉价的密码挂锁可以用特别的衬片打开,而无需使用密码。   使用在匣万上的密码锁结构较为严密。有经验的锁匠可以一面旋转转盘,一面使用听筒小心聆听锁内凸轮的声音,判断可能的密码。   其他设计   有些门锁上有一个数字键盘,开启时按序键入一个数字系列。这种锁是使用电子控制,常见於办工室内。优点是只要告诉员工密码便可,无须复制钥匙。不过,如果有人把密码告诉外人,这锁便形同虚设。因此这类密码锁的密码需要经常更换才可以。

电子]密码锁原理
拨码盘式全机械密码锁原理
  这是一种没有电子器件的大密钥量高可靠的全机械密码锁。它的操作方式独特,类似老电话机的拨号――从拨盘的起点开始,顺时针转动拨盘到某一位数码,然后退回到起点,就输入了一位密码。如此重复直到输入了最后一位密码,再从起点逆时针转动拨盘就可以开锁。在开锁的同时,内部已经复位,所以拨盘退回到起点关锁后,必须重新输入密码才能开锁,不需要考虑内部复位问题。如果输错了密码,逆时针转动拨盘(虚开锁)也可以内部复位,然后重新输入密码。   
这种密码锁中,六位密码的可以有298万多组密码供主人随意变换,保密性极高。可选密码组是连续排列的,为选择容易记忆的密码提供了方便。目前已开发的基本型产品,密码位数及密码量还可以根据用户的需求来重新设计。也可以为用户增加报警器接口。   
这种密码锁的优点:   1、不用钥匙,不用电源,不用电池,没有废弃污染物。   2、全机械结构,能承受相当恶劣的外部环境,使用范围广。   3、操作简单,开锁时间比较短,平均开锁时间约15秒。   4、实际密码量大保密性能高,试探开锁的概率几乎为零。   5、结构简单,结实可靠。   
从历史上技术发展的规律看,在功能相似的情况下,简单可靠的东西总是替代繁杂的东西,而它正是以简代繁的东西。所以,它是大众化的实用性新产品,替代传统圆盘式机械密码锁和部分电子密码锁是应该的。   
拨码盘式全机械密码锁适用于在保险柜、保险箱、文件柜、防磁防火柜、防盗门、银库门、仓库门、车门、民用门及机械卡阻机构上广泛使用。它可以替代现有的传统圆盘式机械密码锁和部分电子密码锁。为某些产品的更新提供了契机。   
由于电子技术的风靡,很多产品以采用了电子结构为荣。但在某些场所,电子产品并没有绝对的优势,反而是机械产品或机电混合产品更实用。举两个例子:一是燃气灶的打火装置,早期是晶体管的点火器风靡一时,但它不耐潮湿,容易损坏,离不了电池。时间一长,反而是靠手扭动旋钮储能的机械(压电)打火装置显露出它的优越性--简单实用,成为燃气灶点火器的主流。二是汽车的后视镜及公共汽车(单厢)的后门窥视器,都曾有被电子监视器替代的危险,但人们发现:传统的后视镜及公共汽车驾驶员上方的普通后视镜,观察效果并不比电子监视器差,更简单实用。   
事实上,在传统的工业中,也能够找到比所谓的“新经济”更保险但是利润却毫不逊色的投资方向。密码锁并不是一种频繁操作使用的产品,可以说是一种半静态的产品,采用机械方式更实用一些。但电子方式的密码量大,人们主观感觉会安全一些。本专利产品的密码量接近电子密码锁,操作又比传统机械密码锁快得多,简单实用,可以象前述两例一样,有望成为高档次密码锁主流。

电子密码锁设计

2. 电子密码锁设计与制作

32.	电子密码锁设计
1.实验任务
根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。
2.电路原理图
 
图4.32.1
3.系统板上硬件连线
(1).	把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;
(2).	把“音频放大模块”区域中的SPK OUT端子接喇叭和;
(3).	把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;
(4).	把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;
(5).	把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;
4.程序设计内容
(1).	密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2).	密码的输入问题:
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。
(3).	按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。
5.C语言源程序
#include 
unsigned char code ps[]={1,2,3,4,5};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                               0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char pslen=9;
unsigned char templen;
unsigned char digit;
unsigned char funcount;
unsigned char digitcount;
unsigned char psbuf[9];
bit cmpflag;
bit hibitflag;
bit errorflag;
bit rightflag;
unsigned int second3;
unsigned int aa;
unsigned int bb;
bit alarmflag;
bit exchangeflag;
unsigned int cc;
unsigned int dd;
bit okflag;
unsigned char oka;
unsigned char okb;
void main(void)
{
  unsigned char i,j;
  P2=dispcode[digitcount];
  TMOD=0x01;
  TH0=(65536-500)/256;
  TL0=(65536-500)%256;
  TR0=1;
  ET0=1;
  EA=1;
  while(1)
    {
      if(cmpflag==0)
        { 
          if(P3_6==0) //function key
            {
              for(i=10;i>0;i--)
              for(j=248;j>0;j--);
              if(P3_6==0)
                {
                  if(hibitflag==0)
                    {
                      funcount++;
                      if(funcount==pslen+2)
                        {
                          funcount=0;
                          cmpflag=1;
                         }
                       P1=dispcode[funcount];
                    }
                    else
                      {
                         second3=0;
                      }
                  while(P3_6==0);
                }
            }
  
          if(P3_7==0) //digit key
            {
              for(i=10;i>0;i--)
              for(j=248;j>0;j--);
              if(P3_7==0)
                {
                  if(hibitflag==0)
                    {
                      digitcount++;                      
                      if(digitcount==10)
                        {
                          digitcount=0;
                        }
                      P2=dispcode[digitcount];
                      if(funcount==1)
                        {
                          pslen=digitcount;
                          templen=pslen;
                        }
                        else if(funcount>1)
                          {
                            psbuf[funcount-2]=digitcount;
                          }
                    }
                    else
                      {
                        second3=0;
                      }
                  while(P3_7==0);
                }
            }
        }
        else
          {
            cmpflag=0;
            for(i=0;i<pslen;i++)
              {
                if(ps[i]!=psbuf[i])
                  {
                    hibitflag=1;
                    i=pslen;
                    errorflag=1;
                    rightflag=0;
                    cmpflag=0;
                    second3=0;
                    goto a;
                  }
              }
            cc=0;
            errorflag=0;
            rightflag=1;
            hibitflag=0;
a:          cmpflag=0;
          }
    }
}
void t0(void) interrupt 1 using 0
{
  TH0=(65536-500)/256;
  TL0=(65536-500)%256;
  if((errorflag==1) && (rightflag==0))
    {
      bb++;
      if(bb==800)
        {
          bb=0;
          alarmflag=~alarmflag;
        }
      if(alarmflag==1)
        {
          P0_0=~P0_0;
        }
      aa++;
      if(aa==800)
        {
          aa=0;
          P0_1=~P0_1;
        }
      second3++;
      if(second3==6400)
        {
          second3=0;
          hibitflag=0;
          errorflag=0;
          rightflag=0;
          cmpflag=0;
          P0_1=1;
          alarmflag=0;
          bb=0;
          aa=0;
        }
    }
  if((errorflag==0) && (rightflag==1))
    {
      P0_1=0;
      cc++;
      if(cc<1000)
        {
          okflag=1;
        }
        else if(cc<2000)
          {
            okflag=0;
          }
          else
            {
              errorflag=0;
              rightflag=0;
              hibitflag=0;
              cmpflag=0;
              P0_1=1;
              cc=0;
              oka=0;
              okb=0;
              okflag=0;
              P0_0=1;
            }
      if(okflag==1)
        {
          oka++;
          if(oka==2)
            {
              oka=0;
              P0_0=~P0_0;
            }
        }
        else
          {
            okb++;
            if(okb==3)
              {
                okb=0;
                P0_0=~P0_0;
              }
          }
    }
}

3. 密码锁的设计结构

 用在挂锁或匣万上的密码锁可以是只有一个转盘。转盘推动背後数个平衡碟片或凸轮。习惯上,开启这种锁时先把转盘顺时针转到第一个数字,然後反时针转到第二个数字,如此直至最後一个数字。凸轮上通常有凹位,当转入正确的密码後,各位成一直线,锁便可以打开。这种密码锁较为安全,但亦非全无缺点。例如,部分密码挂锁可以拉紧锁头,然後转动转盘直至不能再动,这样便能把密码找出。亦有些转盘密码锁的数字之间有特定关系,使到密码的组合可能性大为降低。廉价的密码挂锁可以用特别的衬片打开,而无需使用密码。使用在匣万上的密码锁结构较为严密。有经验的锁匠可以一面旋转转盘,一面使用听筒小心聆听锁内凸轮的声音,判断可能的密码。 有些门锁上有一个数字键盘,开启时按序键入一个数字系列。这种锁是使用电子控制,常见於办工室内。优点是只要告诉员工密码便可,无须复制钥匙。不过,如果有人把密码告诉外人,这锁便形同虚设。因此这类密码锁的密码需要经常更换才可以。这种锁有3——6位密码,保密性极高。

密码锁的设计结构

4. 急需:电子密码锁的设计

电子密码锁
摘要 本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保证电路能够安
工作,有极高的安全系数。
关键词 电子密码锁 电压比较器 555单稳态电路 计数器 JK触发器  UPS电源。

1 引言
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了两种方案:一种是用以AT89C2051为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到单片机方案原理复杂,而且调试较为繁琐,所以本文采用后一种方案。

5. 单片机课程设计密码锁

这个已经是最简单的系统了,显示2位数码管2*8。按键4*4矩阵。
 
需要设计如何设定初始密码,密码输入多少次以后机器锁定报警。
 
正常的密码锁都是8位以上的密码,而且可能要存很多个密码。要考虑待机功耗,正常情况待机功耗需小于20UA.锁的控制,包括锁的类型,开锁时间的设定等等。有些还需要通过485或TCPIP联网到终端服务器做记录。
 
同学,还是好好认真考虑一下你现在的课题吧,虽然是一个不是十分完善的课题,至少会让你熟悉一下51单片机。

单片机课程设计密码锁

6. “急急急”求个电子密码锁课程设计(你可以发原理图给我吗?)

呵呵..我这个设计要求好你的基本一样..你看看.我想能帮助你的.!!望采纳..电子密码锁一、设计目的:要求电子器件设计制作密码锁的控制电路,使之在输入正确的代码时,输出信号以启动执行机构动作,并且用红、绿LED指示关锁、开锁状态。二、设计任务:1、基本部分:(2) 密码锁控制器中存储一个4位代码,当开锁按扭的输入代码等于存储代码时启动开锁控制电路,并且用绿灯亮、红灯灭表示开锁状态。(3) 从第一个按扭触动后的5秒内若未能将锁打开,则电路自动复位并由扬声器发出持续10至20秒的报警信号,同时用绿灯灭、红灯亮表示关锁状态。3)要求性能可靠、操作简便。2、发挥部分:1)密码锁控制器中存储的4位密码可以修改。2)开锁信号可以推动机械执行构件3)其他3、分析各不见工作原理,绘制电路图,撰写设计报告。三、设计内容:1、设计思路:共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过5秒,电路将报警20秒,若电路连续报警3次,电路将锁定键盘1分钟,防止他人的非法操作。2、总框架图: 3、计原理分析:密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。4、键盘输入、密码修改、密码检测、开锁及执行电路:其电路如图1所示: 1)开关K1~K9是用户的输入密码的键盘,用户可以通过开关输入密码,开关两端的电容是为了提高开关速度,电路先自动将IC1~IC4清零,由报警电路送来的清零信号经C25送到T12基极,使T12导通,其集电极输出低电平,送往IC1~IC4,实现清零。   2)密码修改电路由双刀双掷开关S1~S4组成(如图2所示), 它是利用开关切换的原理实现密码的修改。例如要设定密码为1458,可以拨动开关S1向左,S2向右,S3向左,S4向右,即可实现密码的修改,由于输入的密码要经过S1~S4的选择,也就实现了密码的校验。本电路有16组的密码可供修改。 3)由两块74LS112(双JK触发器,包含IC1~IC4)组成密码检测电路。由于IC1处于计数状态,当用户按下第一个正确的密码后,CLK端出现了一个负的下降沿,IC1计数,Q端输出为高电平,用户依次按下有效的密码,IC2~IC3也依次输出高电平,送入与门IC5,使其输出开锁的高电平信号送往IC13的2脚,执行电路动作,实现开锁。4)执行电路是由一块555单稳态电路(IC13),以及由T10、    T11组成的达林顿管构成。若IC13的2脚输入一高电平,则3脚输出高电平,使T10导通,T11导通,电磁阀开启,实现开门,同时T10集电极上接的D5(绿色发光二极管)发亮,表示开门,20秒后,555电路状态翻转,电磁阀停止工作,以节电。其中电磁阀并联的电容C24使为了提高电磁阀的力矩。5、报警电路:1)报警电路实现的功能是:当输入密码的时间超过5秒,电路报警20秒,防止他人恶意开锁。电路包含两大部分,1分钟延时和5秒延时电路。其工作原理是当用户开始输入密码时,电路开始1分钟计时,超出5秒,电路开始20秒的报警。电路图如图3所示: 3)开始报警:当用户输入的密码不正确或输入密码的时间超过30秒,IC11的2脚电位随着C4的充电而下降,当电位下降到1/3Vcc时(即30秒延时结束时候),3脚变成高电位(延时时是低电平),通过R15使(R15的作用是为了限制T7的导通电流防止电流过大烧毁三极管)T7导通,其集电极上面接的红色发光二极管D4发亮,表示当前处于报警状态,T8也随之而导通,使蜂鸣器发声,令贼人生怯,实现报警。4)停止报警:当达到了20秒的报警时间,IC10的6,7脚接的电容C5放电结束,IC10的3脚变成低电平,T5截止,T6导通,强制使强制电路处于稳态,IC11的3脚输出低电平,使T7,T8截止,蜂鸣器停止报警;或者用户输入的密码正确,则有开锁电路中的T10集电极输出清除报警信号,送至T12(PNP),T12导通,强制使T7基极至低电位,解除报警信