iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
SideProject30

人機控制介面之開發應用系列 第 19

熟悉Arduino的晶片ATmega晶片處理器之DDRD, PORTD指令

  • 分享至 

  • xImage
  •  
  • DDRD: 這是數據方向註冊(Data Direction Register)的縮寫,專為D埠(Port D)設計。
    這註冊決定了與它相關的腳位是輸入還是輸出。
    1 代表該腳位為輸出。
    0 代表該腳位為輸入。
    例如,DDRD = B11110000; 將腳位 D7 到 D4 設置為輸出,而 D3 到 D0 設置為輸入。

  • PORTD: 這是數據註冊(Data Register),也是專為D埠設計的。
    當與DDRD註冊相關的腳位被設置為輸出時,PORTD 註冊會控制該腳位的高低電平狀態。
    ex. PORTD = B11000000; 腳位 D7 和 D6 設置為高電平,而 D5 到 D0 則維持在低電平。

Arduino程式碼

byte index = 0;
const byte LEDs[10] = {
  B1111110, B0110000, B1101101, B1111001, B0110011,
  B1011011, B1011111, B1110000, B1111111, B1111011
};

void setup() {
  DDRD = B11111111; //0~7 腳位,全部設定為"輸出"
}

void loop() {
  //From LEDs 陣列中,取出 0~9 元素
  //首先取第0個元素,由"埠口D"輸出
  PORTD = LEDs[index];

  index ++; // index = index +1; 每次 loop 時 index + 1

  //確保 index 在0~9循環,當index=10, 賦其值為0
  if (index == 10){
    index = 0;
  }
  delay(1000);
}

程式碼ino檔 github下載

實作影片
Yes

參考資料超圖解Arduino 互動設計入門


上一篇
共陰極七段顯示器-利用餘數原理精簡 Arduino code
下一篇
電路設計-佈線(Layout)-Fritzing
系列文
人機控制介面之開發應用37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言