天天看點

c51彙編語言 步進電機,51單片機驅動步進電機(彙編語言)

在這裡介紹一下用51單片機驅動步進電機的方法。

這款步進電機的驅動電壓12V,步進角為 7.5度 . 一圈 360 度 , 需要 48 個脈沖完成!!!

該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:$、6:黑色。

采用51驅動ULN2003的方法進行驅動。

ULN2003的驅動直接用單片機系統的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。

c51彙編語言 步進電機,51單片機驅動步進電機(彙編語言)

;******************************************************************

;****************************步進電機的驅動***************************************

; 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 反轉結束