搜索
bottom↓
回复: 15

[原创diy]试验基于51单片机驱动57步进电机

[复制链接]

出0入0汤圆

发表于 2016-9-14 19:17:16 | 显示全部楼层 |阅读模式
找到一对拆机的57步进电机
是为以后的遥控小车做准备
于是先做了一个驱动试验
试验结果尚可


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2016-9-14 19:18:08 | 显示全部楼层
驱动板与驱动电路图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-9-14 19:19:27 | 显示全部楼层
相关参考资料














本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-9-14 19:21:32 | 显示全部楼层
我写的驱动代码
仅仅供坛友做参考


;试验57步进电机驱动汇编代码
;11.0592MHz晶振+AT89C2051/4051
;Lxa0最后修改于2016-9-17--V2.0
;t0备用,t1产生9600波特率
;p10p11p12p13分别对应步进电机ABCD,低电平有效
;步进角为1.8度,一圈360度,需要200个脉冲完成
;A组线圈   P1.0
;B组线圈   P1.1
;C组线圈   P1.2
;D组线圈   P1.3

org 0000h
ajmp mm               ;转主程序
org 0023h
ajmp qz               ;转串口读取指令


;主程序*******************************************************
org 0100h
mm:nop
mov p1,#0ffh           ;关闭全部
mov r0,#00h            ;读dptr首址用
mov r1,#00h            ;存放正反转脉冲数据(1圈200个脉冲,16制为c8h)
mov r2,#00h            ;存放改变转速的数据
mov r3,#00h            ;备用
mov r4,#00h            ;r4和r5短延时用
mov r5,#00h
mov r6,#00h            ;r6和r7长延时用
mov r7,#00h
mov 20h,#00h           ;20h设置wifi标志
mov 21h,#00h           ;21h设置动作标志
mov 22h,#00h           ;动作代码存放单元
mov sp,#4fh            ;设堆栈入口50h
mov scon,#50h          ;设置串口方式1,允许串口接收
mov pcon,#00h          ;设置波特率9600
mov tmod,#21h          ;T0设方式1,T1方式2(自动重装)
mov th1,#0fdh          ;T1设初始值
mov tl1,#0fdh          ;TH1=TL1=#0fdh(波特率9600)
clr et1                ;禁止T1中断
clr ri
clr ti
setb tr1               ;开T1定时器
setb es                ;开串口中断
setb ea                ;开总中断
mm1:nop
acall ssd              ;双闪沟?
acall ssd
acall ssd
acall zz               ;调用正转
acall ssd              ;双光灯
acall ssd
acall ssd
acall fz               ;调用反转
sjmp mm1


;正转子程序***********************************************************************
ORG 0200H
zz:push acc
MOV R1,#0c8h           ;正转1圈发200个脉冲,单八拍
zz1:MOV R0,#00h
zz2:mov p1,0ffh
mov p1,#0ffh
MOV A,R0
MOV DPTR,#0380h
MOVC A,@A+DPTR
JZ zz1                 ;当A=0时转完1圈完毕
MOV P1,A
LCALL ys               ;这个时间是调速的,时间越长速度越慢
INC R0
DJNZ R1,zz2
MOV P1,#0ffh
mov p1,#0ffh
pop acc
ret

;反转子程序***********************************************************************
org 0280h
fz:push acc
MOV R1,#0c8h           ;反转1圈发200个脉冲,单八拍
fz1:MOV R0,#00H
fz2:MOV P1,#0ffh
mov p1,#0ffh
MOV A,R0
MOV DPTR,#03c0h
MOVC A,@A+DPTR
JZ fz1                 ;当A=0时反转1圈完毕
MOV P1,A
CALL ys
INC R0
DJNZ R1,fz2
MOV P1,#0ffh
mov p1,#0ffh
pop acc
ret

;转速控制子程序***********************************************************************
org 0300h
ys:djnz r2,ys           ;步进电机的转速
RET

