0

系统定时器

计算机包含一个包含可编程通道的计时器。可编程通道意味着不同持续时间的计时器。如何设计这样一个具有四个可编程通道的电路,每个通道最初都被禁用。一个启用输入、两个通道选择输入和 4 条持续时间输入线可以将任何通道设置为从 1 到 15 的给定持续时间。零表示禁用通道。四个输出线对应于通道,并在相应的定时器到期后立即设置为高。

输入 时钟脉冲 CP

输入可用 IA

通道选择 CS0、CS1

持续时间 D0…D3

输出

定时器到期:TA,TB,TC,TD

我想使用离散逻辑 IC,如触发器、逻辑门、解码器、多路复用器、编码器等。数据输入是使用按钮(按钮)完成的,输出应该显示在 LED 上。时钟应该是通用的。

4

1 回答 1

0

单发定时器包括:

  1. n位二进制计数器

    由输入时钟源驱动并由CP启动输入复位。每个时钟脉冲都会增加其值。复位输入应连接到定时器启动信号。

  2. n 位 LATCH 寄存器

    存储计时器间隔值(您的每个通道持续时间D0..D3

  3. n位比较器

    比较计数值和间隔值。相等位的异或为零,因此如果您或所有异或位在一起,结果是0LATCH寄存器值和计数器值是否相同。

  4. 输出触发器

    记住定时器到期(对于非脉冲模式操作)输出是你TA.TB,TC,TD的启动脉冲也应该重置电路上的RS我通过WR执行此操作,但我怀疑你将单独使用启动信号......

像这样的东西:

计时器示例

您需要考虑使用过的 IC 的否定和辅助输入,以使其正常工作(有些否定了 WR,有些则没有......所有引脚都是如此,因此请务必检查数据表)。所以不要忘记将片选和输出使能信号添加到它们的工作条件。

多通道定时器

好吧,您只需为每个连接到同一计数器的每个通道添加LATCH和比较器。棘手的部分是频道选择和启动部分。您需要添加解码器1 from 4在设置. 要为该部分绘制电路,我需要了解更多关于此目的的信息......此外,如果您仅手动设置间隔,那么您可以使用 DIP 开关而不是LATCH和选择电路,使其变得更加简单。D0..D3

以上所有内容都可以仅由NANDNAND门而不是具体的IC实现来实现。为此,您需要使用卡诺图和布尔代数。

有一段时间我用原始门做了一些事情,因为现在使用MCU/FPGA更容易更便宜更快,所以要小心我可能会错过一些微不足道的东西(比如某处的否定门)......无论如何,即使这样也应该得到计时器背后的想法

顺便说一句,C++ 的表示是:

int cnt=0,D=?;
bool TA=0;
for (;;)
 {
 if (cnt==D) TA=1;
 cnt=(cnt+1)&15;
 }

[Edit1] 4 通道版本

4通道定时器

这是基于上面的文字。还有另一种组件较少的选项,它使用 4 个半字节 RAM 模块而不是 LATCH 寄存器和由单个定时器组成的解码器以 4 倍 CP 倍频时钟连续循环通过所有通道(例如,通过 XORing 延迟的 CP 信号)。

定时器循环

于 2016-01-08T16:07:26.167 回答