0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

89C2051驱动步进电机的电路和源码,Stepper motor driver

454398 2018-09-20 18:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

89C2051驱动步进电机的电路和源码,Stepper motor driver

关键字:步进电机驱动电路,89C2051步进电机驱动

程序

stepper.c
stepper.hex

/*
* STEPPER.C
* sweeping stepper's rotor cw and cww 400 steps
* Copyright (c) 1999 by W.Sirichote
*/

#include c:\mc51\8051io.h /* include i/o header file */
#include c:\mc51\8051reg.h

register unsigned char j,flag1,temp;
register unsigned int cw_n,ccw_n;

unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90}
#define n 400

/* flag1 mask byte
0x01 run cw()
0x02 run ccw()
*/

main()

{
flag1=0;
serinit(9600);
disable(); /* no need timer interrupt */
cw_n = n; /* initial step number for cw */
flag1 |=0x01; /* initial enable cw() */

while(1){
{
tick_wait(); /* wait for 10ms elapsed */

energize(); /* round-robin execution the following tasks every 10ms */
cw();
ccw();
}
}

}

cw(){
if((flag1&0x01)!=0)
{
cw_n--; /* decrement cw step number */
if (cw_n !=0)
j++; /* if not zero increment index j */
else
{flag1&=~0x01; /* disable cw() execution */
ccw_n = n; /* reload step number to ccw counter */
flag1 |=0x02; /* enable cww() execution */
}
}

}

ccw(){
if((flag1&0x02)!=0)
{
ccw_n--; /* decremnent ccw step number */
if (ccw_n !=0)
j--; /* if not zero decrement index j */
else
{flag1&=~0x02; /* disable ccw() execution */
cw_n = n; /* reload step number to cw counter */
flag1 |=0x01; /* enable cw() execution */
}
}

}

tick_wait(){ /* cputick was replaced by simpler ASM code 10ms wait */

asm" JNB TCON.5,*"; /* wait for TF0 set */
asm" CLR TCON.5"; /* clear TF0 for further set */
asm" ORL TH0,#$DC"; /* reload TH0 with $DC, TL0 = 0 */
}

energize(){

P1 = step[(j&0x07)]; /* only step 0-7 needed */
}

电路图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32L010 Motor Control Driver无刷电机驱动板的上手体验

    Driver 是一款高度集成的电机控制开发板。其小巧的外形、高性能的 PWM 输出能力,以及丰富的配套例程,使其成为电机控制开发的理想选择。无论是新手入门,还是资深工程师,这款开发板都能帮助您快速搭建各种
    发表于 11-27 06:04

    ‌DRV8821 双路步进电机控制器与驱动器技术文档总结

    该DRV8821提供双微步进步进电机控制器/驱动器 打印机、扫描仪和其他办公自动化设备应用的解决方案。 两个独立的步进电机
    的头像 发表于 10-21 11:27 405次阅读
    ‌DRV8821 双路<b class='flag-5'>步进</b><b class='flag-5'>电机</b>控制器与<b class='flag-5'>驱动</b>器技术文档总结

    ‌DRV8824-Q1 汽车级步进电机驱动器技术文档总结

    DRV8824-Q1 为汽车应用提供集成电机驱动器解决方案。 该器件具有两个 H 桥驱动器和一个微步进索引器,旨在驱动双极性
    的头像 发表于 10-17 14:07 487次阅读
    ‌DRV8824-Q1 汽车级<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器技术文档总结

    【RA4E2开发板评测】智能窗帘

    stepper_motor.cstepper_motor_uart.c 和头文件 stepper_motor.h 用于配置步进电机
    发表于 09-10 12:33

    【上海晶珩睿莓1开发板试用体验】物联网窗帘——步进电机的网络远程控制

    traceback.print_exc() finally: reset_motor_pins() print(\"程序结束,电机已停止\") 保存代码。 效果 终端执行如下指令,运行步进
    发表于 09-10 09:44

    【RA4E2开发板评测】步进电机的串口控制

    \\\\n\"); // 初始化步进电机 stepper_motor_init(); // 测试直接调用 - 确认电机本身工作正常 //printf(\"Testing
    发表于 08-23 21:31

    二相步进电机驱动电路的设计

    介绍了BYG通用系列二相步进电机最常采用的的单极性和双极性2种驱动电路的设计方案,从原理上体现了一相步进
    发表于 05-28 15:38

    HJ4205步进电机驱动电路详解

    HJ4205是一款步进电机驱动电路。包含一个步进电机控制器和内部N沟道MOSFET,来
    的头像 发表于 05-07 16:19 1467次阅读
    HJ4205<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b><b class='flag-5'>电路</b>详解

    树莓派 RP2350 实现步进电机精确控制

    原理 步进电机Stepper Motor)是一种将电脉冲信号转换为精确角度位移的执行器件,属于 开环控制电机 。 核心特点:每接收一个脉
    发表于 05-03 15:11

    佳讯电子:低压MOS在步进电机驱动器上的应用

    一、前言 步进电机驱动器是一种用于控制步进电机运动的装置,它是将控制信号转换成步进
    的头像 发表于 04-27 17:52 637次阅读
    佳讯电子:低压MOS在<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器上的应用

    电机控制器选型指南

    之前,首先需要确定您将使用的电机类型。常见的电机类型包括: 直流电机(DC Motor) :适用于需要精确控制速度和扭矩的应用。 交流电机
    的头像 发表于 01-22 09:22 3831次阅读

    TMC2240: 36V 2ARMS+ Smart Integrated Stepper Driver with S/D and SPI Data Sheet adi

    电子发烧友网为你提供ADI(ADI)TMC2240: 36V 2ARMS+ Smart Integrated Stepper Driver with S/D and SPI Data Sheet相关
    发表于 01-15 18:54
    TMC2240: 36V 2ARMS+ Smart Integrated <b class='flag-5'>Stepper</b> <b class='flag-5'>Driver</b> with S/D and SPI Data Sheet adi

    步进电机驱动器有哪些分类,如何选型?

    步进电机驱动器是控制步进电机运行的关键组件,根据不同的标准,步进
    的头像 发表于 01-06 08:08 1518次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器有哪些分类,如何选型?

    步进电机的详解解答

    步进电机,别名脉冲马达,是一种将电脉冲信号转变为角位移或线位移的开环控制电机。它是现代数字程序控制系统中的主要执行元件,广泛应用于数控机床、智能仪器和自动控制等领域。步进
    的头像 发表于 12-29 09:41 1567次阅读

    基于STM32F405RGT6的TMC2660步进电机驱动器,附带原理图+PCB

    Part 01 前言 步进电机驱动器将控制信号转换为电流信号,驱动步进电机的绕组。可以通过信号序
    的头像 发表于 12-14 19:24 3476次阅读
    基于STM32F405RGT6的TMC2660<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>驱动</b>器,附带原理图+PCB