步进电机有四相(A-B-C-D)
正向转动思路为A→B→C→D
反向转动思路为D→C→B→A
通过给每一相轮流供电,实现电机轴的360度转动
、、以下代码可直接复制使用:

#include <reg52.h>  #define uchar unsigned char  //宏定义 把unsigned char简写为uchar
#define uint unsigned int    //       把unsigned int 简写为uintuint  i,j;           //定义全局变量,执行电机for循环转动时间需要用到sbit A1 = P1^0;       //定义给步进电机四相连接的IO口
sbit B1 = P1^1;
sbit C1 = P1^2;
sbit D1 = P1^3;#define Coil_A {A1=1;B1=0;C1=0;D1=0;}     //A相通电,其它相断电
#define Coil_B {A1=0;B1=1;C1=0;D1=0;}     //B相通电,其它相断电
#define Coil_C {A1=0;B1=0;C1=1;D1=0;}     //C相通电,其它相断电
#define Coil_D {A1=0;B1=0;C1=0;D1=1;}     //D相通电,其它相断电
#define  Stop  {A1=0;B1=0;C1=0;D1=0;}     //全部断电,停止uchar Speed=5;       //整体调速,数字越小速度越快,而力矩也越小 void Delay(uint xms)   //延时函数 12.000MHz Delay(1)=1ms
{                       //延时程序 用烧录软件计算出来的 在另外一章有写uchar i, j;while(xms--) {i = 2;j = 239;do { while (--j); }while (--i);}
}void corotation(void)  //正转 子程序 A——D{         Coil_A                Delay(Speed);  Coil_BDelay(Speed);Coil_CDelay(Speed);Coil_DDelay(Speed);}void reversal(void)    //反转 子程序 D——A{Coil_D                 Delay(Speed);  Coil_CDelay(Speed);Coil_BDelay(Speed);Coil_ADelay(Speed);}void main()        //主程序{Delay(30);    //启动前先缓冲一个30mswhile(1)     //不断循环{ for(i=0;i<500;i++)    //正转1圈(大概位置,步进电机需要编码盘才能测得比较准一点)corotation();         //调用正转子函数Stop                 //停止Delay(1000);         //延时1sfor(j=0;j<500;j++)    //反转1圈(大概位置)reversal();           //调用反转子函数Stop                 //停止Delay(1000);         //延时1s}}

接线图↓:


源代码地址↓
源码地址
延时函数的生成↓
利用烧录软件生成延时函数 新手学习
更多步进电机资料↓
ULN2003驱动步进电机28BYJ-48
扩展内容
A4988驱动模块驱动四线步进电机

【51单片机】 ULN2003模块 驱动步进电机(5线)正反转 代码以及接线图(简单教学,一看就会)相关推荐

  1. 51单片机+L293D控制直流电机起保停正反转

    51单片机+L293D控制直流电机起保停正反转 仿真效果图 程序代码 #include <STC89C5xRC.H> #define EN1 P22 #define D1 P20

  2. 51单片机 通过 tb6600驱动 步进电机

    点击查看 :tb6600驱动步进电机模块接线及原理介绍 驱动代码 #include "reg52.h"typedef unsigned int u16; //对系统默认数据类型进行 ...

  3. 基于51单片机的直流电机调速测速正反转控制(仿真+源程序+原理图+PCB)

    资料编号:206 1.本设计采用STC89C51/52(与AT89S51/52.AT89C51/52通用,可任选)51单片机作为主控制器 2.采用霍尔传感器非接触式测电机转速 3.LCD1602液晶显 ...

  4. 51单片机控制二相四线步进电机

    步进电机按定子上绕组来分,有二相.三相和五相等系列.最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好.该种电机的基本步距角为1.8°/步,配上半步驱 ...

  5. GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  6. 基于51单片机步进电机控速正反转proteus仿真

    本设计是基于51单片机步进电机控速正反转(原理图+源码+仿真) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号C0005 [文档]C0005 网盘链接 资 ...

  7. ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  8. Proteus8仿真:51单片机使用ULN2003A控制步进电机

    51单片机使用ULN2003A控制步进电机 元器件 原理图部分 代码 main.c 工程文件 实验内容: 使用按键控制步进电机正反转. 元器件 元器件 名称 电阻 RES 51单片机 AT89C51 ...

  9. 51单片机蓝牙模块(HC05)运行原理

    51单片机蓝牙模块(HC05)及其运行原理 目录 51单片机蓝牙模块(HC05)及其运行原理 一.测试蓝牙模块 二.配置蓝牙模块 三.烧写程序 四.测试 参考博文 一.测试蓝牙模块 在所有工作进行之前 ...

最新文章

  1. k8s 集群 Ingress Nginx传递用户真实IP问题
  2. Android跳转intent简单教程
  3. vue移动端过渡动画_Vue.js实现微信过渡动画左右切换效果
  4. SQLite 性能优化
  5. android获取string.xml的值
  6. 具有JDK 12精简数字格式的自定义精简数字模式
  7. Java Timestamp Memo
  8. springboot项目集成Flowable资料汇总
  9. Java的括号使用规则_java编码规范
  10. 通过Windows的bat方式一键给计算机网卡替换IP地址
  11. 数字信号处理 第三版 西安电子科技大学出版 第一章 课后题 编程题 14 15 16 17 18
  12. Google Chrome最强鼠标手势插件面世
  13. gdi与gdi+绘图效率_.NET和GDI +进行绘图[第1部分:基础知识]
  14. php采集今日头条出现问题,使用php蓝天采集抓取今日头条ajax的文章内容
  15. 数字逻辑·逻辑代数【运算、函数】
  16. 【word】双栏写作如何调整为写满左栏再写右栏
  17. 小学计算机课教案表格,小学信息技术教学设计《插入表格》
  18. 冷库管理源码PHP,冷库管理系统,你想知道的都在这里
  19. 用逗号分割并在Python中去除空格
  20. 带你认识不一样的常春藤之一的普林斯顿大学

热门文章

  1. Unity(游戏)中五种数据存储的方法
  2. 现代密码学大作业(一):实现单表替换的频率分析(python3.7)
  3. 20175208 实验一 Java开发环境的熟悉
  4. [026]文本分类之SVM
  5. AJAX读取Json文件
  6. 【渝粤教育】广东开放大学 应用创意写作 形成性考核 (54)
  7. powershell导入脚本失败,禁止运行脚本,无法远程连接服务器
  8. foreign key() references 字段名(字段名)详细用法
  9. 用Python中的Numpy实现简单高效的扑克牌API(附代码)
  10. Camera Log 关键字汇总