51单片机控制步进电机正反转

通过51单片机驱动步进电机

proteus模拟

proteus仿真
电机内部数据参数,初始的即可,不用调改。
整体程序的结果:
(1)先正转一圈,等待一秒后再反转一圈。这一过程可以自己修改程序,把它去掉,即整体main函数while循环的前面那部分,只会执行一次。
while(1)
{
(2)按下按钮1,整个电机开始正转N圈,当检测按钮一直按下时,整个电机就一直正转下去。当检测到其他按钮按下时,立即跳转到其他按钮对应的程序。
(3)按下按钮2,和按钮1相反。
(4)按钮3,使整个电机停止工作。
}
上面2,3,4部分是一直在循环扫描检测的。

程序代码
#include <reg52.h>
#include <intrins.h>
unsigned char code z[]={
   0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03//315,270,225......360(0)
};//八拍
unsigned char code f[]={
   0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03//45,90,145......360(0)
};
sbit K1 = P3^0;//定义正转按钮
sbit K2 = P3
  • 85
    点赞
  • 678
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
以下是c51单片机控制步进电机正反转实验报告: 实验目的: 1. 理解步进电机的原理和控制方法; 2. 掌握c51单片机控制步进电机正反转的原理和方法; 3. 实现步进电机的反转控制。 实验器材: 1. c51单片机开发板; 2. 步进电机; 3. 电源; 4. 电路连接线。 实验原理: 步进电机是一种将电信号转化为角位移的电机。步进电机主要由步进角、步数、步距角、相数和驱动方式等五个方面来描述。 c51单片机控制步进电机正反转的原理是:根据步进电机的特性,通过改变电机两相之间的相序,就可以实现电机的反转。c51单片机可以通过输出脚控制电机两相之间的相序,从而实现电机的反转。 实验步骤: 1. 按照电路图连接电路,将步进电机的四个线连接到开发板的P1口; 2. 在Keil C51中编写程序代码,实现电机的反转控制; 3. 将程序代码下载到c51单片机开发板中; 4. 打开电源,观察步进电机的运动情况。 实验代码: ```C #include <reg52.h> sbit A1 = P1^0; sbit A2 = P1^1; sbit B1 = P1^2; sbit B2 = P1^3; void main() { int i; while(1) { for(i=0; i<100; i++) { A1 = 0; A2 = 0; B1 = 1; B2 = 0; delay(2); A1 = 0; A2 = 1; B1 = 0; B2 = 0; delay(2); A1 = 1; A2 = 0; B1 = 0; B2 = 0; delay(2); A1 = 0; A2 = 0; B1 = 0; B2 = 1; delay(2); } for(i=0; i<100; i++) { A1 = 0; A2 = 1; B1 = 0; B2 = 0; delay(2); A1 = 1; A2 = 0; B1 = 0; B2 = 0; delay(2); A1 = 0; A2 = 0; B1 = 0; B2 = 1; delay(2); A1 = 0; A2 = 0; B1 = 1; B2 = 0; delay(2); } } } void delay(int n) { int i, j; for(i=0; i<n; i++) { for(j=0; j<200; j++); } } ``` 实验结果: 通过编写程序代码,c51单片机可以控制步进电机在反转之间切换,并且步进电机可以按照预期的方式运动。 实验结论: 通过本实验,我们掌握了c51单片机控制步进电机正反转的原理和方法,实现了步进电机的反转控制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值