找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 864|回复: 0
收起左侧

请问下我的单片机步进电机程序为什么会倒过来,又倒回去转?

[复制链接]
ID:628369 发表于 2019-10-22 18:46 | 显示全部楼层 |阅读模式
#include <reg52.h>



void TURNMOTOR(unsigned long angle);

void main()
   
{
    TURNMOTOR(360*25);
    while(1);
}

void delay()
{
    unsigned int i=500;//定时5009us=4.5ms
   
    while(i--);
}


void TURNMOTOR(unsigned long angle)
{
     unsigned char tmp;  //临时变量   
    unsigned char index = 0;  //节拍输出索引   
    unsigned long beats = 0;  //所需节拍总数
   
   
   
    unsigned char code BeatCode[]={
        0xe, 0xc, 0xd, 0x9, 0xb, 0x3 ,0x7, 0x6
        //0x1,0x3,0x2,0x6,0x4,0xc,0x8,0x9
    };
   
   
    beats= (angle*64) /360;
    while (beats--)
    {
        tmp=P1;
       tmp=tmp & 0xf0;
       tmp=tmp | BeatCode[index];
        P1= tmp;
        index++;
        //index = index & 0x07;   
        while(index==8) {index=0;}
        delay();
    }   
        P1=P1 & 0xfF;//关闭 电动机所有的相位
}
2019-10-22_184220.png

motorangle.zip

44.68 KB, 下载次数: 3

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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