电子密码锁设计实验报告
摘要:
密码锁又称电子锁,它的主要功能是:1)用数字方式输入开锁密码,输入密码正确时开锁;2)如果密码有误或者输入时间过长,则发出报警信号。
目录:
第一章、系统结构与技术指标
1.1系统功能结构························································· 1.2性能和电气指标·······················································1.3设计条件·····························································
第二章、整体方案设计
2.1密码设定·····························································2.2密码判断·····························································2.3密码录入和判断结果显示··············································· 2.4系统工作原理框面·····················································
第三章、单元电路设计
3.1按键录入和编码电路··················································· 3.2地址记录和存储电路··················································· 3.3密码锁存和比较电路··················································· 3.4判决与结果显示电路··················································· 3.5时钟································································· 3.6整机电路图··························································· 3.7元件清单·····························································
1
3 3 4
4 5 5 5 6 8 8 10 10 12 13
第四章、电路测试
4.1单元电路测试·························································· 17
4.2整体指标测试·························································· 18
4.3测试结果······························································ 18
第五章、总结
5.1设计任务完成情况······················································
5.2问题及改进····························································
5.3心得体会······························································
2 19 19 20
第一章、系统结构与技术指标
1.1系统功能结构
密码锁:用数字键方式输入开锁密码,输入密码时开锁;如果输入密码有误或者输入时间过长,则发出警报。
密码锁的系统结构框图如下图 1-1 所示,其中数字键盘用于输入密码,密码锁用于判断密码的正误,也可用于修改密码。开锁绿亮表示输入密码正确并开锁,报警红亮表示密码有误或者输入时间超时。
图1-1 密码锁系统结构框图
1.2性能和电气指标
1.2.1 开锁密码为8位十进制数字,由按键输入,按“确认”键后,输入的数字有效。
1.2.2 输入的8位数字与预设的密码相同时开锁,用绿灯亮,红灯灭表示。数据有误时或输入的密码时间过长即报警,红灯亮。 3
1.2.3 密码可以通过键盘设定或修改。
1.2.4 输入的数字间隔时间小于或等于15s。超过时限则报警,同时电子锁复位。 1.2.5 具有手动、自动复位功能。
1.2.6在不采用RAM和E2PROM的情况下完成设计(可增加标准数字器件)。 1.2.7不采用E2PROM时,设定修改密码的方法不限。 1.3设计条件
1.3.1 电源条件:稳压电源提供+5V电压。 1.3.2 可供选择的元器件如表1-1所示
表1-1 器件单
门电路、电阻、电容以及发光二极管自定。
第二章、整体方案设计
4
2.1密码设定
用编程器在ROM中起始的8个单元写入原始密码:01,0A,0A,0A,01,08,03,04
2.2密码判断
经过7485,只能比较密码的1位,使用移存器就能将比较结果先储存,经过8个脉冲周期后同时输出。为节约GAL16V8的I/O口,可使用一片7485,先将5位比较结果处理,剩下的三位接到GAL,再比较。在密码全部输入后,要按下“确认”键,则GAL判断密码是否正确。
数据经7485等后,数据到达74164时,数据有一定的延时。假如74164的时钟=CP,当第一的CP到来时,第一位的比较结果还没从7485出来,即第一位锁进的不是第一位的比较结果。所以,锁存的时钟应比CP慢,可以定义CP2=!CP,此时,CP2比CP的上升沿晚的时间就是手按键的时间。从而保证锁存8次后输出的就是8位的比较结果。
2.3密码录入和判断结果显示
1)用数字方式输入开锁密码,输入密码正确时开锁;2)如果密码有误或者输入时间过长,则发出报警信号。
2.4系统工作原理框面
5
图2.4 密码锁的工作原理框图
由以上框图可知,当按下数字键0、1、2、3、4、5、6、7、8、9后,编码器逐一进行十—二进制编码,此时产生按键信号。按键信号经计数器,产生存储器的地址信号。解锁时,存储器中相应的数据输出与输入的密码经比较器比较后,将结果存入移存器。8位的比较结果送到GAL,判决是否正确,并开锁或报警。设定密码时,每输入一位,计数器加一,则可依次修改。
第三章、单元电路设计
3.1按键录入和编码
6
电路由于键盘有0~9,而ROM中数据以十进制存储,则要将案件进行10进制到2进制的转换。使用可编程逻辑器件GALl16V8,电路非常简单,连线少,比较实用。 将按键编号和输出四位二进制码相对应,列出真值表(表3-1)。
表 3-1 按键编码真值表
根据真值表,用CUPL语言写出逻辑关系: OUT1=KEY1+KEY9+KEY11+KEY12 OUT2=KEY5+KEY6+KEY7+KEY8+KEY12 OUT3=KEY1+KEY3+KEY4+KEY7+KEY8+KEY12 OUT4=KEY2+KEY4+KEY6+KEY8+KEY11+KEY12 电路设计:
每个键按下,产生一个高电平脉冲,并把按下的数字键译码输出:
7
为保护电路,接入排阻(图中略)。
3.2地址记录和存储电路
密码存储在EEPROM中,28C64共有8K*8的存储容量。而本次密码锁需要的存储空间仅需8位*4b。其实是一个巨大的浪费。28C64有13根地址线(A0~A12)和8根数据线(D0~D7),为操作方便,将A3~A12、D4~D7全部置零。则数据存储在前8个单元。地址线与74161的输出相连。数据线从GAL的译码输出读出数据。
8
图3-2 28C64连接图
3.3密码锁存和比较电路
由于CP信号对于按键稍有延迟,如将按键的译码与从ROM中取出的数据进行比较,则会出错,所以在比较器之前加一级锁存器,在时钟CP的控制下,此时才能实现输入密码与原有密码的对应位同时到达比较器。电路如下:
9
图3-3 密码比较
重要时序分析:
密码锁从清零开始工作:当按下第一位密码时,按键的译码立即输出,CP滞后输出,在CP的上升沿,74374锁存器开始工作,锁入数据,此时送到锁存器口数据是键盘输入的译码和ROM地址0000(B)的数据,并不是地址0001的数据。所以在ROM中存入数据从地址0开始。 时序如下图所示:
图3-4-2 锁存时序图
10
3.4判决与结果显示电路
经过7485,只能比较密码的1位,使用移存器就能将比较结果先储存,经过8个脉冲周期后同时输出。为节约GAL16V8的I/O口,可使用一片7485,先将5位比较结果处理,剩下的三位接到GAL,再比较。在密码全部输入后,要按下“确认”键,则GAL判断密码是否正确。
数据经7485等后,数据到达74164时,数据有一定的延时。假如74164的时钟=CP,当第一的CP到来时,第一位的比较结果还没从7485出来,即第一位锁进的不是第一位的比较结果。所以,锁存的时钟应比CP慢,可以定义CP2=!CP,此时,CP2比CP的上升沿晚的时间就是手按键的时间。从而保证锁存8次后输出的就是8位的比较结果。
图3-4 8位密码比较结果处理
输入的8位数字与预设的密码相同时开锁,用绿灯亮,红灯灭表示。数据有误时或输入的密码时间过长即报警,红灯亮。
3.5时钟
11
机械键盘在使用过程中会产生机械抖动,即会产生多个脉冲信号(有稍高频的毛刺),使输出的时钟不稳定,影响后级工作。可让CP触发输出,消除高频毛刺。由于密码通过机械开关输入,频率很低(因本次实验提供的开关不大方便操作,一般按键频率不大于1hz),则触发低频略高即可,取5~10hz即可。
用F555做定时器,设计电路如下:
图3-5 555定时电路
555定时器的频率表达式为:f=1.43/((RA+2RB)*C)。
取RB=3K,RA=2K,C=220u,测试得f=7.1hz,能达到要求。
将clock接至G16V8的1脚,此时在每次键按下时都会产生一个脉冲,且消除了毛刺。 (注:GAL的一个函数表达式中或项不能超过7个,所以可写成CP.D=D0#A0#A2#A4#A6#A8,这样既满足条件,又节省了GAL的管脚资源。)
消抖效果图如图3-2-1所示:
CPIN为含毛刺的输入信号(因抖动,产生一些不正常的高频信号)
GAL的时钟为CLOCK,为1~10hz
CPIN.D为消抖输出
12
从图中看出,在D触发输出后,毛刺被有效去除了。
图3-5-1消抖效果图
3.6整机电路图
13
3.7元件清单
本设计除了老师建议的一些芯片,我还使用了少量其他数字芯片,完成了要求外的一些指标,使用的芯片如下:
表3-7所用元件清单
电容、电阻、发光二极管、导线若干,面包板一块。
程序清单
设计中使用2片GAL16V8,第一片主要用于译码,第二片主要用于控制。
1. 第一片GAL
功能:键盘解码,产生时序电路需要的CP及CP2
Name PLDDesign ;
Partno ;
Revision 1 ;
Date 2012-11-29 ;
14
Designer ;
Company Protel International ;
Assembly ;
Location ;
Device ;
Format ;
/*********************************************************************/ /* This PLD design (Revision 1) created on 2012-11-29 */ /* for Protel International */ /* and is stored as PLDDesign */ /*********************************************************************/ PIN[1,11]=[CLK,OE];
/** Inputs **/
Pin [2,3,4,5,6,7,8,9,12,13] = [A0,A1,A2,A3,A4,A5,A6,A7,A8,A9] ;
/** Outputs **/
PIN[19,18,17,16]=[D3,D2,D1,D0];
PIN[14,15]=[CP2,CP];
/** D3 D2 D1 D0 OUTPUT KEYCODE,CP OUTPUT CLOCK,F NO USE ***/ D3=A0#A8#A9;
D2=A4#A5#A6#A7;
D1=A0#A2#A3#A6#A7;
15
D0=A1#A3#A5#A7#A9;
CP.D=D0#A0#A2#A4#A6#A8;
CP2=!CP;
/*******END********/
2. 第二片GAL
功能:处理密码比较结果、延时判断处理、控制28C64的读写操作、开锁和报警输出、电路复位
Name PLDDesign ;
Partno ;
Revision 1 ;
Date 2012-11-29 ;
Designer ;
Company Protel International ;
Assembly ;
Location ;
Device ;
Format ;
/*********************************************************************/ /* This PLD design (Revision 1) created on 2012-11-29 */
/* for Protel International */
/* and is stored as PLDDesign */
16
/*********************************************************************/
/** Inputs **/
Pin 1 = Input_1 ;
Pin 2 = Input_2 ;
Pin 3 = Input_3 ;
Pin 4 = Input_4 ;
Pin 5 = Input_5 ;
Pin 6 = Input_6 ;
Pin 7 = Input_7 ;
Pin 8 = Input_8 ;
Pin 9 = Input_9 ;
Pin 10 = Input_10 ;
Pin 11 = Input_11 ;
/** Outputs **/
Pin 12 = Output_12;
Pin 13 = Output_13;
Pin 14 = Output_14;
Pin 15 = Output_15;
/** Declarations and Intermediate Variables **/
17
/** Logic Equations **/
第四章、电路测试
4.1单元电路测试
1. 10进制数字输入
测试:先复位,将数字键推上,用示波器检测第一片GAL的19~16脚,按住数字键“0”,检测到OUT1OUT2OUT3OUT4=0101,则译码正确,以此类推,输入0~9,GAL输出全部测试正确。
2. CP脉冲
测试:将CP接到示波器一个通道观察,在有键按下时,观察到脉冲。且看到七段数码管得数字加1,则计数与显示部分没有问题。
3. 密码比较
用编程器在ROM中起始的8个单元写入原始密码:
01, 0A, 0A, 0A, 01, 08,03,04
测试:
1. 复位后,依次输入正确密码(10001834),用示波器观察第一片7485的第6脚,若全为高,则正确,8位密码输入完毕后,测试74164的移存输出脚,若全为1,则正确。
2. 输入错误密码10001833,7485在输入错误密码后,输出为0,且8位输入完毕后, 18
74164的输出管脚中,第三脚为0,其余为1。则电路没有问题。
4. 延时判断
测试:
1. 用示波器观察74123的输出管脚第13脚,复位时,输出为0,当有键按下,输出跳变为1,并保持。15秒内无键按下,则输出跳变为0,在15秒内有键按下,则输出一直保持高电平,且延时电路没有问题。
4.2整体指标测试
1. 按下“复位”键,看到数码管立即显示为0,用示波器测试74161、74164、74123的输出端全为低电平。说明手动复位功能正常。
2. 输入正确密码10001834后,按下“ENT”,看到绿灯亮。输入错误密码10001833后,按下“ENT”,看到红灯亮。
说明密码判断正确,且自动复位功能正常。
3. 复位后,按下第一位密码0,不再按任何键,15秒后,红灯亮。说明延时判断正确,并能报警,且能自动复位(程序CLR.D=!(RS#ENT#FAL))。
4.3测试结果
输入正确密码10001834后,按下“ENT”,看到绿灯亮。输入错误密码10001833货其他非正确密码后,按下“ENT”,看到红灯亮。
19
第五章、总结
5.1设计任务完成情况
几大指标:10进制开关输入
密码正确输入时开锁,绿灯亮;错误时红灯亮。
输入数字间隔小于15S时红灯亮
全部完成,且界面友好。
5.2问题及改进
问题1:测试时74123输出不稳定,时有跳变
原因:电源杂波较大,对电路的正常工作有较大干扰
改进:在74123的电源和地之间并接一个较大的电解电容(220u)。
注:用示波器观察电源电压,能明显看到很严重的杂波,则会引起数字电路工作异常,就会出现意想不到的错误,因此,为提高电路的稳定性和可靠性,在电路的电容和地之间应多加电容进行滤波。
问题2:机械式开关开关时会有抖动
改进:在开关处加入简易消抖动电路,电路如下
20
5.3心得体会
电工电子知识的学习离不开实验,实验能启发我们的思维,展现我们的个性,调动我们积极性,培养我们的动手能力和创造能力。 在得知我们有实验前,我就有些好奇,我们在实验课上会做些什么呢,会用到哪些实验器材呀,又将会有什么收获呢等一串串疑问不停地在我脑海里回荡。第一次接触电工电子实验,我对其有了一些了解,也在做了第一个试验后,我发现它似乎与我有了不解之缘,让我对其产生浓厚的兴趣。
“兴趣是最好的老师”,也是兴趣让我学会了好多好多的知识。 电路与电工实验属于基础性试验,主要是对其基本理论的验证,让我们学生通过基础性试验掌握基本的实验方法与实验技能,并具备观察现象的能力,未进行设计性、综合性实验打下基础。身为工科类学子,我们每个人都知道,无论做什么实验,参加试验者应该对实验内容进行预习,要明确实验目的要求,以避免盲目性。对于这几个实验,我们应严以律己,对自己要求要高,需提前掌握有关电路的基本原理,拟出试验方法和步骤,设计实验表格,对思考题做出解答,初步估算实验结果(包括参数和波形),做出预习报告。 预习报告,这个东西,是实验不可缺少的,他包括以下几个步骤:(1)实验目的 (2)实验设备 (3)实验原理 (4)实验内容 (5)注意事项 (6)实验报告。俗话说,“未来之事先有预兆”,想做好实验也得要预习呀!
一个小的实验就这么大的挑战,可知我们要想有能力解决大问题还得继续学习和不断努力!!
21