找回密码
 立即注册

QQ登录

只需一步,快速开始

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

12BYJ步进电机单片机驱动程序,(可以调旋转圈数)

[复制链接]
跳转到指定楼层
楼主
ID:76556 发表于 2015-4-10 02:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
void Circle_The_Number(unsigned long Number )
{
static bit a=0;
static unsigned long Num2=0;
Num2=Number*4076;
while(a==0)
        {
        unsigned char code BYJ[8]={0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e,0x06};       
        static unsigned char Num1=0;
        unsigned int i;
        unsigned char Save;
       
        if(Num2<=0)
                {
                a=1;
                }
        Save=P1;
        Save=Save&0xf0;
        Save=Save|BYJ[Num1];
        P1=Save;
        Num1++;
        Num1=Num1&0x07;
        for(i=200;i>0;i--);
        Num2--;
        }
}
void main()
{
while(1)
        {
                Circle_The_Number(30);
        }
}


转动圈数在Circle_The_Number(30);调现在设定的是转30圈也可以改为2000圈或0~4,294,967,295圈之间选择
因为C语言unsigned long类型计算的最大范围是0~4,294,967,295

厂家给出的资料是如果需要转动1圈 ,那么需要360/5.625*64=4096个脉冲信号。
但是实际测得有误差大概是每转100圈有半圈的误差,所以说:
如果需要转动1圈 ,那么需要4076个脉冲信号。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:68477 发表于 2015-4-12 14:06 | 只看该作者
参考参考。
回复

使用道具 举报

板凳
ID:249545 发表于 2018-8-24 12:04 | 只看该作者
东西不错,就是我底子差,看不太懂~
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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