作者move779 (爆卦我專長)
看板ASM
標題[問題]怎麼讓LED左移
時間Sun Mar 1 21:31:49 2009
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)
1F:推 ruemann:P0~P3的暫存器位置、左移、C,這三個東西就可以了 03/01 22:44
2F:→ ruemann:另外一種是暴力解,就是把所有情況列出來,直接load進去 03/01 22:47
3F:推 dinopalm:跑馬燈不必寫得很漂亮吧 如同二樓說的 每種狀況都寫出來 03/01 23:08
4F:→ dinopalm:左移右移 交叉 來回跑 一招就搞定了 03/01 23:09
5F:→ move779:謝謝 r大的第一個方法很快 03/03 08:45
6F:→ move779:也謝謝D大 因為剛接觸,所以沒想過還有這樣方法 03/03 08:47
7F:推 ast9869:用C寫的話就很快了 DWORD dwLED=0x7ff; dwLED=dwLED<<1; 03/07 11:41
8F:推 ast9869:P0=dwLED&0xff; P1=(dwLED>>8)&0xff; P2=(dwLED>>16)&0xff 03/07 11:44
9F:→ ast9869:然後再判斷dwLED是否溢位,溢位就LowByte or 0x01 03/07 11:48