標(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