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