用AVR单片机驱动6线步进电机
自从六十年代初期步进电机面世以来,在过去几年它的重要性大大提高了 它用来驱动时钟和其 他采用指针的仪器,打印机 绘图仪 磁盘光盘驱动器 各种自动控制阀 各种工具,还有机器人等 的机械装置 关于马进电机工作原理请参考有关资料 下面用单极 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
提交
助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案
车规MOSFET技术确保功率开关管的可靠性和强电流处理能力
未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?
2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会
2023钢铁展洽会4月全新起航 将在日照触发更多商机