[請益] 請求大師幫查看8051的程式

看板ASM (組合語言)作者 (最長的電影)時間15年前 (2009/09/30 11:12), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
由於最近學習控制感測器與馬達 然後程式不知怎麼的 怎麼修改都卡關 想請問下列程式有問題嗎 當後面感測器動作到一半 機器就會停止動作 請教是哪裡出了問題 感謝 程式如下. 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

10/01 01:01, , 1F
ANL A,#0FF 是廢話(無效指令)然後判斷邏輯很ORZ但是
10/01 01:01, 1F

10/01 01:02, , 2F
應該可以工作。但是有幾個例外狀況不知道你有沒想過:傳
10/01 01:02, 2F

10/01 01:03, , 3F
感器不只有一個被觸動,那就不會只有1248而已。另外,正
10/01 01:03, 3F

10/01 01:03, , 4F
常傳感器都是觸發為0,你確你的電路定是觸發為1嗎?
10/01 01:03, 4F
文章代碼(AID): #1AmioXWj (ASM)
文章代碼(AID): #1AmioXWj (ASM)