实验七 三人表决器与四位先行进位的并行加法器
一、三人表决器
1.1 实验目的
实现三人表决器。
使用试验箱上的3个模拟开关作为3个人的投票器(高电平对应投同意票,低电平对应投反对票),1号位“0-1”显示器(LED灯)作为投票结果显示,按照票数过半原则判定投票结果。
投票通过,则LED1灯亮,1号七段数码管显示投同意票的人数;投票不通过,则LED1灯灭,1号七段数码管熄灭。
3人中有一人具有一票否决权,即当此人投反对票时,投票不通过。
1.2 实验要求
系统输入:LED、逻辑电平(静态实验)、74LS197(动态实验);
系统输出:七段数码管;
系统功能:三人表决器。
1.3 实验思路
假设三个投票人依次称作A、B、C,其中C拥有一票否决权。投票结果称作X,真值表如下:
A | B | C | X |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
得到表达式如下:
七段数码管的开关与LED信号都可以使用X作为输入。
由于七段数码管仅显示2和3,当且仅当A异或B为1时低位获得输入1。
1.4 实验结果
1.4.1 A=0,B=0,C=0
1.4.2 A=0,B=0,C=1
1.4.3 A=0,B=1,C=0
1.4.4 A=0,B=1,C=1
1.4.5 A=1,B=0,C=0
1.4.6 A=1,B=0,C=1
1.4.7 A=1,B=1,C=0
1.4.8 A=1,B=1,C=1
二、四位先行进位的并行加法器
2.1 实验目的
用与或非门、异或门设计四位的带先行进位的并行加减法器,该加减器要能实现带符号数的补码加减法运算和无符号数的加减法运算,要设计OF标志位和CF标志位的电路。
2.2 实验要求
系统输入:逻辑电平(静态实验);
系统输出:LED;
系统功能:四位的带先行进位的并行加减法器。
2.3 实验思路
进位生成
当一个输出进位由全加器在内部产生时,进位生成过程就发生了。
Cg=AB
进位传输
当输入进位异步传输为输出进位时,进位传输过程就发生了。
Cp=A+B
全加器的输出可以用生成进位和传输进位来表示。如果生成进位为1或传输进位为1并且输入进位为1时,输出进位就是1.
Cout=Cg+CpCin
则四位全加器分别为:
全加器1:
Cout1=Cg1+Cp1Cin1
全加器2:
Cin2=Cout1
Cout2=Cg2+Cp2Cin2=Cg2+Cp2+Cout1=Cg2+Cp2(Cg1+Cp1Cin1)
=Cg2+Cp2Cg1+Cp2Cp1Cin1
全加器3:
Cin3=Cout2
Cout3=Cg3+Cp3Cin3=Cg3+Cp3Cout2=Cg3+Cp3(Cg2+Cp2Cg1+Cp2Cp1Cin1)
=Cg3+Cp3Cg2+Cp3Cp2Cg1+Cp3Cp2Cp1Cin1
全加器4:
Cin4=Cout3
Cout4=Cg4+Cp4Cin4=Cg4+Cp4Cout3
=Cg4+Cp4(Cg3+Cp3Cg2+Cp3Cp2Cg1+Cp3Cp2Cp1Cin1)
=Cg4+Cp4Cg3+Cp4Cp3Cg2+Cp4Cp3Cp2Cg1+Cp4Cp3Cp2Cp1Cin1
关于溢出标志,CF是无符号数溢出标志,OF是有符号数溢出标志。
对于CF:如果两无符号数相加,最高位向前有进位,则CF=1,否则CF=0。
对于OF:如果两有符号数同号,而相加结果与之异号,则OF=1,否则OF=0。
画出OF的真值表:
S4 | A4 | B4 | OF |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
得到表达式:
CF=Cout4
对于减法,减法的本质上是补码的加法运算。因此,当减法的标志位(S)为1的时候,需要将B取反码并+1。
B1’=B1 xor S
B2’=B2 xor S
B3’=B3 xor S
B4’=B4 xor S
同时,需要将C0置为1。
2.4 实验结果
2.4.1 宏观电路图
2.4.2 局部图像
2.4.3 实验结果
1001+1001
可以看到,1001+1001=0010,而CF=1,OF=1。
实验八 点阵与二极管
一、点阵显示名字
1.1 实验目的
熟悉点阵的显示原理,用 16*16 点阵动态显示姓。
1.2 实验要求
系统输入:脉冲信号;
系统输出:点阵;
系统功能:用 16*16 点阵动态显示姓。
1.3 实验思路
我们知道对于点阵来说,点阵的上侧 16 个引脚为控制行的引脚,同时低电平有效,点阵的下侧 16 个引脚为控制列的引脚,同时高电平有效,因此我们可以在一个 16*16 网格中先对姓汉字设计扫描电路。我们可以将行信号作为选通信号,把一个汉字从上到下扫码逐次打印每一行,或者将列信号作为选通信号,把一个汉字从左到右扫码逐次打印每一列。当我们进行行扫描的时候,我们将根据真值表设计针对每一行的电路,当我们进行列扫描的时候,我们将根据真值表设计针对每一行的电路。
由于proteus中并没有16*16的点阵,在设计的时候稍微修改了一下行和列的控制方式,左侧16个引脚控制列选,下侧16个引脚控制行选。
现在分析输出“方”需要的条件,在此选用列扫描:
第1列,需显示第4、5行;
第2列,需显示第4、5行;
第3列,需显示第4、5、6、7、8、9、10、11、12、13、14、15、16行;
第4列,需显示第4、5、6、7、8、9、10、11、12、13、14、15、16行;
第5列,需显示第4、5、12、13行;
第6列,需显示第4、5、12、13行;
第7列,需显示第4、5、12、13行;
第8列,需显示第4、5、12、13行;
第9列,需显示第4、5、12、13行;
第10列,需显示第4、5、12、13行;
第11列,需显示第4、5、12、13行;
第12列,需显示第4、5、12、13行;
第13列,不显示;
第14列,不显示;
第15列,不显示;
第16列,不显示;
列信号的输入是4-16译码器的输出。
因此,设计的时候,仅需将对应4-16译码器的输出信号进行或运算,即可得到行信号对应的输入。
1.4 实验结果
1.4.1 实验显示
1.4.2 试验箱实验
注:在试验箱上,由于器材不够,所以仅能显示字的一部分。
二、二极管做与门
2.1 实验目的
用二极管做与门。
2.2 实验要求
系统输入:脉冲信号;
系统输出:示波器;
系统功能:实现两个信号相与运算。
2.3 实验思路
见下图(实验结果),分析如下:
当输入A和B都为5V时,两个二级管都截止,输出C为与下面U1提供的5V。当输入A和B中有任何一个为0V时,其对应的二极管会导通,输出C为低电平。
2.4 实验结果
2.4.1 线路图
2.4.2 仿真结果
三、二极管做或门
3.1 实验目的
用二极管做或门。
3.2 实验要求
系统输入:脉冲信号;
系统输出:示波器;
系统功能:实现两个信号的或运算。
3.3 实验思路
如下图所示(实验结果图):
当输入A或B中有任何一个为5V时,则其对应的二极管导通,输出电压C为高电平。当输入A和B中都为0时,二极管截止,C为低电平。
3.4 实验结果
3.4.1 线路图
3.4.2 实验结果
实验九 触发器
一、触发器的应用
1.1 实验目的
1、熟悉J-K触发器、D触发器和T触发器的逻辑功能。
2、掌握74LS74、74LS73的触发方式和使用方法。
3、掌握使用J-K触发器构成D触发器、T触发器的方法。
1.2 实验要求
系统输入:脉冲信号;
系统输出:示波器;
系统功能:测试J-K触发器、D触发器和T触发器。
1.3 实验思路
触发器是能够存储1位二值信号,具有记忆功能的基本逻辑单元。触发器通常具有如下两个特点:
(1)具有两个能自行保持的稳定状态,用来表示0和1;
(2)在触发信号操作下,根据不同的输入信号可以置成0或1的状态。
J-K触发器
其功能表如下:
其触发器符号如下:
D触发器
其功能表如下:
其元件符号如下:
T触发器
其功能表如下:
其元件符号如下:
1.4 实验内容
1.4.1 J-K触发器
将74LS197接成八进制计数器,即10KHz连续脉冲接反相器后与74LS197的CP1相连(避免连续脉冲的下降沿使74LS197和74LS73同时翻转),将74LS197的MR、PL接高电平,Q1、Q2、Q3作为输出。并将74LS197的输出Q1接74LS73的J1,Q2接74LS73的K1,10KHZ连续脉冲接74LS73的CP1,将74LS73的CR1
接手动负脉冲。实验时需先按一下负脉冲按键,使74LS73输出清零。使用示波器数字通道观察并记录74LS73的CP1、J1、K1、Q1波形,检查其是否符合J-K触发器特性。
1.4.2 D触发器
将74LS197接成二进制计数器,即CP0接10KHz连续脉冲,将MR、PL接高电平,Q0作为输出。并将74LS197的输出Q0接74LS74的D1,10KHz连续脉冲同时接74LS74的CP1,将74LS73的SD1接高电平,RD1接手动负脉冲。实验需先按一下负脉冲按键,使74LS74输出清零。使用示波器数字通道观察并记录 74LS74的CP1、D1、Q1波形,检查其是否符合D触发器特性。
1.4.3 J-K触发器实现D触发器
对照J-K触发器和D触发器的功能表,使用J-K触发器和门电路芯片搭建具有D触发器逻辑功能的电路。要求电路的静态测试和动态测试都满足D触发器特性。
1.4.4 J-K触发器实现T触发器
对照J-K触发器和T触发器的功能表,使用J-K触发器和门电路芯片搭建具有T触发器逻辑功能的电路。要求电路的静态测试和动态测试都满足T触发器特性。
1.5 实验结果
1.5.1 J-K触发器
连线图
示波器
1.5.2 D触发器
连线图
示波器
1.5.3 J-K触发器实现D触发器
连线图
示波器
1.5.4 J-K触发器实现T触发器
连线图
示波器
二、四个触发器实现减一计数
2.1 实验目的
用四个触发器实现减一计数。
2.2 实验要求
系统输入:时钟信号(动态实验)、负脉冲(静态实验);
系统输出:示波器、7段数码管;
系统功能:减一计数器。
2.3 实验思路
四位计数器需要四个触发器,因为试验箱上只有两个D触发器,因此可以将两个J-K触发器连接成D触发器作为另外两个D触发器。
对于减一计数器,只需要将D触发器的Q反端与D端相连,同时Q反端作为下一位的时钟输入即可。
2.4 实验结果
2.4.1 四个D触发器实现(动态proteus)
2.4.2 四个D触发器实现(静态proteus)
2.4.3 两个D触发器和两个J-K触发器实现(静态proteus)
2.4.4 两个D触发器和两个J-K触发器实现(试验箱)
2.4.5 两个D触发器和两个J-K触发器实现(示波器)
实验十 汽车尾灯与小键盘
一、汽车尾灯的应用
1.1 实验目的
1、熟悉触发器的逻辑功能。
2、掌握触发器构成移位寄存器的设计方法。
1.2 实验要求
系统输入:拨码开关;
系统输出:8个LED;
系统功能:使用触发器搭建的双向移位寄存器作为汽车尾灯控制器,并使用数字电路实验箱上 LED“0-1”显示器可模拟汽车的尾灯。
汽车左转向时,八盏灯依次向左点亮。
汽车右转向时,八盏灯依次向右点亮
在数字电路实验箱器件实验模式下,使用触发器设计一个汽车尾灯左转右转
向模拟电路。使用LED“0-1”显示器模拟汽车尾灯,当模拟开关s0置低电平时,汽车正常行驶,所有指示灯不亮;当模拟开关s1置高电平,汽车左转向,置低电平时,汽车右转向。
1.3 实验思路
先考虑只有左转的情况。
左转的过程,分解为三个部分。考虑从左到右的四个LED分别称作d3、d2、d1、d0。
首先,在每一个周期到来的时候,对d0进行置位操作;
其次,在每一个周期到来的时候,进行信号的左移操作;
最后,当d0=d1=d2=d3=1的时候,进行清零操作。
对于J-K触发器来说,当J=0、K=1的时候,Q=0;当J=1、K=0的时候,Q=1。即当J不等于K的时候,Q=J。因此,移位寄存器实际上就是将J和K分别与上一级的Q与Q反相连。
考虑清零的情况,当d0=d1=d2=d3的时候,进行清零操作。因此,可以将四个Q端输出的结果进行与操作后,与s0进行与操作,接入J-K触发器的Redet端。有一个问题,就是当d0=d1=d2=d3的时候,并不是立刻清零。因此,需要将该结果接入一个D触发器,使得当d0=d1=d2=d3的时候延迟一个时钟周期后才进行清零。
考虑左移和右移同时存在的结果。
当s1=1的时候,进行左移操作。;
当s1=0的时候,进行右移操作。。
不难发现,,,。
因此,问题得以解决。
1.4 实验内容
1.4.1 车灯左移+清零(试验箱示意图)
1.4.2 车灯左移+右移(试验箱示意图)
1.5 实验结果
完整功能图:
二、小键盘
2.1 实验目的
熟悉移位寄存器做环形计数器并连接其他设备。
2.2 实验要求
系统输入:时钟信号;
系统输出:logicpro;
系统功能:键盘译码器。
2.3 实验思路
键盘是一个8行*8列的64键的矩阵。两个4位移位寄存器连接位8位环形计数器,具有七个1和一个0的固定位模式,并且当电源打开时会将一个0预置到计数器中。两个优先权译码器用作8线-3线译码器,用来对键盘中的行和列进行译码。
在5kHz时钟信号的作用下,0输出以5kHz的速率围绕计数器移位,用来对是否有键被按下进行扫描。低电平顺序加在每个行线上,同时对所有其他的行线都是高电平。所有的行线都连接到行译码器上,所以行译码器的3位输出在任何时候都是低电平状态下的行线所表示的二进制数。当一个键被按下时,一条列线就和一条行线连接。当这条行线被环形计数器置为低电平时,那条特殊的列线也同样被置为低电平。列译码器产生一个二进制输出,这个二进制输出和键被按下去的那一列相对应。3位行代码加上3位列代码就唯一确定了被按下的键。此6位代码将加到键码锁存器中。这个延迟可以消除按键触点的抖动。同样,第一个单稳输出使环形计数器停止工作,这样在数据置入键码寄存器的时候停止扫描。
2.4 实验结果
2.4.1 实验总览图
2.4.2 局部图
注:移位寄存器做行扫描
注:键盘部分
注:8-3译码器部分
注:555做one-shot部分
注:D触发器做锁存器部分
2.4.3 实验结果展示
按下(6,3),这里编号从0-7。
接着按下(1,4)
实验十一 寄存器与触发器
一、动态显示学号
1.1 实验目的
1、掌握移位寄存器的逻辑功能和使用方法。
2、掌握J-K触发器的使用。
1.2 实验要求
系统输入:脉冲信号;
系统输出:8个七段数码管;
系统功能:在8位七段数码管同时显示出8位学号(19308030)
1.3 实验思路
首先确定一个思路,采用显示位置决定显示内容的设计方法
总体思路大概是:通过74LS194搭建八节拍顺序脉冲发生器,八节拍顺序脉冲发生器的输出分别连入8位数码管的位选端作为位扫描信号。确定了显示位置后,要通过组合逻辑电路的设计产生与节拍发生器具有相同变换速度的显示内容,作为每一位学号的BCD码输入。
第一个问题,八节拍顺序脉冲发生器。
在此,使用一片74LS194芯片和一个J-K触发器来实现。显然的,要先搭建一个四节拍顺序发生器。这个是很简单的,先给Q0、Q1、Q2、Q3赋初值,令D0=1、D1=D2=D3=0。然后开始右移,并将Q3的值输入给串行输入端口SR。这样,就实现了一个四节拍顺序发生器。而此时,需要一个J-K触发器来将这个四节拍变成八节拍。第一个周期,四节拍控制的是低四位;第二个周期,四节拍控制的是高四位。这样很好实现,每次当Q3=0的时候,实际上就是将J-K触发器中的Q值取反,相当与一个T触发器。
第二个问题,通过组合逻辑电路的设计学号。
首先画出需要的表:
因此可以得到相应的组合逻辑(下面用数字i表示八节拍顺序发生器的输出信号的反相):
A=1+2+3+7
B=3+7
C=0
D=2+5
这样,电路就设计完成了。
1.4 实验内容
1.4.1 proteus实现
注:由于proteus上显示数字需要用七段码,因此使用了一个74LS48将BCD码转换成七段码
1.5 实验结果
1.5.1 试验箱实现
1.5.2 proteus仿真
注:说实话,proteus的仿真功能不太行,各种频率都尝试过了,会卡的,因此显示不了要不看下面的波形图吧
1.5.3 波形图的线路图
注:A0-A7表示8个位选信号,A8-A11分别表示BCD码的A、B、C和D,A12是时钟信号
1.5.4 波形图
注:可以看到,循环输出了0001、1001、0011、0000、1000、0000、0011、0000,即19308030
二、学号计数器
2.1 实验目的
掌握J-K触发器的使用。
2.2 实验要求
系统输入:脉冲信号;
系统输出:七段数码管;
系统功能:从学号中按顺序选出5位不同的数字(13046),对这5位数进行顺时针和逆时针计数,计数过程送7段管显示。
2.3 实验思路
首先画出状态机。
定义数字的三位(从高到低)以及控制位(0表示顺时针,1表示逆时针)为A、B、C、D。
那么,对每一位单独考虑。在此,使用J-K触发器(连成T触发器)来处理每一位的状态,考虑哪些情况下,当前位会被取反。
考虑A:
当ABCD是0000、1100、0011、1001的时候,A会取反;
考虑B:
当ABCD是0010、0110、1000、1100、0011、1101、0001、0111的时候,B会取反;
考虑C:
当ABCD是0110、1100、0011、0001的时候,C会取反。
因此,组合逻辑就设计完成了。
2.4 实验结果
2.4.1 实验总览图
2.4.2 A的组合逻辑电路
注:门电路的名车就是输入的情况
2.4.3 B的组合逻辑电路
注:门电路的名称就是输入端的情况
2.4.4 C的组合逻辑电路
注:门电路的名称就是输入端的情况
2.4.5 J-K触发器细节
2.4.5 顺时针实验结果
注:由于学号中有0,因此不需要考虑初始值的设置
2.4.5 逆时针实验结果
注:由于学号中有0,因此不需要考虑初始值的设置
实验十二 时钟计数器与555触发器的应用
一、时钟计数器
1.1 实验目的
熟悉计数器的级联知识,来设计一个带时、分秒的时钟,并在显示器上显示出来。时钟脉冲信号用555触发器实现。
1.2 实验要求
系统输入:555触发器实现的脉冲信号;
系统输出:七段数码管;
系统功能:一个带时、分秒的时钟(12小时计数)
1.3 实验思路
我们知道一个时钟分为三个部分,分别为小时计数、分钟计数、秒计数,故我们可以分别设计三个计数器,分钟和秒分别设计 60 进制计数器,而小时设计 12 进制计数器。对于 60 进制计数器,我们使用 74HC190 十进制计数器芯片改造,首先将一个十进制计数器设计一个译码 6 的电路,当电路计数到 6 之后,计数器清零端有效,计数变为 0,这样我们就得到了 6 进制计数器,我们将一个十进制计数器与此 6 进制计数器级联,将十进制计数器的 TC 端送到 6 进制计数器的使能端,即实现了一个 60 进制计数器。对于 12 小时计数器,我们使用一个 74HC190 十进制计数器和一个 JK 触发器级联来设计,当电路译码为 12的时候,将 JK 触发器置位,十进制计数器清零端有效,即可实现一个 12 小时计数器。
1.4 实验步骤
1.4.1 60进制计数器实现(分/秒电路)
如图所示,使用 74HC190 十进制计数器芯片改造,首先将一个十进制计数器设计一个译码 6 的电路,当电路计数到 6 之后,计数器清零端有效,计数变为0,这样我们就得到了 6 进制计数器,我们将一个十进制计数器与此 6 进制计数器级联,将十进制计数器的 TC 端送到 6 进制计数器的使能端,即实现了一个 60 进制计数器。
1.4.2 12进制计数器实现(时电路)
我们使用一个 74HC190 十进制计数器和一个 JK 触发器级联来设计,当电路译码为 12 的时候,将 JK 触发器置位,十进制计数器清零端有效,即可实现一个 12 小时计数器。
1.4.3 级联电路(时/分/秒级联)
可以根据秒电路计数为 59 的时候,分电路计数+1 的特点设计电路,故我们可以再分电路部分设计一个译码 59 的 TC 端接入分电路的使能端,这样当秒电路计数到 59 的时候,该 TC 端有效,接入分电路的使能端,使分电路的使能端有效,通过此,我们可以做到分电路和秒电路的级联。我们可以根据当分电路计数为 59,秒电路为 59 时,时电路计数+1 的特点设计电路(59分 59 秒后即为 1 时 0 分 0 秒),故我们在分电路设计一个译码 59 的 TC 端,将此 TC 端和秒电路的 TC 端相与送到时电路的使能端,这样当分电路和秒电路都计数为 59 时,两个 TC 端为 1,相与后为 1,时电路使能端有效,时电路计数+1,故可以实现了时分秒电路的级联。
1.5 实验结果
1.5.1 proteus电路总览
1.5.2 局部示意图
555触发器做时钟信号(具体原理下一章阐述)
时/分部分
时计数部分
译码器部分(可能这样什么都看不到,仅作放大处理)
计数过程
二、555触发器做非稳态多谐振荡器
2.1 实验目的
熟悉555芯片相关知识,学会用555芯片做非稳态多谐振荡器。
2.2 实验要求
用555芯片做非稳态多谐振荡器
2.3 实验思路
初始时,当电源打开后,电容(C1)并没有充电,因此触发电压(引脚2)是0V。这导致了比较器B的输出为高电平,比较器A的输出为低电平,迫使锁存器的输出,也就是Q1的基极为低电平,并保持晶体管截止。这时,C1开始通过R1和R2充电。当电容电压达到1/3Vcc时,比较器B就变为它的低电平输出状态;而当电容电压达到2/3Vcc时,比较器A就变为它的高电平输出状态。这就使锁存器复位,使得Q1的基极变为高电平,并使晶体管导通。这一连串变化为电容建立了一个从R2到晶体管的放电回路。电容现在开始放电,使得比较器A的输出变为低电平。当电容放电到1/3Vcc时,比较器B就变为高电平;这使得锁存器置位,并使得Q1的基极变为低电平,并且晶体管截止。然后开始另一个充电循环,重复整个过程。
2.4 实验电路
2.5 实验结果
得到脉冲信号,验证电路正确。
三、555触发器做单稳态触发器
3.1 实验目的
熟悉555芯片相关知识,学会用555芯片做单稳态触发器。
3.2 实验要求
用555芯片做单稳态触发器。
3.3 实验思路
将 Vcc 外接 555 芯片的 Vcc 端和 Reset 端,并连接一个外接电阻,接入 Disch和 Thresh(阈值)端,之后外节电容 C1 后接地,在 555 芯片的 Cont 端外接电容 C2 用来去耦,在触发端 Trig 加入一定的触发信号,如此便实现了一个单稳态触发器。当触发端为高电平时,555 芯片内部接入 RS 触发器的 R 端和 S 端的俩比较器均为低电平无效,此时 Q 输出为低电平,放电晶体管导通,电容 C1 放电;当触发端由高电平转变为低电平时,连接 S端的比较器有效,RS 触发器为高电平,Q 输出为高电平,此时放电晶体管截止,电容 C1 充电,当充电到大于 2/3Vcc 时,连接 R 端的比较器有效,RS 触发器为低电平,Q 输出为低电平,放电晶体管导通,电容 C1 放电,如此为一个循环,实现了一次单稳态的输出脉冲。
3.4 实验电路
注:用时钟信号做触发源,能更好地观察实验现象
3.5 实验结果
得到连续的脉冲,电路正确。
四、余三码检测电路
4.1 实验目的
1、了解余三码检测电路的工作原理。
2、掌握利用有限状态机实现同步时序电路的设计方法。
4.2 实验要求
实现余三码检测电路。
4.3 实验思路
(1)列出原始状态转换图。
设电路输入为x,电路输出为F,当输入为非法码时输出为1,否则输出为0。 检测电路初始状态为S0,当电路接收第一个码元后,根据输入是0还是1,将分
别转到两个不同的新状态S1和S2,从S1或S2出发,接收到第二个码元后,又根据是0还是1,又转到两个不同的新状态,类推到接收到的第三、第四码元码元后电路执行同样的动作。在接收到第四个码元后,根据所接收的代码判断是否是非法码而确定其输出是否为1,并且电路回到初始状态S0,准备接受新的一组码组。
根据上述的分析可作出余三码检测电路的原始状态图如图所示。
(2)列出原始状态表,并化简状态表。
根据余三码检测电路的原始状态图可列出如下表所示余三码检测电路的原始状态表。
S\Sn+1\X | 0 | 1 |
---|---|---|
S0 | 1/0 | 2/0 |
S1 | 3/0 | 4/0 |
S2 | 5/0 | 6/0 |
S3 | 7/0 | 8/0 |
S4 | 9/0 | 10/0 |
S5 | 11/0 | 12/0 |
S6 | 13/0 | 14/0 |
S7 | 0/1 | 0/0 |
S8 | 0/0 | 0/0 |
S9 | 0/1 | 0/0 |
S10 | 0/0 | 0/1 |
S11 | 0/1 | 0/0 |
S12 | 0/0 | 0/1 |
S13 | 0/0 | 0/0 |
S14 | 0/0 | 0/1 |
找出原始状态表中的等效状态,所谓等效状态是指当输入相同时输出相同且 次态也相同的状态。通过等效状态的合并化简原始状态表,得到如下表所示化简后的状态表。
S\Sn+1\X | 0 | 1 |
---|---|---|
S0 | 1/0 | 2/0 |
S1 | 3/0 | 4/0 |
S2 | 4/0 | 6/0 |
S3 | 7/0 | 8/0 |
S4 | 7/0 | 10/0 |
S6 | 8/0 | 10/0 |
S7 | 0/1 | 0/0 |
S8 | 0/0 | 0/0 |
S10 | 0/0 | 0/1 |
(3)状态分配和编码
令S0=A,S1=B,S2=C,S3=D,S4=E,S6=F,S7=G,S8=H,S10=I。且如下所示方案进行状态分配,即A=0000,B=0001,C=0010,D=0101,E=0011,F=1010,G=0111,H=1110,I=1011。得到下表:
Q4Q3\Q2Q1 | 00 | 01 | 11 | 10 |
---|---|---|---|---|
00 | A | B | E | C |
01 | X | D | G | X |
11 | X | X | X | H |
10 | X | X | I | X |
(4)画出次态卡诺图并得到表达式
由于公式写了一页纸,太过繁琐,因此直接给出最后的化简结果。
最后得到的表达式为:
注:用word写公式实在是太蠢了,于是我使用了markdown写
4.4 实验电路
4.4.1 电路总览即JK触发器驱动图
注:电路总览图
注:JK触发器的驱动图
4.4.2 四位的状态方程
注:Q0的状态方程
注:Q1的状态方程
注:Q2的状态方程
注:Q3的状态方程
注:F的状态方程
4.5 实验结果
4.5.1 输入为13(1101)
4.5.2 输入为9(1001)
得到正确的输出,验证电路正确。