51单片机控制42步进电机——程序实现(中断PWM/延时函数)

 最近抽出时间做了一下51单片机控制步进电机的程序,包括硬件连接,亲测可以实现。现在将过程记录了下来,包括代码。

硬件部分

项目 硬件列表
51学习板 $1600
TB6600驱动器 $12
信侬42步进电机 $1
24V直流电源 $1
  1. 信侬的42步进电机,买的时间比较久了,还可以用。。。。![42步进电机相关参数![](https://img-blog.csdnimg.cn/20210204093434898.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1a3VhaWRlcmU=,size_16,color_FFFFFF,t_70)
  2. 驱动器TB6600

    本次试验用的是共阳极的接法,VCC接的是51板上的5V电源插针。
  3. 实际的硬件和接线

程序部分

程序的实现用的是keil软件编写的c语言程序,用了两种思路写的,都可以实现,下面都贴了出来。
第一种,用的是延时函数实现的脉冲。

#include <reg51.h>
#define uint unsigned int

void delayms(uint);

sbit ENA=P1^0;
sbit DIR=P1^1;
sbit PWM=P1^2;

void main()
{
ENA = 0;
DIR = 0;
PWM = 0;
while(1)
{
PWM = ~PWM;
delayms(1);
}
}

void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i–)
for(j=110;j>0;j–);
}


第二种,用的51单片机的T1定时器实现的脉冲。
#include <reg51.h>
#define uint unsigned int

unsigned char timer1;

sbit DIR=P1^0;
sbit ENA=P1^1;
sbit PWM=P1^2;

void system_Ini()
{
TMOD = 0x00; //13λ
TH1 = 0xfd; //253
TL1 = 0x06; //6
EA = 1;
ET1 = 1;
TR1 = 1;
}

/*********************************************************
2^13=8192
25332=8096
8096+6=8102
8192-8102=90
12
(1/11059200)= 1.09us
*********************************************************/

main()

{
system_Ini();
DIR = 0;
ENA = 0;
while(1)
{
if(timer1==40)
{
timer1=0;
}
if(timer1<20)
{
PWM=0;
}
else
{
PWM=1;
}
}
}

void Ti1(void) interrupt 3

{
TH1 = 0xfd;
TL1 = 0x06;
timer1++;
}

备注:

关键试验前一定要检查一下tb6600上的拨码开关,保证输出电流和步进电机电流一致。脉冲一直。步进电机的转速建议按100转/min~600转/min 设置。

51单片机控制42步进电机——程序实现(中断PWM/延时函数)相关推荐

  1. 遥控51单片机控制42步进电机(TB6600驱动)控制方向、速度

    遥控51单片机控制步进电机控制方向.速度 控制开发板自带步进电机 遥控控制 控制42步进电机 大二在做srtp时做到了这部分内容,感觉C51控制起来挺简单的,之后有做关于MSP430的魂斗罗游戏和st ...

  2. 51单片机控制28BYJ48步进电机原理及代码

    命名方式(以28BYJ48步进电机为例) 28BYJ48步进电机的编号 28-----步进电机的有效最大外径是28毫米 B-----表示步进电机 Y-----表示永磁式 J-----表示减速型 48- ...

  3. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  4. 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,51单片机C语言和汇编控制28BYJ48步进电机程序...

    本文提供三个51单片机控制步进电机正反转的程序,2个C程序,1个汇编,. 步进电机正反转程序 28BYJ48,,,,四相五线制,,用拍的脉冲... 电机先正转一周,在反转一周,停止.. 本程序利用 S ...

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

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

  6. 使用51单片机来实现步进电机的控制

    一.实验器件 1.STC89C52RC的学习板子一个 2.电机型号为28-YJ-的步进电机一个 3.图片如下 二.电路的设计 我们都知道,根据单片机的控制程序根据电路的不同,程序也是不同的.其实说白了 ...

  7. 51单片机控制步进电机-电路连接

    51单片机控制步进电机-电路连接 概要:本案例讲解的内容是51单片机控制步进电机硬件连接部分.后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 硬件清单: 1.51单片机控制板一个 2.二 ...

  8. pid控制器c51语言编程,51单片机电机pid控制系统程序

    51单片机电机pid控制系统程序 本程序来源网上,小编进行了简单修改,还未验证. /************************* 应用背景:直流电机的额定功率12V,额定转速3000rpm,光码 ...

  9. c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...

    1. 基于proteus的51单片机开发实例(14)中断嵌套和中断优先级 1.1. 实验目的 在前面实例中我们已经学习了51单片机的定时器/计数器中断,外部中断,通过这些实例,知道了中断电路的设计,中 ...

  10. 【制作】基于金沙滩51单片机的电子密码锁程序

    基于金沙滩51单片机的电子密码锁程序 很久之前做的一个课设,在B站发了效果视频,发现忘记分享代码了,现在整理分享一下. 零.设计报告 1.设计要求 这部分是讲的整个系统实现了什么功能. 1.1.密码的 ...

最新文章

  1. 世界人工智能发展究竟到了什么水平
  2. python降级-关于卸载:如何从Python 3.2降级到2.7?
  3. 汇编:键盘中断(int 9)
  4. 当 position:sticky 遇到 bootstrap 浮动布局时候的踩坑记录
  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)...
  6. Part 1 – Reverse engineering using Androguard
  7. Hive学习笔记,你想知道的Hive
  8. python messagebox弹窗退出_python 弹窗提示警告框MessageBox的实例
  9. 【记录贴】cs231n课程作业一遇到问题总结
  10. php 页面上显示xls文档,phpExcel输出xls文档显示乱码的解决方法
  11. DHCP技术原理详解
  12. Windows server 2003-2016镜像下载
  13. 2015-2020: 5年,不问归期,奋斗没有终点
  14. Excel入门之快速录入数据
  15. 记录解决nonebot2中定时器报时区问题的错误
  16. 520,都来被虐吧。。。
  17. Dart中Map的使用
  18. mysql数据库中针对结果保留小数的问题
  19. 怎么将file转换为html,怎么将PDF文件转换为HTML?分享四种实用方法!
  20. 【数字信号去噪】基于matlab小波阙值数字信号去噪和求信噪比【含Matlab源码 2191期】

热门文章

  1. 手机远程共享计算机文件,电脑如何共享文件到手机
  2. 应用回归分析第五版pdf百度网盘_常用软件分享PDF转换word/excel/text等
  3. JAVA ftps设置_如何使用apache.commons.net.ftps配置客户端身份验证?
  4. 偏最小二乘法与最小二乘法的区别
  5. 32位Linux系统时间截止,linux – 如果系统设置为2038年以后的日期,则ntpdate失败
  6. OpenCV 安装配置 Jupyter Notebook
  7. 深度学习软件开发环境搭建
  8. 计算机编辑作业之目录制作,大学计算机ppt作业
  9. ||分享一些百度云下载不限速神器||
  10. 从视频中提取为ppt或图片