步进电机的控制原理和程序
2013-02-15
标签: 步进电机

步进电机的控制原理和程序

选自北航出版 耿德根主编《高速嵌入式单片机原理与应用》第七章7.4.2

源程序:SLAVR742.ASM

自从六十年代初期步进电机面世以来,在过去几年它的重要性大大提高了。它用来驱动时钟和其他采用指针的仪器,打印机、绘图仪、磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等的机械装置。关于马进电机工作原理请参考有关资料。

下面用单极1-2相激磁方法步进电机做实验,即1极、2极、1极、2极、....极以次循环,如何用单极二相激该方法控制步进电机,由读者或用户自行

编制程序实验。


;实验选用4.5V步进电机,用5V即可,实验时节省一组步进电机驱动电源;

;型号:MA82135; 相数:2相; 电压:4.5V; 电流/相:0.12A; 电阻欧姆:34Ω/相; 重量:30g

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

;* 步进电机控制程序(单极1-2相) *

;* *

;*SLAVR742.ASM *

;*use ULN2803 ;使用PC0-PC3 驱动步进电机 *

;*use 11-17new bord *

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

        .include"8515def.inc"
        .def temp =r16
        .def dt =r19
        .def np =r17
        .def step =r18
        .def TStep =r20
        .def cnt =r21
        .equ turntab=0x0200
        .org 
                        
        rjmp RESET
        .cseg
        .org 0x010
RESET:  
        ldi temp,low(RAMEND)   ;设堆栈
        out SPL,temp
        ldi temp,high(RAMEND)
        out SPL+1,temp
        ser TEMP       ;C口设置为输出
        OUT ddrc,TEMP
        ldi zl,low(turntab*2)  ;步进电机旋转资料指针
        ldi zh,high(turntab*2)
        ldi np,4
        ldi temp,$44
        out portc,temp ;初始化
        ldi TStep,$25
        rcall delay
        ldi cnt,10
        clt
rep:    ldi step,192
        ldi TStep,1    ;1--255
        rcall turn
        dec cnt
        brne rep
loop:   nop
        rjmp loop
;*************************************************************

; t=1 uncircle turn ;T=1逆时针转 *

; t=0 circle turn ;T=0顺时针转 *

; 96 step a turn *

; TStep is time of a step ; *

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

turn:   brts uncircle  ;判转向
        inc np         ;正转
        cpi np,8
        brne next
        clr np
next:   push zl
        add zl,np
        lpm
        out portc,r0
        pop zl
        rcall delay
        dec step
        brne turn
        ret
uncircle:;反转

        dec np
        cpi np,$ff
        brne next
        ldi np,$07
        rjmp next
delay:  push TStep     ;延时子程序
del1:   ldi dt,70
del2:   push dt
del3:   dec dt
        brne del3
        pop dt
        dec dt
        brne del2
        dec TStep
        brne del1
        pop TStep
        ret
        .org turntab
; 0 1 2 3 4 5 6 7 ;步进电机旋转资料表

        .db 0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33


可能会用到的工具/仪表
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号