⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor.c

📁 富士通单片机实现红外遥控电子云台
💻 C
字号:
/*-----------------------------------------------------------------------------
   电机控制模块,控制电机水平和垂直电机上下左右运动
-----------------------------------------------------------------------------*/
#include"mb95100.h"

unsigned char clkwise[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; /* 顺时钟转动 */
unsigned char antiwise[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; /* 逆时钟转动 */

void MotorControlLeft (void);
void MotorControlRight (void);
void MotorControlUp (void);
void MotorControlDown (void);
/*-----------------------------------------------------------------------------
   函数原型: void MotorControlLeft (void)
   输入参数:无
   输出参数:无
   功能描述: 水平电机机芯向左转一圈,电机传动轴转动一定角度
-----------------------------------------------------------------------------*/
void MotorControlLeft (void)
{
  unsigned char i;
  i  = 0x00;
  for(i;i<7;i++)
  {
    PDR6  = clkwise[i];
    delay(0x04ff,0x00ff);
  }
  PDR6  = 0x00;   //抬高电机数据位电压,使电机绕组两端电势相同,
                  //电机上没有电流流过,降低功耗
}

/*-----------------------------------------------------------------------------
   函数原型: void MotorControlRight (void)
   输入参数:无
   输出参数:无
   功能描述: 水平电机机芯向右转一圈,电机传动轴转动一定角度
-----------------------------------------------------------------------------*/
void MotorControlRight (void)
{
  unsigned char i;
  i  = 0x00;
  for(i;i<7;i++)
  {
    PDR6  = antiwise[i];
    delay(0x04ff,0x00ff);
  }
  PDR6  = 0x00;   
}

/*-----------------------------------------------------------------------------
   函数原型: void MotorControlUp (void)
   输入参数:无
   输出参数:无
   功能描述: 垂直电机机芯转一圈,电机传动轴转动一定角度
-----------------------------------------------------------------------------*/
void MotorControlUp (void)
{
  unsigned char i;
  i  = 0x00;
  for(i;i<7;i++)
  {
    PDR2  = clkwise[i];
    delay(0x04ff,0x00ff);
  }
  PDR2  = 0x00;   
}

/*-----------------------------------------------------------------------------
   函数原型: void MotorControlDown (void)
   输入参数:无
   输出参数:无
   功能描述: 垂直电机机芯转一圈,电机传动轴转动一定角度
-----------------------------------------------------------------------------*/
void MotorControlDown (void)
{
  unsigned char i;
  i  = 0x00;
  for(i;i<7;i++)
  {
    PDR2  = antiwise[i];
    delay(0x04ff,0x00ff);
  }
  PDR2  = 0x00;   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -