📄 slavr742.asm
字号:
;步进电机参考资料
;型号:MA82135; 相数:2相; 电压:4.5V; 电流/相:0.12A; 电阻欧姆:34Ω/相; 重量:30g
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;*********************************************
;* 步进电机控制程序(单极1-2相) *
;* *
;*newmeter.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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -