Autor Tema: me pueden ayudar con este problemita con el 16f877?  (Leído 1463 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado brayan1989

  • PIC10
  • *
  • Mensajes: 6
me pueden ayudar con este problemita con el 16f877?
« en: 13 de Junio de 2009, 10:25:44 »
hola a todos los usuarios de este maravilloso foro la pregunta que me gustaria que me ayudaran es la siguiente:

tengo dos bandas transportados una al lado de la otrala segunda prende con un pulsador de star y la primera 15 segundos despues que la segunda banda arranco y para la parada utilice un pulsador de stop cuando lo presiono tendria que apagar los dos motores de las dos bandas el problema que tengo esta cuando le doy al stop tengo que dejarlo presinado unos segundos para que se me pueda apagar las bandas y esa no es la idea yo lo que quiero es que se me apagen las dos cuando le de al stop si que tenga que esperar ningun tiempo , este es el codigo que hice a ver si me pueden ayudar:

Código: [Seleccionar]
#include<16f877.h>
#fuses nowdt
#fuses noput
#fuses noprotect
#fuses hs

#use delay (clock=4000000)

# define star !input(pin_a0)
# define stop !input(pin_a1)
# define f2 !input(pin_a2)
# define f3 !input(pin_a3)

int a0;

void main()
{
  while(1)
  {
  if ((star|a0)&(!stop)&(!F2)&(!F3))
  {
output_high(pin_b0);

a0=1;

 
  }
  if (A0&(!stop)&(!F2)&(!F3))
  {
 
  delay_ms(300);
output_high(pin_b1);
  }

 
 
  if(stop|F2|F3)

{

  output_low(pin_b0);
   
  output_low(pin_b1);
a0=0;
 
  }
 
}


el montaje en proteus que hice es el siguiente:

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: me pueden ayudar con este problemita con el 16f877?
« Respuesta #1 en: 13 de Junio de 2009, 10:58:27 »
Coloca el segundo if, dentro del primero:
Código: C
  1. while(1){
  2.   if ((star|a0)&(!stop)&(!F2)&(!F3)){
  3.     output_high(pin_b0);
  4.     a0=1;
  5.     if (A0&(!stop)&(!F2)&(!F3)){
  6.       delay_ms(300);
  7.       output_high(pin_b1);
  8.     }
  9.   }
  10.   if(stop|F2|F3){
  11.     output_low(pin_b0);
  12.     output_low(pin_b1);
  13.     a0=0;
  14.   }
  15. }
No contesto mensajes privados, las consultas en el foro

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: me pueden ayudar con este problemita con el 16f877?
« Respuesta #2 en: 13 de Junio de 2009, 12:50:51 »
hola a todos los usuarios de este maravilloso foro la pregunta que me gustaria que me ayudaran es la siguiente:

tengo dos bandas transportados una al lado de la otrala segunda prende con un pulsador de star y la primera 15 segundos despues que la segunda banda arranco y para la parada utilice un pulsador de stop cuando lo presiono tendria que apagar los dos motores de las dos bandas el problema que tengo esta cuando le doy al stop tengo que dejarlo presinado unos segundos para que se me pueda apagar las bandas y esa no es la idea yo lo que quiero es que se me apagen las dos cuando le de al stop si que tenga que esperar ningun tiempo , este es el codigo que hice a ver si me pueden ayudar:

Hola te recomiendo que trabajes con interrupcion en los pines B4 a B7, o alguna otra interrupcion que obligue al PIC a dejar de hacer la operacion que realiza para deterner todo el proceso hasta nueva orden...

Desconectado brayan1989

  • PIC10
  • *
  • Mensajes: 6
Re: me pueden ayudar con este problemita con el 16f877?
« Respuesta #3 en: 13 de Junio de 2009, 18:02:49 »
amigo Suky hice lo que me dijistes pero de igual manera cuando presiono stop tarda en desconectarme los dos motores de la cinta, no tienes mas opciones de que pueda ser?

Desconectado freshdesing

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 88
Re: me pueden ayudar con este problemita con el 16f877?
« Respuesta #4 en: 24 de Junio de 2009, 11:01:53 »
¿Podrías poner el esquema de proteus más grande?