密码锁设计报告摘要:本系统是由键盘和报警系统所组成的密码锁。
系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。
关键字:数字密码锁 GAL16V8 28C64 解锁与报警1目录:一、系统结构与技术指标1、系统功能要求 (4)2、性能和电气指标 (5)3、设计条件 (5)二、整体方案设计1、密码设定 (6)2、密码判断 (6)3、密码录入和判断结果显示 (6)4、系统工作原理框面 (7)三、单元电路设计1、键盘录入和编码电路图 (8)2、地址计数和存储电路 (12)3、密码锁存与比较电路 (12)24、判决与结果显示电路 (14)5、延时电路 (15)6、复位 (17)7、整机电路图 (19)8、元件清单 (19)四、程序清单1、第一片GAL (21)2、第二片GAL (23)五、测试与调整1、单元电路测试 (25)2、整体指标测试 (26)3、测试结果 (26)六、设计总结1、设计任务完成情况 (27)2、问题及改进 (27)3、心得体会 (28)3一、系统结构与技术指标1.系统功能要求密码锁:用数字键方式输入开锁密码,输入密码时开锁;如果输入密码有误或者输入时间过长,则发出警报。
密码锁的系统结构框图如下图所示,其中数字键盘用于输入密码,密码锁用于判断密码的正误,也可用于修改密码。
开锁LED1亮表示输入密码正确并开锁,报警LED2亮表示密码有误或者输入时间超时。
开锁green 键盘密码锁错误red42.性能和电气指标2.1 开锁密码为8位十进制数字,由按键输入,按“确认”键后,输入的数字有效。
2.2 输入的8位数字与预设的密码相同时开锁,用绿灯亮,红灯灭表示。
数据有误时或输入的密码时间过长即报警,红灯亮。
2.3 输入的数字间隔时间小于或等于15s。
超过时限则报警,同时电子锁复位。
2.4 具有手动、自动复位功能。
3. 设计条件3.1 电源条件:稳压电源提供+5V电压。
3.2 可供选择的元器件如表1-1所示型号名称及功能74374 锁存器28C64 EEPROM 存贮器7485 4位比较器74161 4位二进制计数器74164 8位移位寄存器GAL16V8 可编程逻辑器件F555 定时器74123 可重触发器表1-1 器件单门电路、电阻、电容以及发光二极管自定。
二、整体方案设计1密码设定按照自己的学号设定密码,将密码预先存如28c64芯片中。
我的学号是10001823,写入28c64中的数据为01 0A 0A 0A 01 08 02 032密码判断通过4为比较器对预先存如的密码及手动在键盘上输入的密码逐个进行比较,把结果送入8为移存器进行结果判别3密码录入和判别结果显示6每输入一位密码,比较器就比较一次,并且把结果送如移存器进行移存,8位的比较结果送到GAL,判决是否正确,并开锁或报警。
设定密码时,每输入一位,计数器加一。
4系统工作原理框图整体方案如下:7三、单元电路设计1. 键盘录入和编码电路图由于键盘有0~9,而ROM中数据以十进制存储,则要将案件进行10进制到2进制的转换。
使用可编程逻辑器件GALl16V8,电路非常简单,连线少,比较实用。
将按键编号和输出四位二进制码相对应,列出真值表(表3-1)。
序号按键D0 D1 D2 D30 A0 1 0 1 01 A1 0 0 0 12 A2 0 0 1 03 A3 0 0 1 14 A4 0 1 0 05 A5 0 1 0 186 A6 0 1 1 07 A7 0 1 1 18 A8 1 0 0 09 A9 1 0 0 1根据真值表,用CUPL语言写出逻辑关系:D3=A0#A8#A9;D2=A4#A5#A6#A7;D1=A0#A2#A3#A6#A7;D0=A1#A3#A5#A7#A9;电路设计:每个键按下,产生一个高电平脉冲,并把按下的数字键译码输出9锁存时序图4. 判决与结果显示经过7485,只能比较密码的1位,使用移存器就能将比较结果先储存,经过8个脉冲周期后同时输出。
为节约GAL16V8的I/O 口,可使用一片7485,先将5位比较结果处理,剩下的三位接到GAL,再比较。
在密码全部输入后,要按下“确认”键,则GAL判断密码是否正确。
数据经7485等后,数据到达74164时,数据有一定的延时。
假如74164的时钟=CP,当第一的CP到来时,第一位的比较结果还没从7485出来,即第一位锁进的不是第一位的比较结果。
所以,1417图 3-6-2 74123工作时序在复位后,OT=0,开始输入后,当间隔时间小于15s 时,OT=1,当间隔时间大于15s 时,OT=0。
由于74123受控制较弱,所以在实际链接电路的时候增加了一块74161做触发器,使得触发稳定切周期不变。
6、复位复位功能包括手动复位和自动复位。
手动复位:清除输入密码,将所有寄存器归零。
则将74161、74164、74123、7474的清零端全部接在一起,复位键(RS )按下,GAL 清零端CLR 输出一个低电平脉冲,方程为:CLR=!RS 。
自动复位:如解锁完毕(即密码输入完成后,按下“ENT ” ),开锁或报警后,所有寄存器清零。
若将方程写成CLR=!ENT,此时是组合逻辑输出,一按下“ENT”,就复位了,此时报警结果还没输出,74164全零输入,则肯定会报警,失去密码锁判断的意义。
所以复位一定在正确解锁后开始,可以借助GAL内部的触发器来完成这个功能:CLR.D=!ENT。
GAL的时钟任为555的输出时钟,几hz的脉冲。
则在开锁后几百ms后复位,开锁是个瞬时动作即可。
为方程式的简洁,复位方程可表示为:CLR.D=!(ENT#RS),此时手动复位稍有延迟(ms级),在实际应用中,延时是完全可以忽略的。
187、整体电路8、所用元件清单本设计除了老师建议的一些芯片,我还使用了少量其他数字芯片,完成了要求外的一些指标,使用的芯片如下:19型号名称及功能数量74374 锁存器 128C64 EEPROM 存贮器 17485 4位比较器 174161 4位二进制计数器 274164 8位移位寄存器 1GAL16V8 可编程逻辑器件 2F555 定时器 1按键开关输入密码 274123 可重触发器 1LED发光二极管显示译码是否成功 1电容、电阻、导线若干,面包板一块。
20电子电路课程设计报告2121四、程序清单设计中使用2片GAL16V8,第一片主要用于译码,第二片主要用于控制。
1.第一片GAL功能:键盘解码,产生时序电路需要的CP及CP2管脚连接及命名:cp KEY0 KEY1 KEY2 KEY3 KEY4 KEY5 KEY6 KEY7 GND VCC OUT4 OUT3 OUT2 OUT1 CP1 KEY9 KEY8 CP2 GND电子电路课程设计报告2222Name : GAL23;Date : 2012-11-28;Revision : 1.3 ;Designer : ZHUZI;Company : NJUPT;/******INPUT********/PIN[1,11,12,15]=[CP,!OE,CP2,CP1];PIN[2,3,4,5,6,7,8,9,13,14]=[KEY0,KEY1, KEY2, KEY3 KEY4, KEY5, KEY6, KEY7, KEY8, KEY9];/******OUTPUT******/PIN[16,17,18,19]=[OUT1,OUT2,OUT3,OUT4];/******EQUATIONS*****/OUT4=KEY0#KEY8#KEY9;OUT3=KEY4#KEY5#KEY6#KEY7;OUT2=KEY0#KEY2#KEY3#KEY6#KEY7;OUT1=KEY1#KEY3#KEY5#KEY7#KEY9;CP.D=OUT1#KEY0#KEY2#KEY4#KEY6#KEY8;CP2=!CP;电子电路课程设计报告2323 /******END ****/2.第2片GAL功能:处理密码比较结果、延时判断处理、控制28C64的读写操作、开锁和报警输出、电路复位管脚连接及命名:Name : GAL23; Date : 2012-11-29; Revision : 1.3 ; Designer : ZHUZI;CP D1 D2 D3 D4 D5 D6 D7 D8 OTVCC RED GREEN RENTER RST DELAY OECompany : NJUPT;/******INPUT********/PIN[1,11]=[CP,!OE];PIN[2,3,4,5,6,7,8,9]=[D1,D2,D3,D4,D5,D6,D7,D8];PIN 12=DELAY;PIN 14=RENTER;PIN 13=RST;PIN 10=OT;/******OUTPUT******/PIN 15=GREEN;PIN 16=RED;/******EQUATIONS*****/Q=D1&D2&D3&D4&D5&D6&D7&D8GREEN.D=Q&ENTER;RED.D=!Q&ENTER/******END ****/24五、测试与调整1.单元测试10进制数字输入测试:先复位,再按住数字键,用示波器检测第一片GAL的19~16脚,打开1号开关即KEY0,检测到D0D1D2D3=0101,则译码正确,以此类推,输入0~9,GAL输出全部测试正确。
CP脉冲测试:将CP接到示波器一个通道观察,在有键按下时,观察到脉冲。
由低电平跳变至高电平,且cp1与cp2相反密码比较测试:1. 复位后,依次输入正确密码(10001823),用示波器观察第一片7485的第6脚,若全为高,则正确,8位密码输入完毕后,测试74164的移存输出脚,若全为1,则正确。
2. 输入错误密码1001822,7485在输入错误密码后,输出为0,且8位输入完毕后,74164的输出管脚中,第三脚为0,其余为1。
则电路没有问题。
25延时判断测试:1.用示波器观察74123的输出管脚第13脚,复位时,输出为0,当有键按下,输出跳变为1,并保持。
15秒内无键按下,则输出跳变为0,在15秒内有键按下,则输出一直保持高电平。
则延时电路没有问题。
2整体测试1.按下“复位”键,看到数码管立即显示为0,用示波器测试74161、74164、74123的输出端全为低电平。
说明手动复位功能正常。
2.输入正确密码10001823后,按下“ENT”,看到绿灯亮,输入错误密码07040400后,按下“ENT”,看到红灯亮。
说明密码判断正确。
3.复位后,按下第一位密码0,不再按任何键,15秒后,红灯亮。