问题标签 [shift-register]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1133 浏览

circuit - 如何使用通用移位寄存器实现序列生成器?

如何实现生成以下序列的序列生成器

0000 1000 0001 0011 0110 1101 1110 1111

使用通用移位寄存器?我需要使用的移位寄存器是下图所示的 74LS194 型号,其中输入 S1、S0 控制移位模式。

如果 (S1,S0) = (0,0),则当前值被锁定到下一个状态。如果 (1,0),则向右移动。如果 (0,1),它向左移动,并且 (1,1) 表示从并行数据输入并行加载。

如果要求只是使用我选择的触发器而不是移位寄存器,我认为这将是一个简单的问题,但是有了这个要求,我不知道从哪里开始。即使我为每个数字绘制了 4 张卡诺图,我似乎也没有掌握任何线索。任何帮助,将不胜感激。提前致谢!

通用移位寄存器 74LS194:

通用移位寄存器 74LS194


编辑:我接受了建议并用输入信号编写了下一个状态表。我注意到在绘制下一个状态表时需要考虑的输入变量太多。您必须考虑每个下一个状态 Qd、Qc、Qb、Qa 的 Qd Qc Qb Qa、CLR、S1、S0、RIn、LIn 信号,这意味着每个 Q 都有一个 9 变量卡诺图,我知道这很荒谬。我在这里错过了什么吗?

0 投票
0 回答
1283 浏览

vhdl - 移位寄存器 PISO

并行输入/串行输出移位寄存器的清除和时钟输入是什么意思?我正在分析该代码:

我不明白的是“c”的含义,我想,它类似于 CLEAR 输入或将输入 x 加载到寄存器中的东西。

0 投票
0 回答
28 浏览

shift-register - 移位寄存器中的 CLKCTRL

我在 Quartus II v13 中遇到了一个简单的循环移位寄存器的问题。当我使用 RTL 查看器查看逻辑时,它是正确的,但电路在开发板上无法正常工作。当我查看 Technology Map Viewer (Post-Fitting) 时,我看到时钟只进入移位寄存器的第 0 级,其余级通过 CLKCTRL 块由相同的时钟馈送。有时重新布置电路会删除此块,然后电路才能正常工作。我究竟做错了什么?

0 投票
1 回答
233 浏览

arm - 如何解决一个 8 位移位寄存器的问题?

假设一个 8 位移位寄存器加载了位模式10110101,并且每个时钟脉冲将该位右移一位。2 个时钟脉冲后移位寄存器输出的模式是什么?

假设寄存器是桶形移位器。

上面的答案怎么可能?

0 投票
1 回答
4399 浏览

verilog - 使用 dff verilog 的移位寄存器

我想创建一个使用 d 触发器作为基本结构元素的移位寄存器。代码:

dff:

移位寄存器:

试验台:

我认为测试台有问题。我尝试在 clk=1 时为每个 #10 提供 s1 值,但同样不起作用。

这段代码没有给我 q 和 s0 的波形。我找不到什么问题。有什么想法吗?

0 投票
0 回答
192 浏览

vhdl - 如何在 vhdl 中发送数据 pipo?

我的代码是为接收 4 位数据而编写的,将它们打包成 32 位,并在触发器为 1 时(在 9 个时钟周期后)将它们发送到 arm 处理器

问题是

  1. 数据仅在第一个时钟周期存储在我的最终寄存器 l1 中

  2. 我从 ise 收到警告,我的 2 个寄存器 sr1 和 sr2 未连接到我的 too 模块(or1),它们在综合中被省略

如果你们帮助我,我将非常感激。

这是我的代码

-------------------------------------------------- ---------

0 投票
0 回答
219 浏览

c - 如何使用 nrf51822 模块在一定时间间隔后关闭 LED

有12个LED通过移位寄存器HC595连接,使用的模块是nrf51822(蓝牙模块)。我希望 LED 在 3 秒间隔后熄灭。我的代码如下 -

上面的代码似乎不起作用。我是模块新手。请提供解决方案帮助。

0 投票
0 回答
76 浏览

c - 如何点亮特定的 LED 并使用 74HC595 移位寄存器移动所有其他 LED?

我目前正在构建带有微控制器的鼓机。我试图弄清楚音序器的逻辑。我有 16 个 LED,它们将指示鼓机当前正在播放的第 16 个音符。

因此,例如,假设每分钟节拍 (BPM) 为 120,那么 LED 应该每秒移动两次。

因此,对于移位部分,我编写了代码,如果步数为 0,则移入 1。如果步数大于 0,则移入 0。该方法每 (60/BPM) 秒调用一次。

PD5 是串行输入,PD4 是锁存引脚,PD3 是时钟引脚。

但我也希望 LED 在用户编程声音的每一步都静态亮起。因此,例如,如果用户使用乐器底鼓按下按钮 1 和 5 以及 9 和 13,则 LED 1、5、9、13 应该静态亮起,但 LED 也应该像上面的代码一样移动。有没有人有关于如何有效地实现这一点的任何提示?移动其他 LED 时,是否有一种聪明的方法可以使特定 LED 始终亮起?

0 投票
2 回答
413 浏览

performance - 如何在 LABVIEW 中快速将 U32 Image Array 解压成 RBG U8 Array

我有一个扁平的 (1D) U32 编码图像阵列,其中 r、b 和 b 8 位通道值被编码到每个 U32 的前 24 位中。我想将此数组扩展为 U8 数组,每个 U8 都存储一个单独的 r、g 或 b 值(0-255)。问题是我需要这种情况发生得非常快(在旧计算机上每秒数百次),而我创建的方法很慢。

我是labview 的新手,所以我不确定有什么更快的方法来做到这一点。

我通过创建一个 U8 数组、迭代 U32 Image 数组的每个索引并使用移位寄存器将相应的 3 个 rgb 值分配给 U8 数组中的适当索引来成功地实现了这一点。我尝试使用 In Place Element Structure(这可能不需要像 shift 这样的循环之间复制数据),但我不知道如何让它在循环内工作,当我试图从循环中返回最后一个数组时,只有最后一个元素被修改。

这是我上面描述的第一种工作方法:

Dropbox VI 图片链接(更新我现在有声望了)

在 c/c++ 中,它会非常简单(像这样):

上面的工作 labview 示例仅以 20 Hz 运行!我认为对于这样一个简单的操作来说这非常慢。有没有更多经验的人建议我如何使用labview代码快速实现这一点?

0 投票
1 回答
286 浏览

python - Micropython 链式移位寄存器的行为不符合预期

我是电子新手,并且一直在玩 esp8266 和 Micropython。我试图让几个链式移位寄存器 (sn74hc595) 控制 16 个 LED,并且正在努力理解我得到的结果。

我的脚本如下:

在我的视频中有点难以分辨,但每个 LED 在所有重复之前都会单独亮起。 Google 云端硬盘视频示例

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]根据我的代码和对移位寄存器的基本了解,我希望所有的 LED 在移入时都会亮起。

所以我的第一个问题是为什么我的脚本没有点亮每个 LED,而之前的 LED 仍然点亮?如果您需要我进一步澄清,请告诉我!谢谢!