数电实验九:计数器的设计 LeeRinji

预习报告

内容一

使用 JK 触发器设计一个 16 进制异步减法计数器,并用逻辑分析仪观察并记录 CP 和每一位的输出波形。

JK 触发器功能/真值表

CP 时钟 J K 工作状态 $Q^+$
$\downarrow$ 0 0 保持 Q
$\downarrow$ 0 1 置零 0
$\downarrow$ 1 0 置一 1
$\downarrow$ 1 1 翻转 $\overline Q$

用 Proteus 设计电路,并运行仿真

如图,$A_0\ldots A_3$分别对应模拟的$Q_0\ldots Q_3$端口。

可以看出,在一个周期内$Q_3Q_2Q_1Q_0$的变化顺序依次为

$0000\to1111\to1110\to1101\to1100\to1011\to1010\to1001\to1000\to0111\to0110\to0101\to0100\to0011\to0010\to0001\to0000\to\ldots$

符合设计预期。 这里写图片描述

内容二

使用 JK 触发器设计一个 16 进制同步加法计数器,并用逻辑分析仪观察并记录 CP 和每一位的输出波形。

用 Proteus 设计电路,并运行仿真

如图,$A_0\ldots A_3$分别对应模拟的$Q_0\ldots Q_3$端口。

可以看出,在一个周期内$Q_3Q_2Q_1Q_0$的变化顺序依次为

$0000\to0001\to0010\to0011\to0100\to0101\to0110\to0111\to1000\to1001\to1010\to1011\to1100\to1101\to1110\to1111\to0000\ldots$

符合设计预期。 这里写图片描述

内容三

使用 JK 触发器和门电路设计实现一个二进制四位计数器模仿 74LS194 功能。要求在实验箱上设计实现左移或右移功能;在 proteus 软件上实现置零,保持,左移,右移,并行送数功能。

74LS194 功能/真值表

CP 时钟 $\overline{Cr}$清零 ${S_1}$ ${S_0}$ 工作状态 $Q_A^+$ $Q_B^+$ $Q_C^+$ $Q_D^+$
$\uparrow$ 0 X X 置零 0 0 0 0
$\uparrow$ 1 0 0 保持 $Q_A$ $Q_B$ $Q_C$ $Q_D$
$\uparrow$ 1 0 1 右移 $D_{SR}$ $Q_A$ $Q_B$ $Q_C$
$\uparrow$ 1 1 0 左移 $Q_B$ $Q_C$ $Q_D$ $D_{SL}$
$\uparrow$ 1 1 1 并行送数 $D_0$ $D_1$ $D_2$ $D_3$

用 Proteus 设计电路,并运行仿真

这里写图片描述

内容四

用 JK 触发器和门电路设计一个特殊的 12 进制同步计数器如下:

$0001\to0010\to0011\to0100\to0101\to0110\to0111\to1000\to1001\to1010\to1011\to1100\to0001\to\ldots$

并用逻辑分析仪观察并记录 CP 和每一位的输出波形。 注意:这个 12 进制同步计数器没有 00 状态,要考虑自启动。

次态卡诺图

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 xxxx 0010 0100 0011
01 0101 0110 1000 0111
11 0001 xxxx xxxx xxxx
10 1001 1010 1100 1011

卡诺图化简得到每个触发器方程

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 0 0 0
01 0 0 1 0
11 0 x x x
10 1 1 1 1

$Q_3^+=Q_3\overline{Q_2}+\overline{Q_3}Q_2Q_1Q_0$

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 0 1 0
01 1 1 0 1
11 0 x x x
10 0 0 1 0

$Q_2^+=\overline{Q_3}Q_2\overline{Q_1}+\overline{Q_2}Q_1Q_0+\overline{Q_3}Q_2\overline{Q_0}$

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 1 0 1
01 0 1 0 1
11 0 x x x
10 0 1 0 1

