电子电路课程设计密码锁.doc
《电子电路课程设计密码锁.doc》由会员分享,可在线阅读,更多相关《电子电路课程设计密码锁.doc(21页珍藏版)》请在沃文网上搜索。
1、 密码锁设计报告 摘要:本系统是由PLD、EEPROM、LED显示、键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、修改用户密码、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。关键字:数字密码锁 GAL16V8 28C64 解锁与报警目录:一、 技术指标1、 系统功能要求 32、 系统结构要求 33、 电气指标 34、 设计条件 3二、 整体方案设计 4三、 单元电路设计1、 键盘录入 52、 键盘消抖电路 63、 计数与显示 84、 密码比较 85、 密码判断 96、 超时判断 107、 修改密码 118、 复位 12四、 整体电路和整机元件清单1、 整体电路 13
2、2、 所用元件清单 13五、 程序清单1、 第一片GAL 142、 第二片GAL 15六、 测试与调整1、 10进制数字输入 162、 CP脉冲 163、 密码比较 174、 延时判断 175、 程序测试(整体测试)17七、 设计小结1、 设计任务完成情况 182、 问题及改进 183、 心得体会 19一、技术指标1. 系统功能要求 密码锁:用数字键方式输入开锁密码,输入密码时开锁;如果输入密码有误或者输入时间过长,则发出警报。2. 系统结构要求密码锁的系统结构框图如下图 1-1 所示,其中数字键盘用于输入密码,密码锁用于判断密码的正误,也可用于修改密码。开锁LED1亮表示输入密码正确并开锁,
3、报警LED2亮表示密码有误或者输入时间超时。密 码 锁开锁LED1数字键盘输入密码报警LED2图1-1 密码锁系统结构框图3. 电气指标3.1 开锁密码为8位十进制数字,由按键输入,按“确认”键后,输入的数字有效。3.2 输入的8位数字与预设的密码相同时开锁,用绿灯亮,红灯灭表示。数据有误时或输入的密码时间过长即报警,红灯亮。3.3 密码可以通过键盘设定或修改。3.4 输入的数字间隔时间小于或等于15s。超过时限则报警,同时电子锁复位。3.5 具有手动、自动复位功能。4. 设计条件4.1 电源条件:稳压电源提供+5V电压。4.2 可供选择的元器件如表1-1所示型号名称及功能74374锁存器74
4、74D触发器28C64EEPROM 存贮器74854位比较器741614位二进制计数器741648位移位寄存器GAL16V8可编程逻辑器件F555定时器74123可重触发器表1-1 器件单门电路、电阻、电容以及发光二极管自定。二、整体方案设计 设计原理整体方案如下: 控制读写报警存储器地址数据判断控制比较器移存器开锁译码,CP 延时判断定时器clock数据cp按键次数显示输出出计数器按键输入图2-2 密码锁的工作原理框图由以上框图可知,当按下数字键0、1、2、3、4、5、6、7、8、9后,编码器逐一进行十二进制编码,此时产生按键信号。按键信号经计数器,产生存储器的地址信号。解锁时,存储器中相应
5、的数据输出与输入的密码经比较器比较后,将结果存入移存器。8位的比较结果送到GAL,判决是否正确,并开锁或报警。设定密码时,每输入一位,计数器加一,则可依次修改。三、单元电路设计1. 键盘录入 由于键盘有09,而ROM中数据以十进制存储,则要将案件进行10进制到2进制的转换。使用可编程逻辑器件GALl16V8,电路非常简单,连线少,比较实用。 将按键编号和输出四位二进制码相对应,列出真值表(表3-1)。序号按键D0D1D2D30A010101A100012A200103A300114A401005A501016A601107A701118A810009A91001表 3-1 按键编码真值表根据真
6、值表,用CUPL语言写出逻辑关系:D3=A0#A8#A9;D2=A4#A5#A6#A7;D1=A0#A2#A3#A6#A7;D0=A1#A3#A5#A7#A9; 电路设计:每个键按下,产生一个高电平脉冲,并把按下的数字键译码输出:图3-2键盘输入为保护电路,接入排阻。2. 键盘消抖电路机械键盘在使用过程中会产生机械抖动,即会产生多个脉冲信号(有稍高频的毛刺),使输出的时钟不稳定,影响后级工作。可让CP触发输出,消除高频毛刺。由于密码通过机械开关输入,频率很低(因本次实验提供的开关不大方便操作,一般按键频率不大于1hz),则触发低频略高即可,取510hz即可。用F555做定时器,设计电路如下:图
7、3-2-1 555定时电路555定时器的频率表达式为:f=1.43/((RA+2RB)*C)。取RB=3K,RA=2K,C=220u,测试得f=7.1hz,能达到要求。将clock接至G16V8的1脚,且使用触发输出:CP.D=A0#A1#A2#A3#A4#A5#A6#A7#A8#A9,此时在每次键按下时都会产生一个脉冲,且消除了毛刺。(注:GAL的一个函数表达式中或项不能超过7个,所以可写成CP.D=D0#A0#A2#A4#A6#A8,这样既满足条件,又节省了GAL的管脚资源。)消抖效果图如图3-2-1所示:CPIN为含毛刺的输入信号(因抖动,产生一些不正常的高频信号)GAL的时钟为CLOC
8、K,为110hzCPIN.D为消抖输出从图中看出,在D触发输出后,毛刺被有效去除了。图3-2-1消抖效果图3. 计数与显示将CP送入计数器,得到的是按键次数,也是ROM的地址信号。因8位密码较长,使用者在输入时可能忘记已输入密码的位数。为构建更好的人机界面,将计数结果用7448译码,用7段数码管输出。电路如下:图3-3 计数与显示编码器采用7448,为正常输出结果,使用共阴的数码管。4. 密码比较由于CP信号对于按键稍有延迟,如将按键的译码与从ROM中取出的数据进行比较,则会出错,所以在比较器之前加一级锁存器,在时钟CP的控制下,此时才能实现输入密码与原有密码的对应位同时到达比较器。电路如下:
9、图3-4-1 密码比较重要时序分析:密码锁从清零开始工作:当按下第一位密码时,按键的译码立即输出,CP滞后输出,在CP的上升沿,74374锁存器开始工作,锁入数据,此时送到锁存器口数据是键盘输入的译码和ROM地址0000(B)的数据,并不是地址0001的数据。所以在ROM中存入数据从地址0开始。时序如下图所示:图3-4-2 锁存时序图5. 密码判断经过7485,只能比较密码的1位,使用移存器就能将比较结果先储存,经过8个脉冲周期后同时输出。为节约GAL16V8的I/O口,可使用一片7485,先将5位比较结果处理,剩下的三位接到GAL,再比较。在密码全部输入后,要按下“确认”键,则GAL判断密码
10、是否正确。数据经7485等后,数据到达74164时,数据有一定的延时。假如74164的时钟=CP,当第一的CP到来时,第一位的比较结果还没从7485出来,即第一位锁进的不是第一位的比较结果。所以,锁存的时钟应比CP慢,可以定义CP2=!CP,此时,CP2比CP的上升沿晚的时间就是手按键的时间。从而保证锁存8次后输出的就是8位的比较结果。图3-5 8位密码比较结果处理假如输入正确密码,并按下确认键,则成功开锁。6. 超时判断指标要求当输入的数字间隔小于或等于15s时超时报警。设计采用74123可重触发器和7474 D触发器配合程序控制。电路图如下: 图3-6-1 74123可重触发器B端输入,O
11、T触发输出。tw=15s,tw=0.45RC,则设定R=150K,C=220u,则计算得出tw=14.8s。若要提高15s计时精度则选取更精确得电容和电阻,且系数0.45可能有相应更正。74123工作时序如下:图 3-6-2 74123工作时序在复位后,OT=0,开始输入后,当间隔时间小于15s时,OT=1,当间隔时间大于15s时,OT=0。 图3-6-3 D触发器 D=1,复位后输出KIN=0,当有键按下,在CP的第一个上升沿,KIN输出恒为1,直至下个复位信号。即KIN为有键按下的标记位。将OT和KIN信号送给GAL,则可得出输入延时的判断表达式:F2=!OT&KIN。7. 修改密码密码存
12、储在EEPROM中,修改密码,就是对28C64中的数据进行修改。28C64共有8K*8的存储容量。而本次密码锁需要的存储空间仅需8位*4b。其实是一个巨大的浪费。28C64有13根地址线(A0A12)和8根数据线(D0D7),为操作方便,将A3A12、D4D7全部置零。则数据存储在前8个单元。地址线与74161的输出相连。数据线从GAL的译码输出读出数据。因在进行密码比较时,要将GAL的译码数据和ROM中数据相比较,则GAL与ROM不能直接相连,可在之间加上模拟开关CD4066进行隔离。4066仅在修改密码时将GAL和ROM相连。具体连接电路如下:图3-7-1 28C64连接图具体逻辑分析:修
13、改密码:对28C64进行写操作,手册参考时序如下:图3-7-2 28C64写时序因GAL不能控制复杂的时序,所以修改密码时,操作比较繁琐。将 CE=0(一直工作),RO=1(输出禁止),CON=1(使GAL数据与28C64连接)。按下第一位密码,复位后,地址为0,然后按下“设置”键 ,通过GAL,给RW(低脉冲,写入数据),此时第一位密码就修改成功了。然后按下第二位密码,按下“设置”,依次设置8位密码。 当密码设置完成后,RO=0,CE=0,RW=1(写入禁止),为正常工作状态。8. 复位 复位功能包括手动复位和自动复位。手动复位:清除输入密码,将所有寄存器归零。则将74161、74164、7
14、4123、7474的清零端全部接在一起,复位键(RS)按下,GAL清零端CLR输出一个低电平脉冲,方程为:CLR=!RS。自动复位:如解锁完毕(即密码输入完成后,按下“ENT” ),开锁或报警后,所有寄存器清零。若将方程写成CLR=!ENT,此时是组合逻辑输出,一按下“ENT”,就复位了,此时报警结果还没输出,74164全零输入,则肯定会报警,失去密码锁判断的意义。所以复位一定在正确解锁后开始,可以借助GAL内部的触发器来完成这个功能:CLR.D=!ENT。GAL的时钟任为555的输出时钟,几hz的脉冲。则在开锁后几百ms后复位,开锁是个瞬时动作即可。为方程式的简洁,复位方程可表示为:CLR.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子电路 课程设计 密码锁