最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【深圳 IO 攻略】第 25 關(guān):肉食打印機

2022-06-08 11:51 作者:ココアお姉ちゃん  | 我要投稿

本文首發(fā)于 B 站《深圳 IO》文集(https://www.bilibili.com/read/readlist/rl569860)。原創(chuàng)不易,轉(zhuǎn)載請注明出處。

關(guān)卡展示

本關(guān)跟第 14 關(guān)《三明治合成器》很像,都是通過讀取小鍵盤來給若干輸出口輸出對應(yīng)的信號。

首先,【壓出機】信號對于三種肉食都是一樣的,都是 7 秒鐘的 100 信號。只有三個閥的信號是不一樣的。

如果我們將閥 0、閥 1、閥 2 依次接到 DX-300 的 p2、p1、p0 口上,那么用 DX-300 的語言描述三種肉食,我們可以得到如下的波形:

  1. 111×1s,0×1s,101×1s,0×1s,101×1s,0×1s,111×1s

  2. 0×1s,10×2s,0×1s,10×2s,0×1s

  3. 11×7s

其中 3 號肉食的波形最簡單,可以由主芯片自己完成。而 1 號、2 號肉食的波形較為復(fù)雜,主芯片里寫不下,需要委托其他的芯片來代為生成波形。電路圖和代碼如下:

上方的芯片用于生成 1 號肉食的波形,右邊的芯片用于生成 2 號肉食的波形,都是硬編碼,不再闡述。下方的芯片用于接收小鍵盤輸入及生成 3 號肉食的波形。首先等待小鍵盤輸入(slx x1),然后對該值做三態(tài)判斷(tcp x1 2)。如果是 1 號肉食,將波形的初值 111 發(fā)給上方芯片,委托它去生成 1 號肉食的波形(- mov 111 x0, - jmp 8)。如果是 3 號肉食,則由自身生成時長 7 秒的 11 信號,將初值發(fā)給 DX-300(+ mov 11 x2, + jmp 8)。如果是 2 號肉食,則將開頭的?1 秒睡眠時長發(fā)送給右邊的芯片,委托它去生成 2 號肉食的波形(mov 1 x3)。做完以上工作后,生成時長 7 秒的【壓出機】信號(mov 100 p1, slp 7),等待閥信號也正確生成后,強制將【壓出機】和三個閥信號都清零(mov p1 x2)。

點擊左下角的【模擬】,稍等片刻,便會彈出結(jié)算界面:

優(yōu)化成本和代碼行數(shù)

我們可以將 1 號和 2 號肉食的 7 秒波形存入 ROM 中,然后使用循環(huán)結(jié)構(gòu)來大幅減少代碼行數(shù)。一塊 ROM 14 格空間正好可以存下兩塊肉食,相比于用三塊芯片硬編碼的設(shè)計方案,成本也可以大幅減少。

我們觀察一下這個 ROM:地址 7~13?存儲的是肉食 1 的 7 秒波形,地址 14~20(即 0~6)存儲的是肉食 2 的 7 秒波形。起始地址 = 肉食編號×7。

然后我們來看芯片里的代碼。首先等待小鍵盤的輸入(slx x2)并將小鍵盤的值存入 acc(mov x2?acc),并激活【壓出機】信號(mov 100 p1)。如果輸入是 3(teq acc 3),那么生成持續(xù) 7 秒的 11 閥信號后(+ mov 11 x2, + slp 7),跳到最后強制清除【壓出機】和所有的閥信號(mov p1 x3)。如果輸入不是 3,那么將輸入值乘以 7 后,得到對應(yīng)肉食波形在 ROM 中的起始地址(- mul 7)。并將 ROM 的地址指針置為該起始地址(- mov acc?x1)。接下來,從 ROM 中讀取一格波形數(shù)據(jù)并發(fā)送給 DX-300(- mov x0 x3),休眠一秒后(slp 1)檢查是否已經(jīng)讀取完畢,地址指針是否到達了 0 或 7(- teq x1 0, - teq x1 7)。如果尚未到達 0 或 7 地址,跳回到第 9 行繼續(xù)讀下一個波形(- jmp 9),直到到達 0 或 7 地址,將 7?秒的波形全部讀取并發(fā)送完畢后,強制清除【壓出機】和所有的閥信號(mov p1 x3)。

成本 ¥14→¥8,代碼行數(shù) 33→14。

【深圳 IO 攻略】第 25 關(guān):肉食打印機的評論 (共 條)

分享到微博請遵守國家法律
富宁县| 迁西县| 堆龙德庆县| 大姚县| 湘潭县| 平武县| 运城市| 伊金霍洛旗| 沾化县| 武定县| 永嘉县| 鱼台县| 洛南县| 建瓯市| 永泰县| 高雄县| 宝鸡市| 宁德市| 广元市| 吉木萨尔县| 安塞县| 大化| 亳州市| 南康市| 靖边县| 福海县| 章丘市| 阿图什市| 开鲁县| 米脂县| 沐川县| 南澳县| 开阳县| 黔东| 泰来县| 恩施市| 恩平市| 保靖县| 蕉岭县| 长岛县| 永昌县|