- 论坛徽章:
- 0
|
最近做的工程需要用到步进电机,但由于量小,又没有厂家的选型手册,只得托人从深圳随便发了几个……
NMB (PM35L-048-HPH7)据我的测试,在单四排工作模式下,其步进角为7.5度。
驱动模块用的是ULN2003,只用了四个单元,接口用的是P3,当然程序里面把P1也定义了,在我的测试板上,P1是接LED指示单元的,只是为了调试方便而以。^_^
/*MPU=PHILIPS P89C58X2FN OSC=6MH MOTOR DRIVER=ULN2003*/
/*http://wangchunyu.cublog.cn COPY RIGHT @2006*/
h1 equ 42h /*电机缓存*/
numl equ 43h /*转数低位*/
numh equ 44h /*转数高位*/
delayl equ 45h /*延时低位*/
delayh equ 46h /*延时高位*/
delayhh equ 47h /*延时甚高位*/
org 00h
sjmp start
org 30h
start:
mov h1,#10001000b /*电机缓存初始化*/
start1:
mov delayl,#020h
mov delayh,#020h
mov delayhh,#01h /*设置延时(速度)*/
mov numl,#00ah
mov numh,#030h /*设置转数*/
lcall runl /*左转*/
mov delayl,#0ffh
mov delayh,#0ffh
MOV DELAYHH,#002H
lcall delay /*延时*/
mov delayl,#020h
mov delayh,#020h
mov delayhh,#01h /*设置延时(速度)*/
mov numl,#00ah
mov numh,#030h /*设置转数*/
lcall runr /*右转*/
mov delayl,#0ffh
mov delayh,#0ffh
mov delayhh,#00Ah
lcall delay /*延时*/
sjmp start1
runl: /*左转子程序*/
mov r4,numl
runl1:mov r5,numh /*初始化转数*/
runl2:mov a,h1
mov p1,a
mov p3,a
rl a
mov h1,a
lcall delay
djnz r5,runl2
djnz r4,runl1
reti
runr: /*右转子程序*/
mov r4,numl
runr1:mov r5,numh /*初始化转数*/
runr2:mov a,h1
mov p1,a
mov p3,a
rr a
mov h1,a
lcall delay
djnz r5,runr2
djnz r4,runr1
reti
delay: /*延时子程序*/
mov r1,delayl
l1:mov r2,delayh
l2:MOV R3,DELAYHH
l3:DJNZ R3,L3
DJNZ R2,L2
djnz r1,l1
RETI
end
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18542/showart_110685.html |
|