作者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