I/O Ports
Arduino 板子所用的晶片 (以 ATmega8 和 ATmega168/328 為例) 有三個 8-bit 的 PORTs :
- B: 對應 Arduino 的 digital pin 8 to 13
- C: 對應 Arduino 的 analog input pin 0 to 5
- D: 對應 Arduino 的 digital pins 0 to 7
Arduino 與 AVR 晶片腳位對應表
底下這張圖顯示 Arduino 跟 ATmega8 之間的腳位對應關係:
▲ 圖片來源: arduino.cc
例如,Arduino 的 pin 13 對應的腳位為 PB5。
而底下是 Arduino 跟 ATmega168 的腳位對應關係圖:
▲ 圖片來源: arduino.cc
Arduino UNO 和 Arduino Duemilanove 用的晶片都是 ATmega328,Arduino Diecimila 用的是 ATmega168,而早期的 Arduino USB 則是使用 ATmega8。
註: ATmega328 跟 ATmega168 的腳位配置 (Pinout) 是一模一樣的。
2013/4/12 補充: 有個叫 Pighixxxx 的義大利人畫了很多 Arduino 的 pinout diagrams,搭配這些圖學習會更方便。
I/O Ports 暫存器簡介
AVR 晶片每個 port 都受三個暫存器控制,分別是 (x 代表 B, C, D):
- DDRx 暫存器: 用來決定腳位是 INPUT 或 OUTPUT。
- PORTx 暫存器: 用來控制腳位輸出訊號為 HIGH 或為 LOW
- PINx 暫存器: 用來讀取腳位的輸入訊號
下一步
接下來將說明 I/O Ports 暫存器的使用方法,你將透過幾個簡單的例子來學習控制 I/O Ports。
0 意見:
張貼留言