org 0380h
TABLE1:
DB 0feh,0fcH,0fdh,0f9H,0fbh,0f3H,0f7h,0f6H     ;正转表
DB 00h                                         ;正传结束

org 03c0h
TABLE2:
DB 0feh,0f6h,0f7h,0f3h,0fbh,0f9h,0fdh,0fch     ;反转表
DB 00h                                         ;反转结束


;接收并取出串口接收到的数据指令*******************************
org 0400h
qz:nop
clr ri                 ;先清零串口接收中断位
qz00:reti


;闪光灯代码***************************************************
org 0500h
ssd:clr p3.7           ;Gled闪烁发光
acall dys
setb p3.7
acall dys
acall cys
clr p3.7
acall dys
setb p3.7
acall cys
acall cys
acall cys
acall cys
acall cys
ret

dys:mov r4,#0ffh       ;短延时
mov r5,#10h
dys1:djnz r4,dys1
dys2:djnz r5,dys1
ret

cys:mov r6,#0ffh       ;长延时
mov r7,#0ffh
cys1:djnz r6,cys1
cys2:djnz r7,cys1
ret

end

;四相八拍步进电机顺序
;正转:A-AB-B-BC-C-CD-D-DA----------0feh,0fcH,0fdh,0f9H,0fbh,0f3H,0f7h,0f6h
;反转:A-AD-D-DC-C-CB-B-BA----------0feh,0f6h,0f7h,0f3h,0fbh,0f9h,0fdh,0fch

出0入0汤圆

发表于 2016-9-14 19:56:11 | 显示全部楼层
好久没看到用汇编写的程序了,短小精悍,不错。
不过用步进马达驱动的小车,最快速度不会太快吧。

出0入0汤圆

发表于 2016-9-14 22:05:25 | 显示全部楼层
+1

出0入0汤圆

发表于 2016-9-14 23:37:59 | 显示全部楼层
汇编基本上忘光了,呵呵。

出0入0汤圆

发表于 2016-9-14 23:44:21 | 显示全部楼层
不建议自己折腾,找个项目做比这有用多了。

出0入0汤圆

 楼主| 发表于 2016-9-15 22:07:10 | 显示全部楼层
wiser803 发表于 2016-9-14 19:56
好久没看到用汇编写的程序了,短小精悍,不错。
不过用步进马达驱动的小车,最快速度不会太快吧。 ...

我是为这个做准备的
所以速度不是问题


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-9-15 22:08:01 | 显示全部楼层
时光黑白 发表于 2016-9-14 23:44
不建议自己折腾,找个项目做比这有用多了。

谢谢关注
我不是做项目的
我是为未来做准备的

出0入0汤圆

发表于 2016-9-16 00:57:43 | 显示全部楼层
lxa0 发表于 2016-9-15 22:07
我是为这个做准备的
所以速度不是问题

呵呵,有意思.......

出0入8汤圆

发表于 2016-9-16 09:09:03 来自手机 | 显示全部楼层
那个车得用油动吧

出0入0汤圆

发表于 2016-9-16 11:16:19 | 显示全部楼层
用汇编写的都是大神啊,  膜拜。

出0入0汤圆

发表于 2016-9-21 10:31:50 | 显示全部楼层
lxa0 发表于 2016-9-15 22:08
谢谢关注
我不是做项目的
我是为未来做准备的

楼主这车子很帅气啊,不过还是建议楼主在车子的锋利、边角处叫保护措施,否则很容易弄伤小孩子!

出10入113汤圆

发表于 2016-9-21 11:08:20 | 显示全部楼层
汇编的查表表格一般放在代码最后。

出0入0汤圆

 楼主| 发表于 2016-9-21 18:50:12 | 显示全部楼层
qq开始学单片机 发表于 2016-9-21 10:31
楼主这车子很帅气啊,不过还是建议楼主在车子的锋利、边角处叫保护措施,否则很容易弄伤小孩子! ...

你说的对
我设想的小车车头车厢不用金属
改用木材或塑料
这样对小孩就安全多了
谢谢关注
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 07:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表