您的位置: 單機 > 攻略 > 圖文攻略 > 攻略詳情

星界邊境 鎖存器和觸發(fā)器實例進階教程

時間:2013-12-29 23:23:02
  • 來源:3DM論壇-天空の遺跡
  • 作者:fcz1234
  • 編輯:ChunTian
0

星界邊境 鎖存器和觸發(fā)器實例進階教程

星界邊境 鎖存器和觸發(fā)器實例進階教程

這篇教程主要是要教大家如何使用鎖存器(Latch),同時也可以讓大家在這個貼子里展示你所制作的任何時序邏輯電路。而如果你要找基礎的電路教程,可以點我閱讀

鎖存器(Latch)是什么?

鎖存器是一種非常簡單的存儲單元。一個鎖存器可以存儲一個二進制值(1或0)。

在Starbound里面使用的是一個D鎖存器,它有2個輸入端和1個輸出端。

D:D代表數(shù)據(jù)(Data)。你輸入的是什么決定了輸出的就是什么。

Enable:Enable決定了D端有沒有連接上輸出端。當Enable為開(1),輸出的值就等于輸入的值。當Enable為關(0),輸出的值就被固定在它之前的狀態(tài)了,此時D端不再起任何作用。

如果你愿意,你可以把Enable想象為像開關一樣在控制D端和輸出端。嚴格來說這是不正確的,但也不失為一個不錯的比喻。

(譯者注:記住這個結論!這是基礎!?。?/strong>

(圖注:1=閉合,即開狀態(tài),0=打開,即關狀態(tài);為防止混淆,以下翻譯全部稱1為開,0為關——譯者注)

對于那些想要了解技術原理的人,這是D鎖存器在邏輯電路中的實現(xiàn)。C代表控制(Control),也就是Enable。

還有兩個輸出端,考慮到Starbound只有正輸出端Q,你并不需要去理解這張圖之后再去使用鎖存器。

(譯者注:【Q】和【Q非】輸出是互補關系,一個是1,另一個一定是0,所以只需要一個輸出端就行)

我知道你一定在想:“這真是極好的!但是我到底該怎么去用這玩意?”

好問題!鎖存器有很多的用處,這里就有幾個基礎的例子。


鎖定陷阱 Locking Trap

鎖存器最簡單也是最常用的用途就是“鎖住”某樣東西,我用一個陷阱來當例子。

如果我走上一個壓力板,Enable端和D端同時被激活,同時陷阱也被激活。當我從壓力板上下來的時候,陷阱還是會繼續(xù)保持激活狀態(tài)——這是因為Enable端和D端同時被關掉了,輸出端被固定在激活狀態(tài)。(這就是鎖住了,譯者注)

重置(reset)按鈕用于關閉陷阱。按鈕被連接到Enable端,可以使輸出端的狀態(tài)變?yōu)殛P。

如果你用一個按鈕去代替壓力板,這就是一個偷懶的辦法來制造一個開關裝置,而不使用控制臺。之后我們會看到,如何來制造一個一鍵切換開關。

振蕩器(2-clock[2周期])

這個電路使用一個非門反饋回路和一個開關(一個Impervium控制臺)來創(chuàng)建一個振蕩器。(注意不是壓力板,這是個控制臺console,如果你還不能造這個東西,完全可以其他控制臺代替,比如猴子的電腦,而眾所周知,在SB中console其實就是一個開關,譯者注)

當開關打開的時候,輸入端將會在開與關之間快速閃爍。當開關關閉的時候,輸出端狀態(tài)就固定住了。你可以用這個來讓燈閃爍,制造一個偽隨機擲硬幣的裝置,等等…

你可以把奇數(shù)個非門串聯(lián)在一起,創(chuàng)建一個反饋延遲,來減緩震蕩頻率。

如果你想更多了解時鐘信號,可以看后面關于時鐘說明。

D觸發(fā)器 D-Flip-flop

鎖存器屬于電平敏感,意思就是只要當Enable端為打開狀態(tài)的時候,輸出就可以被改變。

而觸發(fā)器則是邊沿敏感,意思就是當時鐘信號改變的時候,輸出狀態(tài)改變(在時鐘輸入的上升沿和下降沿,取決于類型)。這對于制作狀態(tài)機、計數(shù)器和寄存器非常有用。

(譯者注:為了讓大家不被大片的專有名詞給嚇著了,我來解釋一下:數(shù)字電路中把低電平定義為0,高電平定義為1,從0到1的過程被稱為上升沿,反之被稱為下降沿。具體來說,一個按鈕從未激活到激活的過程,就叫上升沿,反之叫下降沿。

如下所示的觸發(fā)器就是一個下降沿觸發(fā)的D觸發(fā)器。當Clock端(時鐘信號)從開變?yōu)殛P的時候,輸出狀態(tài)將會改變。這大概是最簡單的觸發(fā)器了,只需要兩個鎖存器和一個非門。注意clock端連接著兩個點。

