星界边境锁存器和触发器教程 实例进阶心得

发布时间:2020-09-03   转载请注明:http://bestlouisvuittonuksales.com/dchufaqixinpian/2020/0903/53.html 
字号:

  而触发器则是边沿敏感,意思就是当时钟信号改变的时候,输出状态改变(在时钟输入的上升沿和下降沿,取决于类型)。这对于制作状态机、计数器和寄存器非常有用。

  重置(reset)按钮用于关闭陷阱。按钮被连接到Enable端,可以使输出端的状态变为关。

  用按钮开关做一个交易室。Starbound目前还没有用于交易机制,所以我想,制作一个不依赖于信誉系统的交易方式会很有意思。下面是它的工作原理:

  锁存器是一种非常简单的存储单元。一个锁存器可以存储一个二进制值(1或0)。在Starbound里面使用的是一个D锁存器,它有2个输入端和1个输出端。

  (图注:1=闭合,即开状态,0=打开,即关状态;为防止混淆,以下翻译全部称1为开,0为关。)

  如果你想要一个非常非常缓慢而且可控的时钟,最好的办法就是用触发器。把前面的“按钮开关”里的按钮换成计时器(timer),然后把输出端连接到另一个按钮开关的clock端,将可以慢两倍,继续连接直到最后变得足够慢。做出来的这个装置叫做二进制计数器。

  有一个办法就是使用我们刚才介绍过的触发器,不同的是还要加入一个我们之前在振荡器中用过的非门。

  1. 两个玩家从各自的一边进入房间,然后关上他们身后的门。门只能从内侧来控制。

  虽然Impervium控制台(Impervium consoles)好棒好棒的,不过有时候你会因为某些原因而想要用按钮来开关某样东西,但是按钮发射的是一个脉冲信号,那我们怎么用按钮来制作一个开关装置呢?

  还有两个输出端,考虑到Starbound只有正输出端Q,你并不需要去理解这张图之后再去使用锁存器。

  按钮就是这个状态机的时钟信号,每按一下按钮就会引入一个脉冲信号,用来更新状态。

  锁存器属于电平敏感,意思就是只要当Enable端为打开状态的时候,输出就可以被改变。

  当开关打开的时候,输入端将会在开与关之间快速闪烁。当开关关闭的时候,输出端状态就固定住了。你可以用这个来让灯闪烁,制造一个伪随机掷硬币的装置,等等

  一个相当缓慢的时钟就是定时器元件(游戏自带的Timer,译者注),它大约每秒闪烁一次。你可以在输入端输入1来冻结它的状态。

  如果你愿意,你可以把Enable想象为像开关一样在控制D端和输出端。严格来说这是不正确的,但也不失为一个不错的比喻。

  这里有个衍生:如果你把开关换成2个压力板,会发现结果变得直观而且很有意思!当从右往左走经过2个压力板的时候,输出保持为开,然后再从从左往右返回的时候,输出变为关。一个实用的应用就是,进门自动开门/灯,出门自动关门/灯。如果要改变顺序的话,只要简单把两个压力板的连接反一下就行。

  把奇数个非门串联在一起,就可以创建3-clock[3周期]、5-clock[5周期],以此类推,很明显这些会慢3倍和5倍。使用偶数个则会创建一个稳定的回路,这是没用的。

  为了让大家不被大片的专有名词给吓着了,我来解释一下:数字电路中把低电平定义为0,高电平定义为1,从0到1的过程被称为上升沿,反之被称为下降沿。具体来说,一个按钮从未激活到激活的过程,就叫上升沿,反之叫下降沿。

  如果我们使用一个锁存器,在有按钮脉冲的时候,输出状态会改变好几次。由于触发器是边沿敏感,只有在每次脉冲的时候才会更新,所以我们需要的是一个触发器,而不是一个锁存器。

  如果你用一个按钮去代替压力板,这就是一个偷懒的办法来制造一个开关装置,而不使用控制台。之后我们会看到,如何来制造一个一键切换开关。

  这个电路使用一个非门反馈回路和一个开关(一个Impervium控制台)来创建一个振荡器。(注意不是压力板,这是个控制台console,如果你还不能造这个东西,完全可以其他控制台代替,比如猴子的电脑,而众所周知,在SB中console其实就是一个开关,译者注)

  对于那些想要了解技术原理的人,这是D锁存器在逻辑电路中的实现。C代表控制(Control),也就是Enable。

  最快的振荡器就是把非门首尾相连。我们可以叫它1-clock[单周期](从Minecraft术语那偷来的),因为每次闪烁之间只有一个非门的延迟。

  【Q】和【Q非】输出是互补关系,一个是1,另一个一定是0,所以只需要一个输出端就行。

  2. 左边的玩家在上面,而右边的玩家在下面,两个人都各自在两扇门之间扔下一个物品。当另一个玩家也已经扔下他的物品的时候,你需要站到压力板上,表示你已经做好准备来完成交易了。

  Enable:Enable决定了D端有没有连接上输出端。当Enable为开(1),输出的值就等于输入的值。当Enable为关(0),输出的值就被固定在它之前的状态了,此时D端不再起任何作用。

  星界边境锁存器和触发器教程主要是要教大家如何使用锁存器(Latch),通过实例图文讲解,让你快速上手,并运用自如。

  锁存器最简单也是最常用的用途就是“锁住”某样东西,我用一个陷阱来当例子。

  这个方法远比慢时钟更高效,因为随着门数量的增加,缓慢程度会呈几何增长,而不是链式的线性变化。

  在这个例子用的是开关,效果是当且仅当clock端的开关由开状态变为关状态时,输出端状态才会改变,并且只会变成和D端相同的状态。

  如果我走上一个压力板,Enable端和D端同时被激活,同时陷阱也被激活。当我从压力板上下来的时候,陷阱还是会继续保持激活状态这是因为Enable端和D端同时被关掉了,输出端被固定在激活状态。(这就是锁住了,译者注)

  如下所示的触发器就是一个下降沿触发的D触发器。当Clock端(时钟信号)从开变为关的时候,输出状态将会改变。这大概是最简单的触发器了,只需要两个锁存器和一个非门。注意clock端连接着两个点。

  3. 两个玩家都需要站在各自的压力板上,以便让站在上方的玩家按一下那个按钮,这会切换所有门的状态(使用了2个切换状态机)。这样就可以防止你接触到你所扔下的物品,同时让你可以去捡起对方玩家扔下的物品。两个玩家交换了位置,从另一个玩家的那扇门出去。

图说天下

×
织梦二维码生成器
企业趣味运动
佛山国际体育馆