赞
踩
从这个需求可以看出,需要核对的密码有6位,需要6个数值比较电路,而单个的范围是0-9,换算成二进制是0000-1001,所以需要使用6组“四路开关+比较器电路”,其中,开关元件表示设置的密码,比较器芯片选用74LS85可以满足需求。
同时因为密码需要显示,所以使用数码管译码器芯片+数码管实现。
关注公众号”嵌入式小学生“,回复”密码锁“,获取工程文件。
6路74LS85芯片输出全部为A=B时,点亮指示灯。通过74LS85加与门实现。
“滴滴”声通过有源蜂鸣器实现,有源蜂鸣器内部带有震荡源,通电即响。
按键可以使用10路独立的无锁按键来表示0-9,使用74LS147实现十进制到二进制的转换。触发形式的按键的数值需要保存,我们选择寄存器74LS175,每一位密码都需要保存,所以需要6路74LS175。
然后需要对每一次按键和对应的密码对应上,及第一次按下对应第一位密码,第二次按下对应第二位密码……第6次按下对应第6位密码,所以我们还需要一个计数器电路,这里选用74LS161实现。
报警选用有源蜂鸣器,错误计数选择74LS161,连续错误3次时,报警,蜂鸣器响。密码输入正确时,清零计数器74LS161。
如图所示,按键一侧接地,另一侧接74LS147(U1)输入端的同时通过上拉电阻接到5V电源。所以按键按下时,74LS147的输入端为低电平;按键抬起时,74LS147(U1)的输入端为高电平。
因为74LS147的输出是反向的,所以我加了4路非门得到正确的信号。
每一路按键都通过与门电路接到了一起,所以只要有一个按键按下,与门U3的输出都是0,没有按键按下的时候输出为1。
与门(U3)的输出经过非门(U5)反向后作为74LS161(U4)的CLK信号和蜂鸣器(按键音)的控制信号。
关注公众号”嵌入式小学生“,回复”密码锁“,获取工程文件。
上一节讲到,按键的信号经过与门(U3)和非门(U5)以后作为计数器74LS161(U4)的CLK信号,每按下一次按键,计数器都会加1。
所以从第1次到第6次按键按下,计数器74LS161(U4)的输出分别是:
0001
0010
0011
0100
0101
0110
于是,我们通过将计数器(U4)的输出Q0,Q1,Q2经过门电路的组合以后,分别接到6个寄存器芯片74LS175上,即可以实现按键次数与密码位数的一一对应。因为这部分电路繁琐且重复,所以选择以第一位74LS175(U11)为例进行说明:
我们知道第一次按键对应的计数值是0001,即Q0为1,Q1和Q2为0,所以Q1和Q2经过或非门(U20)以后和Q0作为与门(U21)输入,得到的信号再和按键检测的信号(U3)做“与”运算(U6),U6输出即可作为第一位74LS175的时钟信号。
需要注意的是,在第六次按键按下之后,计数器74LS161(U4)需要清0,同时启动密码比较流程,密码正确,则点亮指示灯;密码错误,则错误计数器加1。
关注公众号”嵌入式小学生“,回复”密码锁“,获取工程文件。
74LS175的输出给到数码管译码芯片74LS47的输入,74LS47是共阳驱动芯片,我们选择的数码管也是共阳数码管。
同时,74LS175的输出也作为比较器芯片74LS85的A组输入。74LS85的B组输入通过四路开关实现,如图,开关一侧接5V电源,另一侧接74LS85的B组输入和下拉电阻(图中RP5是排阻)。当开关拨到on一侧时,74LS85的输入端为1;拨到off一侧时,输入端为0。本设计的默认密码是1,2,3,4,5,6,即将拨码开关分别设置成0001,0010,0011,0100,0101,0110.
当74LS85的A组输入和B组输入相等时,QA=B输出1,否则,输出0.
关注公众号”嵌入式小学生“,回复”密码锁“,获取工程文件。
如图,6路比较器芯片74LS85的QA=B输出通过与门U44做“与”运算。U44选用的7路与门,是因为我们将计数器74LS161(U4)的输出Q1,Q2,Q3也一起做了与运算,这样可以保证只有在74LS161(U4)的输出全为0时,才判断整体密码是否正确,避免出现这样的问题:比如上一次密码输入为789456,下一次输入123时,六路74LS85的输出就全为1了,然而实际这个时候密码还没有完全输入。
关注公众号”嵌入式小学生“,回复”密码锁“,获取工程文件。
计数器芯片74LS161(U46)加三极管驱动电路,密码输错时,计数器加1,当计数器加到3时,蜂鸣器响。
当密码输入正确时,计数器清零。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。