打印
[疑难问答]

求助89C51控制步进电机程序

[复制链接]
2496|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laslison|  楼主 | 2010-5-9 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用89C51控制四相六线步进电机,求一个汇编语言控制程序
步进电机采用四相六线,步距角1.8度,半步工作0.9度八拍运行。
接口如下:
P15---启动信号输入
P14---停止信号输入
P13---接光电传感器
P22---输出控制步进电机的A相
P23---输出控制步进电机的B相
P24---输出控制步进电机的C相
P25---输出控制步进电机的D相

如下是我给步进电机八拍运行正向通电顺序:

      P25(D相)、P24(C相)、P23(B相)、P22(A相)
第一步: 0          0           0         1
第二步: 0          0           1         1
第三步: 0          0           1         0
第四步: 0          1           1         0
第五步: 0          1           0         0
第六步: 1          1           0         0
第七步: 1          0           0         0
第八步: 1          0           0         1

使用光电传感器的输出作为脉冲信号,光电接收管的后面加一个三极管做信号放大。光电传感器前有个齿盘,齿空的间隔距离是相等的,要求齿盘每移动一格,光电传感器输出一个脉冲,步进电机移动一个角度0.9度。齿盘转动的速度不固定,可能快也可能慢。步进电机没有转动之前,齿盘一直是转动的,只有按下启动按钮步进电机才开始转动。

我是这样想的:齿盘转动光电传感器产生的脉冲,一直是在高电平与低电平之间循环的,循环的速度跟齿盘转动的速度成正比,这样脉冲的周期也是由齿盘控制的,这样步进电机转动就受控于齿盘。我把光电传感器接到P13口对不对?
不知道我的思路对不对?
沙发
yidou| | 2010-5-9 22:33 | 只看该作者
齿盘转动的速度不固定会不会使结果不正确呢

使用特权

评论回复
板凳
David_ming| | 2010-5-9 23:26 | 只看该作者
应该可以,就怕光耦有干扰

使用特权

评论回复
地板
liliang9554| | 2010-5-10 23:27 | 只看该作者
光耦有干扰?

使用特权

评论回复
5
wangwo| | 2010-5-11 22:17 | 只看该作者
做这个的好多啊

使用特权

评论回复
6
ershisi| | 2010-5-11 22:36 | 只看该作者
把光电传感器接到P13口感觉可行

使用特权

评论回复
7
epsmc| | 2010-5-13 09:28 | 只看该作者
步进电机的启动频率比较低,能否满足要求。

使用特权

评论回复
8
yuq_quan| | 2010-5-13 10:41 | 只看该作者
楼主的思路正确,提供一个机器手的DEMO,供参考.不过是用C写的.

machine_arm.rar

22.38 KB

使用特权

评论回复
9
laslison|  楼主 | 2010-5-27 22:45 | 只看该作者
OK,非常感谢!

使用特权

评论回复
10
superpwq| | 2010-5-31 23:03 | 只看该作者
学习! 学习!

使用特权

评论回复
11
epsmc| | 2010-6-1 10:18 | 只看该作者
光耦输入最好用外部中断,加软硬件去干扰,另外齿盘的转速不能超过步进电机的起点速度。

使用特权

评论回复
12
654991568| | 2011-10-26 19:42 | 只看该作者
感谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

791

帖子

1

粉丝