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

📄 串口定时步进.c

📁 三洋步进电机控制(带驱动器)
💻 C
字号:
#include<reg51.h>

//步进机控制端口定义//
sbit OPT=P2^4; //驱动器使能//
sbit SPL=P2^3; //脉冲//
sbit DIR=P2^2; //方向//
sbit ENA=P2^0; //步进机使能//

//定义默认初值为全局变量//
unsigned char maihuan=156;

//起动//
 qidong(void)
{
  OPT=1;DIR=0;ENA=1;
}

//停止//
 tingzhi(void)
{
  OPT=0;DIR=0;ENA=0;
}

//正转//
 zhengzhuan(void)
{
  OPT=1;DIR=0;ENA=1;
}

//反转//
 fanzhuan(void)
{
  OPT=1;DIR=1;ENA=1;
}

 //加速//
 jiaspeed(void)
{
  if((maihuan+30<256)&&(OPT==1)&&(ENA==1)) maihuan+=30;
}

//减速//
 jianspeed(void)
{
 if((maihuan-30>60)&&(OPT==1)&&(ENA==1)) maihuan-=30;
}

  //定时器初始化//
void et0_t0(){TMOD=0x21;IE=0x82;TH0=0xfe;TL0=0x0c;TR0=1;}
void et1_t1(){TMOD=0x21;IE=0x82;TH1=0xfd;TL1=0xfd;TR1=1;}

//定时器T0服务程序//
void t0_sever() interrupt 1
{
 SPL=~SPL;
 TH0=0xfe;
 TL0=maihuan;
}
 /**********主函数************/
void main()
{
  unsigned char rdate;
  ENA=0;OPT=0;SPL=0;DIR=0;    //上电复位初状态并初始化//
  SCON=0x50;
  et0_t0();
  et1_t1();
  while(1)
  {
  if(RI==1)                   //判断是否接收完毕//
        {
          RI=0;               //清接收完毕标志位//
          rdate=SBUF;         //存数据关进行相关判断//
          if(rdate==0){ qidong();}         //起动//
          else if(rdate==1) {zhengzhuan();}//正转//
          else if(rdate==2) {fanzhuan();}  //反转//
          else if(rdate==3) {jiaspeed();}  //加速//
          else if(rdate==4) {jianspeed(); }//减速//
          else if(rdate==5) {tingzhi();}   //停止//
          else tingzhi();
        }
  }
}










⌨️ 快捷键说明

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