$Q_1^+=Q_1\overline{Q_0}+\overline{Q_1}Q_0$

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 0 0 1
01 1 0 0 1
11 1 x x x
10 1 0 0 1

$Q_0^+=\overline{Q_0}$

驱动器方程

$J_3=Q_2Q_1Q_0,K_3=Q_2$

$J_2=Q_1Q_0,K_2=\overline{\overline{Q_3}(\overline{Q_1}+\overline{Q_0})}=Q_3+Q_1Q_0$

$J_1=K_1=Q_0$

$J_0=K_0=1$

用 Proteus 设计电路,并运行仿真

这里写图片描述

在图中$A_0\ldots A_3$对应$Q_0\ldots Q_3$。在波形的一个周期里,其变化符合设计预期。

内容五

使用 Protues 和 Vivado 实现一个有控制变量 D 的 12 进制计数器(12 进制计数器状态转换图如内容四),并在 7 段数码管上显示计数结果。

由于 D=0 时(加)的驱动方程已在内容四得出,下面仅涉及 D=1(减)的状态。

次态卡诺图

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 xxxx 1100 0010 0001
01 0011 0100 0110 0101
11 1011 xxxx xxxx xxxx
10 0111 1000 1010 1001

卡诺图化简得到每个触发器方程

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 1 0 0
01 0 0 0 0
11 1 x x x
10 0 1 1 1

$Q_3^+=Q_3Q_2+Q_3Q_1+Q_3Q_0+\overline{Q_3}\,\overline{Q_2}\,\overline{Q_1}$

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 1 0 0
01 0 1 1 1
11 0 x x x
10 1 0 0 0

$Q_2^+=\overline{Q_3}\,\overline{Q_2}\,\overline{Q_1}+\overline{Q_2}\,\overline{Q_1}\,\overline{Q_0}+Q_2Q_1+Q_2Q_0$

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 0 1 0
01 1 0 1 0
11 1 x x x
10 1 0 1 0

$Q_1^+=Q_1Q_0+\overline{Q_1}\,\overline{Q_0}$

$Q_3^+Q_2^+\setminus Q_1^+Q_0^+$ 00 01 11 10
00 x 0 0 1
01 1 0 0 1
11 1 x x x
10 1 0 0 1

$Q_0^+=\overline{Q_0}$

驱动方程

$J_3=\overline{Q_2}\,\overline{Q_1},K_3=\overline{Q_2+Q_1+Q_0}=\overline{Q_2}\,\overline{Q_1}\,\overline{Q_0}$

$J_2=\overline{Q_1}\,\overline{Q_3}+\overline{Q_1}\,\overline{Q_0},K_2=\overline{Q_1+Q_0}=\overline{Q_1}\,\overline{Q_0}$

$J_1=K_1=\overline{Q_0}$

$J_0=K_0=1$

用 Proteus 设计电路,并运行仿真

这里写图片描述

用 Vivado 设计电路,并烧写到 Basys3 实验板

这里写图片描述

端口映射

这里写图片描述

烧写到 Basys3 实验板

这里写图片描述 这里写图片描述

实验报告

内容四

在实验箱上完成十二进制计数器,并在逻辑分析仪上得到其波形。

实验仪器及器件

数字电路实验箱、示波器;器件:74LS002,74LS082,74LS734、74LS1971

代码转换电路设计

具体设计和仿真已在预习报告中完成。

转换电路的效果检验

这里写图片描述

波形分析

这里写图片描述 连续脉冲频率为 2kHz,可以看出一个周期内$D_0\ldots D_3$恰构成二进制的 1~12,符合预期。

实验心得和体会

  1. 通过本次实验,我了解了 portuse 仿真软件上开关的使用。
  2. 通过本次实验,我熟悉了时序逻辑电路的分析步骤和方法。
  3. 通过本次实验,我更熟悉了示波器的使用。
  4. 通过本次实验,我提高了对错误电路的调试能力。
  5. 通过本次实验,我提高了电路的推导和检查能力。