8421码检测电路的设计.docx
《8421码检测电路的设计.docx》由会员分享,可在线阅读,更多相关《8421码检测电路的设计.docx(12页珍藏版)》请在冰豆网上搜索。
8421码检测电路的设计
数字电路与逻辑设计实验报告
实验九8421码检测电路的设计
姓名:
_________
学号:
17XXXXXX
班级:
电子XXXX
一、实验目的
1.了解检测电路的工作原理。
2.进一步掌握同步时序电路的设计方法。
二、实验器件
1、实验箱、万用表、示波器。
2、74LS73,74LS74,74LS00,74LS20,74LS197。
三、实验预习
根据使用器件的不同,我们可以设计出两种不同思路的电路.
米里时序电路:
根据需求,按照米里时序电路的设计流程得到触发器驱动方程.
首先画出状态转换图,并对图做出适当简化.
保留S0,S1,S3,S4,S7,S8六个状态,并用3个JK触发器的2^3=8个状态中的6个表示它们,状态分配表如下图.
Q3\Q2Q1
00
01
11
10
0
S0
S4
S3
S1
1
S7
S8
X
X
将上面的状态转换和输出写成上述的代数形式有
Q3Q2Q1\X
0
1
000
010/0
010/0
010
011/0
001/0
011
101/0
100/0
001
100/0
100/0
101
000/0
000/0
100
000/0
000/1
根据上表画出Q3,Q2,Q1,X的次态卡诺图,并进而得到各个端口的驱动方程.
Q1:
XQ3\Q2Q1
00
01
11
10
00
0
0
1
1
01
0
0
X
X
11
0
0
X
X
10
0
0
0
1
化简得到Q1n+1=Q2nx——Q——1n+——XxQ2nxQ1n
有J1=Q2,K1=(——XQ2)’
Q2:
XQ3\Q2Q1
00
01
11
10
00
1
0
0
1
01
0
0
X
X
11
0
0
X
X
10
1
0
0
0
化简得到Q2n+1=——Q——1nx——Q——2nx——Q——3n+——XxQ2nx——Q——1n
有J2=——Q——1nx——Q——3n,K2=(——Xx——Q——1n)’
Q3:
XQ3\Q2Q1
00
01
11
10
00
0
1
1
0
01
0
0
X
X
11
0
0
X
X
10
0
1
1
0
化简得到Q3n+1=——Q——3nQ1n
有J3=Q1n,K3=1
F:
XQ3\Q2Q1
00
01
11
10
00
0
0
0
0
01
0
0
X
X
11
1
0
X
X
10
0
0
0
0
化简得到F=XQ3n——Q——1n
这样,就能使用三个JK触发器构造一个8421码检测电路,为保证正确性还可以添加一个74LS74触发器来保证X已经转变.
用于仿真时的动态测试,我们还需要一种16进制的串行输出计数器,即按顺序串行输出0000->1000->0100…,对每个数从最低位开始,依次输出4个二进制数.
我们可以借助计数器和寄存器实现该器件,首先使用一个计数器实现4分频,从已有的f频率,50占空比的时钟信号中获取f/4频率的,12.5占空比的同相位脉冲信号.再使用这两个时钟循环地执行计数->4次移位读数->置数的工作,画出电路图如下所示.
其输出波形的一个周期如下面的波形图所示:
靠上信号为器件输出,靠下信号为时钟脉冲,容易看出经过64个时钟周期,器件输出了从0000到1111的串行形式.
把该输出作为8421检测电路的输入X,得到电路图如下.
其波形如下所示:
可见在一整个0~15的序列中,只有6种数字引起了电路的非法脉冲,分别是1010,1011,1100,1101,1110,和1111,仿真时由于给定时钟信号的固有问题,无法从S0状态开始检验,但仍然不影响我们仿真验证的完备性.
摩尔型时序电路
摩尔时序电路无需考虑输入,输出和状态之间的关系,我们只需要使用寄存器和计数器来收集输入的信号,并进行逻辑运算即可.
我们使用3个JK触发器串行读取输入的X,并设置计数器为4进制,这样每当计数器从0计数到3时,对三个触发器和X的状态执行一次逻辑运算,如果满足”非BCD码”的条件,就输出一段脉冲.
非BCD码的判断条件经化简后为:
Q4(Q3+Q2)
则输出脉冲信号的逻辑表达式:
Q4(Q3+Q2)(QAQB)
计数器清零条件:
QC
这样,使用3个JK触发器和一个197计数器,就实现一个BCD码判断电路.
使用上面的串行16进制输出器进行动态仿真,波形如下:
其中最上面的波形为电路输出,中间的波形为时钟信号,下面的波形为串行16进制输出器产生的输入信号.可见,只有后6个波形出现非法脉冲,判断电路正常工作.
四、实验内容
1、实验目的
本实验要求设计一一个8421BCD码(串行输入)检测电路。
此电路是用来检测串行的8421码传输过程中是否发生错误。
假定8421BCD码传送过程中是由低位到高位串行输送,例如十进制2(代码为0010)是按0、1、0、0次序传送的。
如果在传送过程中代码发生错误,出现非法数码(不在0000到1001之间的代码),则检测电路发生一脉冲信号。
实验所用触发器为JK触发器,要求自己设计、自己安装和测试。
2、设计过程
正式实验由于器件和线的限制,没有机会实现上述的16X4串行信号发生器和摩尔型时序电路。
只实现了米里时序电路,并用四分频的信号进行动态测试。
在3个JK触发器的J,K输入端按照上述的驱动方程接线,时钟信号并行接入JK触发器的CLK端,清零端均接高电平。
在输出口F接一个D触发器,其时钟信号与前面相同,D触发器清零端也接高电平。
对静态测试,脉冲接手动脉冲,输出端F‘接LED灯,输入X接模拟开关,观察不同输入时输出的变化。
作为动态输入,我们需要一个四倍于时钟周期的信号。
使用74LS197输出该信号,将CP0接时钟脉冲,QA接CP1,MR’和PL‘接高电平,并将被四分频的信号QC接入检测电路的输入端X,输出F‘接逻辑分析仪,观察动态波形。
五、测试过程
实验接线图:
静态测试:
输入序列为0101(1010/10)时,F‘为高电平
输入序列为1111(1111/15)时,F‘为高电平
输入序列为1110(0111/7)时,F‘为低电平
输入序列为1001(1001/9)时,F‘为低电平
经16次静态测试,能得到高电平输出的有1010,1011,1100,1101,1110,1111.体现了电路只对非BCD码信号输入的敏感性。
动态测试:
得到的波形如下图所示,由于QC信号具有相位的不确定性,对不同的起始状态位置,会导致对QC的不同截断方式,进而会产生不同的输出波形。
波形1:
图中波形从上到下依次为输出F’,Qc,反相后的时钟脉冲和时钟脉冲。
判断该图中的截断方式为0000和1111,其中0000不输出脉冲,1111输出脉冲。
波形2:
图中波形从上到下依次为输出F’,Qc,反相后的时钟脉冲和时钟脉冲。
判断该图中的截断方式为0001和1110,其中0001不输出脉冲,1110输出脉冲。
经判断此外还有两种截断方式,0011-1100和0111-1000,前者会在上图的左侧一周期远的地方产生脉冲,后者不会产生脉冲。
但个人感觉全部记录意义不大,只在这里做出说明。
由动态测试和静态测试结果,我们可以看出电路会对非8421码的信号,在最后一位的时刻输出一个时钟周期宽度的脉冲,说明电路正确,符合题目要求。
六、总结
①对固定需求的电路,往往根据实验器件的不同,会有相当多的设计方案,同时也各有优缺点。
比如本实验中的两种设计方案,米里时序电路使用状态转换来实现,只需要3个触发器描述六个状态,所需器件较少,但其状态搭建好后就不能做其他拓展,泛用性较差。
而摩尔时序电路需要3个触发器和一个计数器来实现,虽然使用了较多的器件,但我们只需要根据不同的需求对电路进行简单的改动,就能得到功能完全不同的电路,比如对偶数码产生脉冲,对质数产生脉冲等。
其泛用性远高于前者。
②实验中使用了一种防止错误码的技巧,使用锁存器锁定输出后再进行输出。
这可以将输出的时间点延长到CP的有效沿时刻,以留给输入信号一段时间进行变化,减少了错误的发生率。
这也提醒我们,如果要设计更严谨的电路,就要尽量让同步时钟影响到每一个电路单元。
③上述的,将并行16进制计数码转串行的器件设计出现了赘余,事实上使用节拍发生器来读取并行的四个信号会更简单且容易理解,但由于仿真实验时考虑的不周全,没能设计出这种电路,这也提醒我设计电路前要进行更周全的考虑。