• 大小: 16KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 298  

资源简介

该程序是关于如何实现用一个298驱动两相步进电机的程序,实现了整步、半步,将注释的解除后可实现上述功能,调整定时器时间间隔可调整速度

资源截图

代码片段和文件信息

//******************************************************************************************
//作       者:碧海云天
//
//功       能:用298驱动两相步进电机,使其分别工作在单拍整步,双拍整步和混合半步状态
//
//日       期:2009年8月12日
//******************************************************************************************
#include
#define uint unsigned int
#define uchar unsigned char

uchar counter=0;



sbit enA=P0^0;
sbit in1=P0^1;
sbit in2=P0^2;
sbit in3=P0^3;
sbit in4=P0^4;
sbit enB=P0^5;



void T0_init();  //定时器初始化
void delay(uchar);

void main()
{
   enA=1;    //使能
   enB=1;
   T0_init();
  while(1)
  {};
}


 void delay(uchar x)
{
   uchar i;
   uint j;
   for(i=0;i     for(j=0;j<300;j++);
}

void T0_init()
  {
  TMOD=0x01;                 //定时器0工作于16位计时器模式
  TH0=(65535-20000)/256;      //赋初值 
  TL0=(65535-20000)%256;                
  
  EA=1;                      //开总中断
  ET0=1;                     //允许定时器0中断

  TR0=1;                     //启动定时器  

  }

void clock_signal() interrupt  1   //单拍运行,耗电少,精度好,但力矩小,为整步运行
{
 
  counter++;
  if(1==counter)
    {in1=1;in3=0;in2=0;in4=0;}
  else if(2==counter)
    {in1=0;in3=1;in2=0;in4=0;}
  else if(3==counter)
    {in1=0;in3=0;in2=1;in4=0;}
  else if(4==counter)
    {in1=0;in3=0;in2=0;in4=1;}
  else
    {counter=0;}
   
  TH0=(65535-3000)/256;           
  TL0=(65535-3000)%256; 
    
}

/*void clock_signal() interrupt  1  //双拍运行,耗电大,转矩大,为整步运行
{
 
  counter++;
  if(1==counter)
    {in1=1;in3=1;in2=0;in4=0;}
  else if(2==counter)
    {in1=0;in3=1;in2=1;in4=0;}
  else if(3==counter)
    {in1=0;in3=0;in2=1;in4=1;}
  else if(4==counter)
    {in1=1;in3=0;in2=0;in4=1;}
  else
    {counter=0;}
   
  TH0=(65535-30000)/256;           
  TL0=(65535-30000)%256; 
    
}*/

/*void clock_signal() interrupt  1  //混合运行,精度高,为半步运行
{
 
  counter++;
  if(1==counter)
    {in1=1;in3=0;in2=0;in4=0;}
  else if(2==counter)
    {in1=1;in3=1;in2=0;in4=0;}
  else if(3==counter)
    {in1=0;in3=1;in2=0;in4=0;}
  else if(4==counter)
    {in1=0;in3=1;in2=1;in4=0;}
  else if(5==counter)
    {in1=0;in3=0;in2=1;in4=0;}
  else if(6==counter)
    {in1=0;in3=0;in2=1;in4=1;}
  else if(7==counter)
    {in1=0;in3=0;in2=0;in4=1;}
  else if(8==counter)
    {in1=1;in3=0;in2=0;in4=1;}
  else
    {counter=0;}
   
  TH0=(65535-30000)/256;           
  TL0=(65535-30000)%256; 
    
}*/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4059  2009-08-13 10:41  298驱动步进电机\298驱动步进电机

     文件       2571  2009-08-13 10:41  298驱动步进电机\298驱动步进电机.c

     文件        864  2009-08-13 10:41  298驱动步进电机\298驱动步进电机.hex

     文件       5315  2009-08-13 10:41  298驱动步进电机\298驱动步进电机.LST

     文件       7100  2009-08-13 10:41  298驱动步进电机\298驱动步进电机.M51

     文件       3665  2009-08-13 10:41  298驱动步进电机\298驱动步进电机.OBJ

     文件       1250  2009-08-13 11:04  298驱动步进电机\298驱动步进电机.Opt

     文件       2517  2009-08-13 10:41  298驱动步进电机\298驱动步进电机.plg

     文件       2116  2009-08-12 19:13  298驱动步进电机\298驱动步进电机.Uv2

    .......         0  2009-08-12 16:24  298驱动步进电机\298驱动步进电机_Uv2.Bak

     文件       5115  2002-04-16 15:32  298驱动步进电机\STARTUP.A51

     文件      11762  2009-08-13 10:41  298驱动步进电机\STARTUP.lst

     文件        859  2009-08-13 10:41  298驱动步进电机\STARTUP.obj

     目录          0  2009-08-13 11:04  298驱动步进电机

    .......      1250  2009-08-12 19:13  298驱动步进电机\298驱动步进电机_Opt.Bak

----------- ---------  ---------- -----  ----

                48443                    15


评论

共有 条评论