miércoles, 1 de mayo de 2013

Motor a pasos con PIC16F887

Programa que controla un motor a pasos, con un botón pulsador conectado a RA0 avanza y con otro botón conectado a RA1 se detiene

#include<16f887.h>
#fuses hs,nowdt,noprotect,nolvp
#use delay(clock=20000000)
#byte porta=5
#byte portb=6
 int  m1=0x01;
 int paso=0;
void main()
   {
   set_tris_b(0x00);
   set_tris_a(0x03);

  while(1) 
   {
     if (input(pin_A0))   //avanza el motor
        paso=1;
     if (input(pin_A1))    //detiene el motor
        paso=0;
  // Avanza el motor a pasos en sentido de las manecillas de reloj CW 
    if (paso==1)
   {
      portb = m1;
      delay_ms(130);
      m1=m1>>3 | m1<<1;
      m1=m1 & 0x0F;
    }
   }
 }


1 comentario: