標(biāo)題: 用單片機(jī)匯編語言控制左右伺服電機(jī)的源程序有問題 [打印本頁]
作者: 匯編苦手 時(shí)間: 2018-5-3 23:58
標(biāo)題: 用單片機(jī)匯編語言控制左右伺服電機(jī)的源程序有問題
我用的是51單片機(jī)(開發(fā)板)作為處理器。左右伺服電機(jī)(parallax的)分別連接的是p1.0與p1.1。左右QT1傳感器連接p2.0與p2.1.
語言是匯編
在單獨(dú)調(diào)試右輪的調(diào)速時(shí),可以做到1.3ms順時(shí)針轉(zhuǎn),1.7ms逆時(shí)針轉(zhuǎn),程序如下。同理與左輪
ORG 0000H
START:
CLR P1.0
MOV A ,#200 低電平延時(shí)
CALL DLY100
SETB P1.0 ;;;youlun
MOV A ,#17 高電平延時(shí)
CALL DLY100
JMP START
DLY100: 延時(shí)
MOV R6 ,A
DLY1: MOV R7,#49
DLY2: DJNZ R7,DLY2
DJNZ R6 ,DLY1
RET
END
但是當(dāng)我將這兩個(gè)輪子放在一起調(diào)試時(shí)會(huì)發(fā)生兩個(gè)輪子都逆時(shí)針轉(zhuǎn)動(dòng),也就是右輪的1.3ms設(shè)置沒有起作用。這讓我十分頭疼。望各位大佬解答或者是賜教。謝謝
ORG 0000H
JMP ST
ORG 1000H
ST:
CALL y 右輪
call z 左輪
jmp ST
z:
CLR P1.1
MOV A ,#200
CALL DLY100
SETB P1.1
MOV A ,#17 左輪逆時(shí)針
CALL DLY100
ret
y:
CLR P1.0
MOV A ,#200
CALL DLY100
SETB P1.0 ;;;youlun
MOV A ,#13 右輪順時(shí)針
CALL DLY100
ret
DLY100:
MOV R6 ,A
DLY1: MOV R7,#49
DLY2: DJNZ R7,DLY2
DJNZ R6 ,DLY1
RET
END
作者: yzwzfyz 時(shí)間: 2018-5-4 20:05
按照自己的程序,畫出驅(qū)動(dòng)的波形圖來看看,你就明白了。
作者: 匯編苦手 時(shí)間: 2018-5-5 11:26
yzwzfyz 發(fā)表于 2018-5-4 20:05
按照自己的程序,畫出驅(qū)動(dòng)的波形圖來看看,你就明白了。
畫了波形圖,覺的奇怪。自己畫的和現(xiàn)實(shí)不服。
不然去借個(gè)示波器看看?
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |