跳轉到內容

PBASIC 程式設計/輸入和輸出

來自華夏公益教科書,開放的書籍,面向開放的世界

一個不與外部世界通訊的計算機程式確實非常無聊。程式,包括 BasicStamp 上的程式,需要進行輸入和生成輸出

輸入和輸出

[編輯 | 編輯原始碼]

BasicStamp 有 16 個基本的 I/O 引腳,所有引腳都可以用作輸入或輸出。為了指定引腳為輸入,我們使用 INPUT 命令

INPUT 12

這將引腳 12 設為輸入引腳。為了指定引腳用作輸出,可以使用 OUTPUT 命令

OUTPUT 15

這將引腳 15 設為輸出。

DIRS 暫存器

[編輯 | 編輯原始碼]

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 的損壞風險。

華夏公益教科書