下一個例子里面我們將會用到這個觸發(fā)器。

(譯者補充:作者在這個例子用的是開關,效果是,當且僅當clock端的開關由開狀態(tài)變?yōu)殛P狀態(tài)時,輸出端狀態(tài)才會改變,并且只會變成和D端相同的狀態(tài)。

這里有個衍生:如果你把開關換成2個壓力板,會發(fā)現(xiàn)結果變得直觀而且很有意思!當從右往左走經(jīng)過2個壓力板的時候,輸出保持為開,然后再從從左往右返回的時候,輸出變?yōu)殛P。一個實用的應用就是,進門自動開門/燈,出門自動關門/燈。如果要改變順序的話,只要簡單把兩個壓力板的連接反一下就行。

用按鈕操縱的開關 Pushbutton Toggle

雖然Impervium控制臺(Impervium consoles)好棒好棒的,不過有時候你會因為某些原因而想要用按鈕來開關某樣東西,但是按鈕發(fā)射的是一個脈沖信號,那我們怎么用按鈕來制作一個開關裝置呢?

有一個辦法就是使用我們剛才介紹過的觸發(fā)器,不同的是還要加入一個我們之前在振蕩器中用過的非門。

這樣就創(chuàng)建了一個狀態(tài)機,其輸出狀態(tài)與它之前的狀態(tài)相反:

Q[n] = NOT( Q[n-1] )

按鈕就是這個狀態(tài)機的時鐘信號,每按一下按鈕就會引入一個脈沖信號,用來更新狀態(tài)。

如果我們使用一個鎖存器,在有按鈕脈沖的時候,輸出狀態(tài)會改變好幾次。由于觸發(fā)器是邊沿敏感,只有在每次脈沖的時候才會更新,所以我們需要的是一個觸發(fā)器,而不是一個鎖存器。

交易室 Trading Room

Eht和我用按鈕開關做了一個交易室。Starbound目前還沒有用于交易機制,所以我想,制作一個不依賴于信譽系統(tǒng)的交易方式會很有意思。下面是它的工作原理:

1. 兩個玩家從各自的一邊進入房間,然后關上他們身后的門。門只能從內(nèi)側來控制。

2. 左邊的玩家在上面,而右邊的玩家在下面,兩個人都各自在兩扇門之間扔下一個物品。當另一個玩家也已經(jīng)扔下他的物品的時候,你需要站到壓力板上,表示你已經(jīng)做好準備來完成交易了。

3. 兩個玩家都需要站在各自的壓力板上,以便讓站在上方的玩家按一下那個按鈕,這會切換所有門的狀態(tài)(使用了2個切換狀態(tài)機)。這樣就可以防止你接觸到你所扔下的物品,同時讓你可以去撿起對方玩家扔下的物品。兩個玩家交換了位置,從另一個玩家的那扇門出去。

關于振蕩器(亦稱時鐘)的說明

你可以用不同于之前的鎖存器時鐘的方法來創(chuàng)建時鐘。

一個相當緩慢的時鐘就是定時器元件(游戲自帶的Timer,譯者注),它大約每秒閃爍一次。你可以在輸入端輸入1來凍結它的狀態(tài)。

最快的振蕩器就是把非門首尾相連。我們可以叫它1-clock[單周期](從Minecraft術語那偷來的),因為每次閃爍之間只有一個非門的延遲。

把奇數(shù)個非門串聯(lián)在一起,就可以創(chuàng)建3-clock[3周期]、5-clock[5周期],以此類推,很明顯這些會慢3倍和5倍。使用偶數(shù)個則會創(chuàng)建一個穩(wěn)定的回路,這是沒用的。

Kudos to MeMyselfAnDie for how to control odd-numbered clocks. It hadn't occurred to me in the first version of this note.(恕我無能,這句實在不知道什么意思……MeMyselfAnDie似乎是官方論壇上的某個人)

如果你想要偶數(shù)周期的時鐘,利用與門添加一個使能電路:

如果你想要一個非常非常緩慢而且可控的時鐘,最好的辦法就是用觸發(fā)器。把前面的“按鈕開關”里的按鈕換成計時器(timer),然后把輸出端連接到另一個按鈕開關的clock端,將可以慢兩倍,繼續(xù)連接直到最后變得足夠慢。做出來的這個裝置叫做二進制計數(shù)器,我已經(jīng)在這個帖子里貼出了一個4位二進制計數(shù)器。

這個方法遠比慢時鐘更高效,因為隨著門數(shù)量的增加,緩慢程度會呈幾何增長,而不是鏈式的線性變化。

點擊進入3DMGAME《星界邊境》游戲論壇專區(qū)

9.3
已有100人評分 您還未評分!

玩家點評 0人參與,0條評論)

收藏
違法和不良信息舉報
分享:

熱門評論

全部評論

STEAM正版購買
今日特惠星界邊境
星界邊境
-31%¥48¥33
立即購買
3DM自運營游戲推薦 更多+