[問題]怎麼讓LED左移

看板ASM (組合語言)作者 (爆卦我專長)時間15年前 (2009/03/01 21:31), 編輯推噓4(405)
留言9則, 4人參與, 最新討論串1/1
P3.7 P2.5 P0.0 □□□□□□□□□□■■■■■■■■■■■■■■■■■■■■■■ ←←←←←←←←←←←← □□□□□□□□□■■■■■■■■■■■■■■■■■■■■■■□ □□□□□□□□■■■■■■■■■■■■■■■■■■■■■■□□ ■■■■■■■■■■■■■■■■■■■■■■□□□□□□□□□□ 如上塗滿抽象的,就是要亮過去 但是我不知道怎麼寫左移的而且要循環下去 就是P0減一然後P2加一 希望能交我該怎麼寫下去 程式如下 ORG 00H JMP START START: MOV A,#0 MOV P0,#0 MOV P1,#0 MOV P2,#0 MOV P3,#0 MOV R3,#0 MOV R5,#08 CALL PD MOV R5,#08 CALL PE MOV R5,#06 CALL PF MOV R5,#08 PD: INC A MOV R3,A MOV P0,R3 RLC A MOV R6,A DJNZ R5,PD CLR A CLR C MOV R6,A ret PE: INC A MOV R3,A MOV P1,R3 RLC A MOV R6,A DJNZ R5,PE CLR A CLR C MOV R6,A ret PF: INC A MOV R3,A MOV P2,R3 RLC A MOV R6,A DJNZ R5,PF RET -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.240.249.205 ※ 編輯: move779 來自: 210.240.249.205 (03/01 21:32) ※ 編輯: move779 來自: 210.240.249.205 (03/01 21:36)

03/01 22:44, , 1F
P0~P3的暫存器位置、左移、C,這三個東西就可以了
03/01 22:44, 1F

03/01 22:47, , 2F
另外一種是暴力解,就是把所有情況列出來,直接load進去
03/01 22:47, 2F

03/01 23:08, , 3F
跑馬燈不必寫得很漂亮吧 如同二樓說的 每種狀況都寫出來
03/01 23:08, 3F

03/01 23:09, , 4F
左移右移 交叉 來回跑 一招就搞定了
03/01 23:09, 4F

03/03 08:45, , 5F
謝謝 r大的第一個方法很快
03/03 08:45, 5F

03/03 08:47, , 6F
也謝謝D大 因為剛接觸,所以沒想過還有這樣方法
03/03 08:47, 6F

03/07 11:41, , 7F
用C寫的話就很快了 DWORD dwLED=0x7ff; dwLED=dwLED<<1;
03/07 11:41, 7F

03/07 11:44, , 8F
P0=dwLED&0xff; P1=(dwLED>>8)&0xff; P2=(dwLED>>16)&0xff
03/07 11:44, 8F

03/07 11:48, , 9F
然後再判斷dwLED是否溢位,溢位就LowByte or 0x01
03/07 11:48, 9F
文章代碼(AID): #19gev8aK (ASM)
文章代碼(AID): #19gev8aK (ASM)