自从六十年代初期步进电机面世以来,在过去几年它的重要性大大提高了 它用来驱动时钟和其 他采用指针的仪器,打印机 绘图仪 磁盘光盘驱动器 各种自动控制阀 各种工具,还有机器人等 的机械装置 关于马进电机工作原理请参考有关资料 下面用单极 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 $0000 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
本文版权归原作者所有,同心智造网(www.hahakm.com)转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。