# Arduino LED陣列動態顯示_主程式碼解釋 >撰寫人[name=AmiYaku1049] [首頁--天空路1049號](https://skys-kid-lai.github.io/1004/) >>[time=Sat, Apr 2, 2022 7:08 PM] --- ## 實驗目的 撰寫程式碼,使LED能夠顯示動態的文字 ## 主程式碼及解釋 ```clink= void loop() { for(int pp = 0; pp < 80; pp++) { for(int dup = 0; dup < speed; dup++) { for(int col = 0; col < 8; col++) { digitalWrite(g1, 0); pp1 = pp + col; if(pp1 > 79) pp1 -= 79; row = tab[pp1]; for(int i = 0; i < 8; i++) { if(row & 1) digitalWrite(seg[i], 0); else digitalWrite(seg[i], 1); row >>= 1; } scanOut(col); digitalWrite(g1, 1); delay(1); } } } } ``` **我的解釋方式:** * **pp**:tab[]陣列有80個內容物 * **col**:顯示器有8個直排要跑 * **digitalWrite**:讀取後面的值,並對前面的做出反應 * **g1**:連接解碼器74138的接腳。若在digitalWrite,後面為0則解碼器輸出11111111關閉LED(防殘影);若後面為1則解碼器開始解碼 * **pp1**:比起直接用pp放在tab[]裡面,不一樣的地方在於,pp1因為是pp+col會產生重複。例如說,第一次是:0,1,2,3,4,5,6,7,8 而第二次是:1,2,3,4,5,6,7,8,9。我認為是為了讓該排要亮的地方向左,讓LED產生動態輸出的感覺。 * **row**:代表了tab[]該位置的代碼,解碼後會產生二進位置的一組8位元。若row = 1,則seg[i] = 0 * **seg[i]**:一排LED的第i顆LED。測試後,在digitalWrite內,若為0,則不亮;若為1,則該顆LED會亮