作者nicebluesky (最長的電影)
看板ASM
標題[請益] 請求大師幫查看8051的程式
時間Wed Sep 30 11:12:30 2009
由於最近學習控制感測器與馬達
然後程式不知怎麼的
怎麼修改都卡關
想請問下列程式有問題嗎
當後面感測器動作到一半
機器就會停止動作
請教是哪裡出了問題
感謝
程式如下.
SCAN:
MOV A,P0
MOV C,P1.3
RLC A
MOV C,P1.2
RLC A
MOV C,P1.1
RLC A
MOV C,P1.0
RLC A
ANL A,#FFH ;由於感測器的接腳分別是P0的0-3和
P1的0-3腳位想把他都丟進A裡面做判斷動作
CJNE A,#08H,R
JMP N1
R:
CJNE A,#04H,L
JMP N1
L:
CJNE A,#02H,LLL
JMP N2
LLL:
CJNE A,#01H,BRR
JMP N2
BRR
CJNE A,#80H,BR
JMP N2
BR:
CJNE A,#40H,BL
JMP N2
BL:
CJNE A,#20H,BLL
JMP N1
BLL:
CJNE A,#10H,GG
JMP N1
GG:
CJNE A,#00H,SCAN
JMP N4
N1:
CALL LEFT
JMP SCAN
N2:
CALL RIGHT
JMP SCAN
N4: 以下是把數值丟進另外的馬達副程式讓馬達控制轉動角度
MOV R0,#6
MOV LEF,#120
MOV RIG,#130
MOV MED,#100
CALL AXN
;
MOV R0,#6
MOV LEF,#45
MOV RIG,#55
MOV MED,#100
CALL AXN
;
MOV R0,#3
MOV LEF,#45
MOV RIG,#55
MOV MED,#80
CALL AXN
;
MOV R0,#6
MOV LEF,#120
MOV RIG,#130
MOV MED,#80
CALL AXN
MOV R0,#6
MOV LEF,#130
MOV RIG,#130
MOV MED,#100
CALL AXN
;
MOV R0,#6
MOV LEF,#130
MOV RIG,#55
MOV MED,#100
CALL AXN
;
MOV R0,#3
MOV LEF,#130
MOV RIG,#55
MOV MED,#80
CALL AXN
;
MOV R0,#6
MOV LEF,#130
MOV RIG,#130
MOV MED,#80
CALL AXN
JMP SCAN
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.244.170.43
1F:推 WolfLord:ANL A,#0FF 是廢話(無效指令)然後判斷邏輯很ORZ但是 10/01 01:01
2F:→ WolfLord:應該可以工作。但是有幾個例外狀況不知道你有沒想過:傳 10/01 01:02
3F:→ WolfLord:感器不只有一個被觸動,那就不會只有1248而已。另外,正 10/01 01:03
4F:→ WolfLord:常傳感器都是觸發為0,你確你的電路定是觸發為1嗎? 10/01 01:03