实验日期:2009/12/23 实验室:229 座位号:4清华大学电子工程系电子技术实验报告数字实验四:密码锁电路实验班级:无86姓名:戴扬学号:2008011191实验日期:2009/12/23交报告日期: 2010/1/7一、实验目的(1)熟悉简单数字子系统的设计和实现方法。
(2)熟悉存储器、数据比较器的基本原理和使用方法。
(3)熟悉地址发生器的构成与设计。
二、实验任务设计、制作一个电子密码锁电路。
要求如下:(1)密码长度为6位(10进制)。
(2)在电路处于密码设置状态下,用户利用“输入键盘”设置自己选定的6为密码,并用一个LED管只是电路处于密码设置状态。
在电路处于开锁状态下,用户输入开锁密码,如果输入的开锁密码与用户设置的密码相同,锁开启(用一个LED管指示开启状态);如果输入的开锁密码与用户设置的密码不同,锁不开启,此时给出声音告警提示。
三、实验原理见《电子电路实验》229~232页。
另外,本实验加入了键盘编码的内容。
四、实验内容基本内容:1.设计并实现键盘的编码:其真值表为下表,条件是按键未按下时相对应的端口为0,按下时相对应的端口为“1”;注意:表中的“B”是作为教材中图6.22中的信号“B”使用。
输出3D2D1DDB未按 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 1 8 1 0 0 0 1 9 1 0 0 1 1 start 1112.地址产生:用字码管显示地址。
选做内容1:能将密码正确输入到存储器。
验收方法:用一个字码管显示地址,另一个字码管显示存储数据内容,将存储器处于写入状态,地址归零后在存储器中存入数据,存入数据后将存储器变为读出状态,再使地址归零,然后只连续按动键盘上的数字“0”使地址变化,观察所存数据是否正确。
选做内容2:正确比较密码的正误并进行指示。
选做内容3:全部密码锁的控制:密码正确时开锁,密码错误时锁死地址发生器并发出告警。
开锁用发光二极管显示,告警用发光二极管及实验箱上的蜂鸣器五、注意事项实验箱键盘说明:实验箱的右下角,有一个键盘阵列,共有0~9十个数字键盘和启动键及清除键0~9及启动键都有独立输出(常态为低电平,按下为高电平),值得注意的是:由于按键在没有按下时,相应的输出口对地接有一约5K的电阻,当该输出口皆有两个以上的TTL门电路时,必须在该端口对地并接一个1K的电阻。
由于实验学习机内部的编码片极易损坏,因此编码输出端无输出。
添加除颤电路的必要性:在按动数码按键时,其按键开关不可避免的会产生一些机械震颤,从而使输出端产生不规则的震颤脉冲输出,电路中必须要消除振颤脉冲的影响;对于数据输出端,只要在写入时刻,即使能端及读写控制端负脉冲到来时状态已稳定,对电路就不会产生影响,对于地址发生器的触发脉冲,按键按动时不能有振颤脉冲。
否则地址数据就要连续跳动。
为此在电路的“B”端必须加除颤电路,电路形式如下图。
充放电时间常数为≥10mS。
六、实验数据记录及处理电路图和仿真均由Multisim10完成。
本次试验无需记录数据,只须得到运行结果即可1、键盘编码电路:实际上需要设计一个编码器,将11个按键信号转成4位二进制数即可。
由于有了真值表,只须利用组合逻辑即可。
下图为一种键盘编码方法:97531975310K K K K K K K K K K D +∙++=++++=Kstart K K K K D ++++=76321 76542K K K K D +++= Kstart K K D ++=983Kstart K K K K K K K K K K B ++++++++++=9876543210其中0D ~3D 分别为编码器输出端的最低位到最高位,B 则为判断键盘按钮是否按下的信号。
另外,需要添加除颤电路,保证按键判定不会有干扰。
仿真电路图如下:仿真结果举例:按下按钮“3”:按下按钮“Kstart”:实验结果也与仿真相同。
由此可见,电路设计正确。
2、地址产生电路由于存储器需要频繁读写,因此,存储器的地址就要循环变动。
所以,地址发生器自然由计数器来实现,只须在计数器上加入清零电路,即可控制地址的变化和归零。
仿真电路图如下:由于实验要求有6位十进制密码和1位结束码,因此计数器为0~6循环,利用的是同步清零模式。
此模块由键盘电路的B信号,即按键判断信号触发。
在有按键按下时,B信号会产生一个上升沿和一个下降沿,但是为了保证数据有效,必须在按键松开后,计数器才能触发。
因此,需要在B信号后接一个反向器。
实验结果如预期。
3、数据存储模块本实验的数据存储需要用到存储器,具体来说,就是2114芯片,但是由于仿真器件问题,使用6116芯片来代替,具体特性相似。
由于存储器的使用的是输入/输出端口,因此需要在I/O端接上三态缓冲门,保证数据写入和读取的可靠性。
在存储器的~WE端为低电平时,存储器处于可写状态,此时三态门处于接通状态,~EN端也为低电平;当~WE端为高电平时,存储器为读取状态,此时三态门将要断开,~EN端需要变为高电平。
因此,将三态门的使能端与存储器的读写控制端一同连入一个电平开关控制读写。
另外,存储器的地址段接入地址发生器的输出。
仿真电路图如下:4、延时电路存储器单元的存贮内容取决于输入数据由有效过渡到无效的那一“时刻”的状态。
为保证地址变化时存储器能正确存入数据,必须在地址移位脉冲通道加入一个延时电路,使输入数据稳定后地址再变化,即存储器使能完毕后地址变化,将输入的数据正确地写入存储器。
延时电路使用了D触发器实现,根据时钟的频率高低来确定延时长短。
仿真电路如下:通过图示电路,可以做到,在按键一直按下的过程中,可以令~CS 端由1变为0,再变为1。
当~CS端变回1之后就可以松开按键,一次使能结束。
5、数据比较电路密码锁必须能够做到判断输入密码的正误,因此需要进行数据比较,即输入数据与存储数据的比较。
实验采用了数据比较芯片74LS85芯片。
74LS85可以将两组4位二进制数进行逐位比较大小,并且最终输出两个二进制数的比较结果。
另外,85芯片还有级联进位输入端,在实验中需要将低位相等输入接高电平,低位不等的两个输入接低电平。
数据比较器的两组数据输入正好可以分别接到三态门的输入端和输出端,即可比较键盘输入数据和已存储数据。
仿真电路如下:此外,电路还必须做到,密码输入错误时锁死地址发生器。
设计思路是,使地址发生器中的计数器的时钟端始终维持某一个电平,一旦没有时钟跳变沿,计数器便不会触发,地址发生器也就锁死了。
由于计数器的时钟是由键盘电路的B信号充当的,因此需要加上一个与门,一端接上B,另一端接入数据比较电路的D触发器。
当数据比较结果为错误时,使D触发器的输出恒为0,即可锁定时钟。
设比较器的输出为~X,那么有:Qn+1=X+Qn=~[(~x)·(~Q)],这就是触发器的输入表达式。
实验结果如预期。
6、结束码检测电路实验要求输入密码后需要有一个结束码,当检测到结束码后,电路才能开锁。
实际上,这是“第7位密码”。
可设置一个D触发器,在通过一定的组合逻辑,做到:当输入结束码前,D触发器的输出为0,输入后,D触发器的输出变为1。
若输入密码出现错误,地址发生器会锁死,则电路永远检测不到结束码,也就不能开锁。
设存储器的输出从高到低是DCBA,令X=D(~C)B(~A),则有:Qn+1=X+Qn=~[(~x)·(~Q)],这就是触发器的输入表达式,如果检测到结束码,Q为1,否则为0。
仿真电路图如下:7、开锁、报警电路本部分电路十分简单,只需要做到按下开锁键后进行选择性的输出即可。
开锁部分和报警电路分别利用一个D触发器实现。
输入端分别接入结束码检测电路的D触发器的Q和~Q端,利用开锁按键带来的电平变化产生的时钟沿触发即可。
仿真电路图如下:8、整体电路整体电路只需要将各部分模块进行组合即可,仿真电路图如下:电路整体清零:输入密码:6 5 4 3 2 1 Kstart进行开锁:密码错误,地址锁死:仿真结果符合预期。
实际实验结果与仿真结果相同,故电路设计正确。
七、实验分析与总结1、总结调试中所遇到的问题及解决方法这次实验的电路非常复杂,用到的元件,接线量也非常大。
在接线时需要小心。
我由于粗心,接错了两根导线,导致结果不正确,花费了大量时间检查。
另外,要注意仿真软件与实际元器件特性的差别。
比如74LS161芯片,在仿真软件中是下降沿触发,而在实际中是上升沿触发,在实验时需要多注意。
八、思考题解答1、若用户用一组密码开锁,管理者用另一组密码开锁,这样的密码锁电路将如何设计?请给出设计方案。
答:该电路实现起来非常容易,只须在原电路的基础上加上一个电平开关,接入存储器的第五位地址即可。
原理是,将原来的4位地址变为5位地址,用户密码利用00000~00111地址存储,管理员密码利用10000~10111地址存储,电平开关为高时转换为管理员模式。
仿真电路图如下:仿真结果如下(注意存储器的数据):用户密码为111111,管理员密码为123456经仿真,可以实现管理员用另一组密码开锁。
事实上,只要存储器的字数足够,可以实现任意个密码开锁。
2、如果要求不使用存储器设计一个家用密码锁电路,请画出电路的原理框图,简略地解释其工作原理。
答:如果不使用存储器,最简单的方式就是使用D触发器来储存数据,但是这样需要大量的触发器。
因此我想到使用移位寄存器来解决这个问题。
我是用了4个4位移位寄存器,这样可以储存4位的十进制密码。
如电路图,移位寄存器堆的每一列数据代表一个十进制数码。
根据同步时钟,移位寄存器向右移动一位。
移动4次,即可将所有4位密码储存下来。
在设置密码时,移位寄存器的输入端接入键盘电路,在开锁时,移位寄存器的输入端接入最右端输出,这样,在开锁时,只须比较键盘输入与寄存器的最左端即可。
利用74LS85比较器的输出端作为74LS161计数器的时钟,当计数器记到4时,利用组合逻辑输入到开锁信号和报警信号。
仿真电路图如下:仿真结果:输入密码:9876开锁:密码错误:附接线图:。