东南大学电工电子实验中心
实 验 报 告
课程名称: 数字逻辑电路设计实践
第 四 次实验
实验名称: 基本时序逻辑电路 院 (系): 专 业: 姓 名:
学 号:
实 验 室: 实验组别: 同组人员: 实验时间:09 年 11 月26 日 评定成绩: 审阅教师:
时序逻辑电路
一、 实验目的
1. 2. 3. 4.
掌握时序逻辑电路的一般设计过程;
掌握时序逻辑电路的时延分析方法,了解时序电路对时钟信号相关参数的基本要求; 掌握时序逻辑电路的基本调试方法;
熟练使用示波器和逻辑分析仪观察波形图,并会使用逻辑分析仪做状态分析。
二、 实验原理
1. 时序逻辑电路与组合逻辑电路的区别:有记忆功能,其任意时刻的输出不仅取决于当时
的输入信号,还取决于电路原来的输出值。 2. 时序逻辑电路的基本单元:触发器
常用时序功能块:计数器,移位寄存器
用其构成任意进制计数器,序列发生器,分频器等,多种方法组合运用,同步异步 3. 状态机的实现 实质:状态循环+编码
三、 实验内容
1. 广告流水灯
a. 实验要求
用触发器、组合函数器件和门电路设计一个广告流水灯,该流水等由8个LED组成,工作时始终为1暗7亮,且这一个暗灯循环右移。
① 写出设计过程,画出设计的逻辑电路图,按图搭接电路。 ② 将单脉冲加到系统时钟端,静态验证实验电路。 ③ 将TTL连续脉冲信号加到系统时钟端,用示波器和逻辑分析仪观察并记录时钟脉冲
CLK、触发器的输出端Q2、Q1、Q0和8个LED上的波形。 b. 实验数据 ① 设计电路。
设计过程:
设计时注意到“工作时始终为1暗7亮,且这一个暗灯循环右移”该句,可知用计数器实现,因为计数器的最基本功能是计数,而计数的充要条件是有一个状态循环,不同的计数器只是状态循环的长度(模)和编码排列不同。该题中共有八个状态,所以需要
ln823
个触发器实现,又需要输出八个信号控制LED,所以可用组合函数器件中的3线-8线译码器实现。
设计时先画出其状态循环如下所示:
Q2Q1Q0
000 001 010
110 111 101
状态转换真值表:
某一方格的坐标代表现态,方格内所填内容代表次态和即刻输出。 Q1Q0 Q2 0 1 00 001 101 n1n1n1Q2Q1Q0
011 100 01 010 110 11 100 000 10 011 111 Q1Q0 Q2 0 1 0 1 0 1 1 0 0 1 00 01 11 10 Q2n1
n1Q2Q2Q1Q2Q0Q2Q1Q0Q2(Q1Q0)Q2Q1Q0Q2Q1Q0Q2Q1Q0Q2Q1Q0n1n1同样 ,分别画出Q1Q0的真值表化简可得:
Q1n1Q1Q0Qn10Q0
n1由D触发器的状态方程QnD2Q2Q1Q0Dn知计数器中三个触发器的逻辑方程分别为:
D1nQ1Q0D0nQ0
(其实本题求各级触发器的状态方程时,不用这么繁琐地化简。既然已经想到了用计数器实现,由书上P107页可知,同步二进制计数器的各级触发器状态方程,即可直接设计,不用
自己重新化简寻找规律,可见,在设计时首先明确设计目的,确定所需用的器件,在充分掌握设计思想的同时,能记住基本常用器件的状态方程等特点,能为我们在设计时节省不少时间。)
所以设计电路如下所示:
② 静态验证(自拟表格)
将单脉冲加到系统时钟端,验证结果如下所示:
Q2,Q1,Q0分别表示触发器的输出。1表示二极管亮,0为灭。
分析:
从静态验证的真值表上可看出该电路的确实现了由8个LED组成广告流水灯,工作时1暗(0)7亮(1),且这一个暗(0)灯循环右移。
③动态验证
将TTL连续脉冲信号加到系统时钟端,用示波器和逻辑分析仪观察并记录时钟脉冲CLK、触发器的输出端Q2、Q1、Q0和8个LED上的波形。
示波器观察如下:
某一LED输出波形 CLK
逻辑分析仪观察图像如下:
波形记录:D0:CLK D1 D2 D3:Q0 Q1 Q2 D5~D7 D11~D15:L0~L7
(图中D12波形有误,但是该波形是在前状态测量之后所截,理应正确,可能是在截时不小心碰到某输入端造成,实验时没有注意。)
LED0至LED7信号灯的输出如下图:
下图为三个触发器,一个灯信号和时钟的信号输出对比:
2. 序列发生器
a. 实验要求
分别用MSI计数器和移位寄存器设计一个具有自启动功能的01001序列信号发生器。 ① 写出设计过程,画出电路逻辑图。
② 搭接电路,并用单脉冲静态验证实验结果。
③ 加入TTL连续脉冲,用双踪示波器和逻辑分析仪观察并记录时钟脉冲CLK、序列输出端的波形。
b. 实验数据 ① 设计电路。
一:用MSI计数器实现: 设计过程:
由书P135页知:用计数器和组合网络可以比较简单直观的设计各种序列发生器。有题目知需设计01001的序列信号发生器,因此可直接利用书上的设计方案,用71LS161反馈置零构成,且不需考虑自启动问题。 由于书上产生的是01011序列,可以把Z输出的第四个改为0重新设计,根据状态转换表得到状态方程,选择相应的组合电路器件实现。
第二种方案有点讨巧。注意到01001实际是10110(即书上的01001)的反,因此在书上的输出再接一非门即可实现。
实现电路逻辑图:
二:移位寄存器实现: 设计过程:
由书P142可知:在移位寄存器的基础上增加组合反馈网络可以构成序列发生器。设计时需要根据要求产生序列信号,同时考虑自启动功能,列出其应有的状态转换表,再根
据状态转换的要求,推导出对移位寄存器输入端D0及功能控制端的取值要求,在经过卡诺图化简选择相应器件实现。
② 静态验证(自拟表格)
用单脉冲静态验证实验结果:
计数器验证结果: 移位寄存器验证结果:
分析:从表中可知,两种方案都实现了01001的序列发生。
③ 动态验证
加入TTL连续脉冲,用双踪示波器和逻辑分析仪观察并记录时钟脉冲CLK、序列输出端的波形。
波形记录:
示波器双踪显示:
分析:对比前面示波器观察结果,本次观察时钟信号频率为3.333KHz,相比前流水灯的12.5KHz来说,时钟信号频率变化比较小,因此试验中也观察到图像是不断移动的,前流水灯是先移动一段时间,后逐渐趋于稳定。此外,本题产生序列01001,不像流水灯那样是11111110,所以信号变化不容易稳定。 所以把时钟信号加大即可:
逻辑分析仪观察结果:
计数器实现:
移位寄存器实现:
3. 分频器
a. 实验要求
设计一个分频器。要求将频率为32768Hz的方波信号变成32.768Hz的方波信号,其中32768Hz的方波信号需要自己通过电路产生。 ① 根据实验要求,拟出设计方案。
② 根据设计方案选择器件,并查阅所用器件的功能表和引脚图。 ③ 写出设计过程,画出电路逻辑图和实验接线图并标出引脚号。
④ 用逻辑分析仪观察时钟脉冲CLK和各计数器输出端的波形。
⑤ 用逻辑分析仪对时钟脉冲CLK和各计数器输出端的信号做状态分析。 b. 实验数据 ① 设计电路。
1>32768Hz的方波信号的产生
联想到前面第二章们电路动态特性测试中的选做3,和书上p116用门电路构成的多谐振荡器,设计如下:
T=1.4RC=1.4*1000*22*10^(-9)=3.08*10^(-5) F=1/T=32.468KHZ 符合要求
2>本题要求将频率为32768Hz的方波信号变成32.768Hz的方波信号,可见是实现1000分频。综合器件数,电路连接,输出波形等因素的考虑,最终选择250*2*2=1000方案。即先用74161实现250分频,再用两个D触发器分别实现二分频,最终输出占空比为50%的频率为32.768Hz的方波信号。
分频器是计数器的一种形式,计数器的状态数或模数就是分频器的分频系数N.所以要实现一个模250的计数器,可用两片74161级联实现,状态从00000110到11111111。用D触发器使输出信号占空比为50%。
实现电路如下所示:
② 静态验证(自拟表格)
分析:由于本实验用GW2000观察时时间灵敏度不够,因此不能同时捕捉到时钟信号,三个输出端信号在一个周期内的关系(从下面的波形图可以看出),但能从图上猜测出它的整体波形,(因为理论上应是先250分频,再二分频实现500,再在其基础上实现1000分频)
如果做静态验证,状态分析需要手动输入单次脉冲,而第一个信号输出(图中V0)就是时钟信号的250分频,要想在这么多数中去捕捉,甚至看出它实现了250分频是几乎不可能的。因此,只能用GW2000的动态波形做定性的分析,要想从整体上看出四个信号(CLK,V0,V1,V2)之间的关系,还需借助另一台逻辑分析仪。
③ 动态验证 波形记录: GW2000观察:
从GW2000显示波形可看出,虽然不能从整体上看出电路实现的分频功能,但从图中我们还是可以大致推断出电路实现的功能的,尤其是V0和V1 的对比,可知,第一个触发器的确实现了二分频功能。而从整体上说明电路实现了1000分频则可以从下面大的逻辑分析仪所显示波形证明。
V2(再次二分频) V1(二分频) V0(250分频) CLK
状态分析:没看懂额。。。
4. 行列式键盘识别电路
a. 实验要求
设计一个电路,当按下4×4矩阵键盘中的任何一个键时,在数码管上显示相应的键值。其中键码可通过ROM查表的方式来实现,数码管可选择是BCD输入还是七段输入,实验箱上的4×4键盘上拉电阻已经在内部连接好。 ① 根据实验要求,拟出设计方案。
② 根据设计方案选择器件,并查阅所用器件的功能表和引脚图。 ③ 写出设计过程,画出电路逻辑图和实验接线图并标出引脚号。 ④ 用逻辑分析仪观察时钟脉冲CLK和各计数器输出端的波形。
⑤ 用逻辑分析仪对时钟脉冲CLK和各计数器输出端的信号做状态分析。 b. 实验数据 ① 设计电路。
考虑到该电路分以下几个阶段组成,故分开分别设计:
对行线轮流加低电平信号,即行线的值在”1110”、”1101”、”1011”和”0111”之间循环变化 。
194构成4位环形计数器实现。书P141 能自启。
无键按下时,列线的值等于”1111”; 有按键按下,列线的值将不等于”1111”。 四输入与非门,有一个变输出即变化。
检测电路检测到这个变化后,输出一个控制信号,使行线的扫描暂停 。
控制信号(前与非门输出)改变194使能端S1(S0),使194处于保
持状态,扫描停止。
将行线和列线共同组成的8位码送入到译码电路进行译码,获得键值 。 将行信号和列信号输出译码 。 其他: 1>消抖:
人按键的时间不会低于0.1S,而抖动产生的脉冲小于10mS,选择合适的时钟频率(100Hz),使抖动的影响被限制在一个时钟周期内,可准确识别两次按键动作。
同步消抖电路:
DSETQCLRQ将此电路接到与非门输出端作为经过消抖后的161的时钟输入。 2>锁存:
按动按键的时刻和按下的时间长短都是随机的,所以必须对行线和列线组成的八位码进行寄存。(161)
检测到改变时才需输出译码,所以同样由前与非门输出的控制信号控制161的工作(CLK),即当列线不等于1111时,才开始寄存操作。
3>等待
列线检测信号刚出现瞬间,编码输出是不稳定的,必须经过一段时间的延时,方可送入寄存器。此延时时间要保证行和列信号的变化皆达到稳定值,但也不可太长,以免信号丢失。
考虑到这样的目的其实和消抖一样,都是为了使送入译码电路的值准确,故将前与非门输出的控制信号经过74消抖后的输出作为寄存器的时钟控制其工作,则可达到等待的效果。这里是等信号稳定了再送入寄存,原则上讲也能达到和书上要求的效果。 4>ROM编码
如下所示为4*4行列式键盘原理图:
实际电路箱上的安排和上面有略微区别,第一位是0,依次往下。 下图为我的编码图:实际编时发现试验箱上的行线和列线也是反的。
② 静态验证(自拟表格)
在输入端加单脉冲,A7~A4为行(实际试验箱中的列);A3~A0为列(实际的行)。
分析:从A3~A0可看出,扫描电路正常工作,值在1110,1101,1011,0111间变化。 每按下一个值,R3~R0便不再等于1111.
③ 动态验证 波形记录: 按下5:10111011
A3~A0(行) A7~A4(列) CLK
按下8键:01111101
按下9:
相应列行信号为10111101
电路图比较复杂 手画的,自行车里
选做实验: 1. 序列检测器 a.实验要求
用触发器设计一个1011序列检查器,要求电路对串行输入序列进行检测,当连续检测到4个码元符合检测器的检测码1011时,检测器输出为1(注意:前一个1011序列的最后一个码元不能作为本次1011序列的第一个码元)
① 使用静态(单步)的测试方法,画出图4.4.1所示的输入、输出时间关系图。
CLKXZ
② 对串行输入序列101101101101010011011进行检测,记录检测结果。 b. 实验数据 ① 设计电路。
设计思路: ① 设计电路。
设计八个状态,并且为八个状态编码。
A 000 B 001 C 010 D 011 E 100 F 101 G 110 H 111
根据所需要实现的功能,可得出下面的状态表:
现态 A B C D E F G H 次态 X=0 A C E G A C E G X=1 B D F H B A F H 输出 X=0 0 0 0 0 0 0 0 0 X=1 0 0 0 0 0 1 0 0 由上表可得出A=E,D=H,C=G再化简得出B=D,最后只剩四个状态A,B,C,F Q1Q2 A B C F 00 01 10 11
列出真值表: 现态 X 0 0 0 0 1 1 1 1 Q1n 0 0 1 1 0 0 1 1 Q2n 0 1 0 1 0 1 0 1 次态 Q1n+1 0 1 0 1 0 0 1 0 Q2n+1 0 0 0 0 1 1 1 0 输出 Z 0 0 0 0 0 0 0 1 根据真值表可以知道
Z,Q1n+1,Q2n+1为X,Q1n,Q2n三个变量组成函数的最小项的值。所以可以利用一个138译码器,将Q2n ,Q1n,X接到译码器的A0A1A2,然后将他们对应的最小项为1的项取出来与非就可以实现所要求的功能。
② 静态验证 (自拟表格) 分析:
现态 A B C D E F G H
③ 动态验证 波形记录:
次态 X=0 A C E G A C E G X=1 B D F H B A F H 输出 X=0 0 0 0 0 0 0 0 0 X=1 0 0 0 0 0 1 0 0 四、思考题
1、 一个12进制加法计数器和一个12分频器有何区别? 答:12进制加法计数器有进位输出,而12分频器没有进位。
2、 用逻辑分析仪观察内容2中的波形时,为了能观察到输出信号的一个周期,应选择
何种触发方式比较好。
答:应选择触发开始跟踪方式。这种跟踪方式在遇到触发字时开始跟踪(存储)数据流;当存储器满数据时就停止跟踪,因而在分析仪的存储器内存储了触发后的数据,触发字位于存储器队列的最前面 ,他显示在显示器的第一列,因此只要设定了合适的触发字,当逻辑分析仪识别出被测数据流中的触发字后就开始采集并存储在观察窗口内的数据。
因篇幅问题不能全部显示,请点此查看更多更全内容