找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2358|回复: 2
打印 上一主题 下一主题
收起左侧

请教如下程序哪里写错了

[复制链接]
跳转到指定楼层
楼主
ID:50952 发表于 2013-6-14 22:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了个步进电机小程序, 不知道哪里出问题了,请教各位大神。
说明: P0.0正转按键, P0.1反转按键。  步进电机接P1引脚的高4位。
症状: 当按下反转键时, 电机正常反转, 但是如果按下正转, 电机内部在运行,但是不转,可以感觉到震动。
于是就把P1的高4位连接到LED上看脉冲时序。
结果发现, 当按下反转时, 电机是按照P2.7-P2.6-P2.5-P2.4    -P2.7-P2.6-P2.5-P2.4.......这样的顺序发出脉冲,电机是正常在反转。
但是按下正转键时, 电机是按照P2.7-P2.6-P2.5-P2.4-P2.5-P2.6-P2.7-P2.6-P2.5-P2.4-P2.5..........是迂回的顺序,所以电机虽然震动,内部转自在转,却是几步在往复运动,所以不转。

请各位看看, 我哪里写错了。谢谢了。

ORG 0000H
    LJMP START
    ORG 0100H
START:   MOV R2,#00H
    MOV R3,#00H
    MOV R4,#00H
    MOV P0,#00H
    MOV P1,#00H
SCAN:   MOV P0,#03H
    JNB P0.0, ZZ
    JNB P0.1, FZ
    SJMP SCAN
ZZ:    MOV R2,#00H
LOOP1:   MOV A,R2
    MOV DPTR,#TAB1
    MOVC A,@A+DPTR
    JZ ZZ
    MOV P1,A
    LCALL DELAY
    INC R2
    LCALL SCN
    LJMP LOOP1
FZ:    MOV R2,#00H
LOOP2:   MOV A,R2
    MOV DPTR,#TAB2
    MOVC A,@A+DPTR
    JZ FZ
    MOV P1,A
    LCALL DELAY
    INC R2
    LCALL SCN
    LJMP LOOP2
SCN:   JNB P0.0,LOOP1
    JNB P0.1,LOOP2
    RET
DELAY:    MOV R3,#60H
M1:    MOV R4,#60H
    DJNZ R4,$
    DJNZ R3,M1
    RET
TAB1:   DB 80H,40H,20H,10H
TAB2:   DB 10H,20H,40H,80H
    END
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2013-6-15 08:49 | 只看该作者
本帖最后由 ahshmj 于 2013-6-15 08:51 编辑

可能是失步了。
引用:“步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。”

步进电机从正传突然转入反转,比一般的负荷都重,所以会这样。
你可以在转入反转时,加一点延时。
回复

使用道具 举报

板凳
ID:50952 发表于 2013-6-15 12:44 | 只看该作者
谢谢回复。
我程序中LOOP1和LOOP2两段是完全一样的程序。
如果说是转向的时候阻力大导致失步可能性不大,因为即使我上来第一次按的就是正转, 电机也不转。
相反, 反转键随时按都可以正常运作。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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