新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機驅動步進電機(匯編語言)

51單片機驅動步進電機(匯編語言)

作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
在這里介紹一下用51單片機驅動步進電機的方法。
這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!!!
該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:$、6:黑色。
采用51驅動ULN2003的方法進行驅動。
ULN2003的驅動直接用單片機系統(tǒng)的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。


;******************************************************************
  ;****************************步進電機的驅動***************************************
  ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19
  ;---------------------------------------------------------------------------------
  ; 步進電機的驅動信號必須為 脈沖信號!!! 轉動的速度和脈沖的頻率成正比!!!
  ; 本步進電機步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!!!
  ;---------------------------------------------------------------------------------
  ; A組線圈對應 P2.4
  ; B組線圈對應 P2.5
  ; C組線圈對應 P2.6
  ; D組線圈對應 P2.7
  ; 正轉次序: AB組--BC組--CD組--DA組 (即一個脈沖,正轉 7.5 度)
  ;----------------------------------------------------------------------------------
  ;----------------------------正轉--------------------------
  ORG 0000H
  LJMP MAIN
  ORG 0100H
  MAIN:
  MOV R3,#144 正轉 3 圈共 144 脈沖
  START:
  MOV R0,#00H
  START1:
  MOV P2,#00H
  MOV A,R0
  MOV DPTR,#TABLE
  MOVC A,@A+DPTR
  JZ START 對 A 的判斷,當 A = 0 時則轉到 START
  MOV P2,A
  LCALL DELAY
  INC R0
  DJNZ R3,START1
  MOV P2,#00H
  LCALL DELAY1
  ;-----------------------------反轉------------------------
  MOV R3,#144 反轉一圈共 144 個脈沖
  START2:
  MOV P2,#00H
  MOV R0,#05
  START3:
  MOV A,R0
  MOV DPTR,#TABLE
  MOVC A,@A+DPTR
  JZ START2
  MOV P2,A
  CALL DELAY
  INC R0
  DJNZ R3,START3
  MOV P2,#00H
  LCALL DELAY1
  LJMP MAIN
  DELAY: MOV R7,#40 步進電機的轉速
  M3: MOV R6,#248
  DJNZ R6,$
  DJNZ R7,M3
  RET
  DELAY1: MOV R4,#20 2S 延時子程序
  DEL2: MOV R3,#200
  DEL3: MOV R2,#250
  DJNZ R2,$
  DJNZ R3,DEL3
  DJNZ R4,DEL2
  RET
  TABLE:
  DB 30H,60H,0C0H,90H 正轉表
  DB 00 正轉結束
  DB 30H,90H,0C0H,60H 反轉表
  DB 00 反轉結束


評論


技術專區(qū)

關閉