PBASIC 程式設計/輸入和輸出
一個不與外部世界通訊的計算機程式確實非常無聊。程式,包括 BasicStamp 上的程式,需要進行輸入和生成輸出。
BasicStamp 有 16 個基本的 I/O 引腳,所有引腳都可以用作輸入或輸出。為了指定引腳為輸入,我們使用 INPUT 命令
INPUT 12
這將引腳 12 設為輸入引腳。為了指定引腳用作輸出,可以使用 OUTPUT 命令
OUTPUT 15
這將引腳 15 設為輸出。
INPUT 和 OUTPUT 命令會影響一個稱為 DIRS 的特殊記憶體值。DIRS,即“方向”的縮寫,是一個稱為“三態緩衝器”的特殊記憶體位置。DIRS 包含 16 位,每一位對應一個 I/O 埠。如果 DIRS 中的引腳為 0,則相應的引腳為輸入。如果 DIRS 中的引腳為 1,則相應的引腳為輸出。
例如,如果我們要將最高位元組設為輸入,將最低位元組設為輸出,我們可以編寫
DIRS = %1111111100000000
這比編寫 16 個 INPUT 和 OUTPUT 命令更容易!
I/O 埠有一個特殊的名稱,使用字首“In”或“Out”,後跟引腳號。例如,如果我們有一個名為 MyVariable 的變數,並且所有埠都正確地指定為 INPUT 或 OUTPUT,我們可以編寫以下所有內容
MyVariable = IN3
MyVariable = IN5 + 10
OUT12 = MyVariable
OUT15 = MyVariable - 10
我們可以將多個 I/O 引腳組合成多位 I/O 埠。每個埠都有一個特定的名稱
| 方向 | 字 | 位元組 | 半位元組 | 位 |
|---|---|---|---|---|
| 輸入 | INS | INL, INH | INA, INB, INC, IND | IN0 - IN15 |
| 輸出 | OUTS | OUTL, OUTH | OUTA, OUTB, OUTC, OUTD | OUT0 - OUT15 |
"S" 字尾用於表示整個 16 位字。"L" 用於最低位元組,“H” 用於最高位元組。“A”、"B"、"C" 和 "D" 用於 4 個可能的半位元組,“A” 是最低位(引腳 0-3),“D” 是最高位(引腳 12-15)。
當我們想要將資料從 BasicStamp 傳送到另一個裝置時,我們會將該資料寫入輸出埠。我們試圖與之通訊的外部裝置將從輸入埠讀取該值,並在內部使用該值。從 BasicStamp 讀取和寫入的資料值是 5 伏值。電壓過高會導致電路損壞,電壓過低無法讀取。一般來說,我們可以將我們的 1 和 0 值與電壓相關聯
| 二進位制 | 電壓 |
|---|---|
| 1 | +5V |
| 0 | 0V |
我們將在本書的主線敘述中稍作偏離,討論一下電力方面的一些問題。由於 BasicStamp 的嵌入式特性,大多數涉及 BasicStamp 的專案也會涉及某種硬體整合。將 BasicStamp 不正確地連線到外部硬體會導致晶片損壞,甚至可能對您造成傷害。
電學的基本定律,也是本書中我們需要考慮的唯一定律,是歐姆定律。歐姆定律可以寫成
v 是電壓,單位為伏特。i 是電流,單位為安培。R 是電阻,單位為歐姆。
我們知道 BasicStamp 的輸出埠提供 5V 電壓。如果電流過大,晶片可能會發熱甚至損壞。我們應該儘量將電流控制在 5 毫安以下(最好更低)。這意味著,根據歐姆定律
這意味著對於我們與 BasicStamp 一起使用的每個電路,我們應該至少有 1000Ω 的電阻。任何小於該值的電阻都會增加對 BasicStamp 的損壞風險。