Autor Tema: Ayuda con el PIC 16F84A por favor!  (Leído 1401 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Hansot

  • PIC10
  • *
  • Mensajes: 10
Ayuda con el PIC 16F84A por favor!
« en: 12 de Mayo de 2014, 17:04:40 »
Necesito programar el pic para que pase lo siguiente:
tengo 5 interruptores (RA0, RA1, RA2, RA3 Y RA4) y 8 leds (RB0, RB1, RB2 ,RB3, RB4, RB5, RB6 Y RB7)
Como podría hacer para crear una tabla de verdad, por ejemplo;
RA0 RA1 RA2 RA3 RA4             RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7
  0     0     0     0     1                 0     0     1     0     0     0     0     1
  0     1     0     0     1                 0     1     1     0     0     0     1     0
  1     0     1     0     1                 1     0     1     0     0     1     0     1

Etc... eso es solo un ejemplo, no necesito hacer esa tabla de verdad pero me gustaría saber como puedo hacer algo parecido, estaba probando lo siguiente pero al parecer no es asi.

#include <16F84A.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT                 
#use delay (clock=4000000)

void main(){
set_tris_a(0x11111);
set_tris_b(0x00000000);
output_b(0x00000000);


if(input_a(0b00001)){
       output_b(0b11111111);
     
}
   else{
       output_b(0b00000000);
   }   
}

Disculpen por las molestias pero soy nuevo en esto y estoy muy confundido :s

Gracias!!

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Ayuda con el PIC 16F84A por favor!
« Respuesta #1 en: 12 de Mayo de 2014, 17:16:24 »
sería algo de esta forma:

Código: C
  1. ....
  2. if(input_a()==0b00010000){
  3.        output_b(0b10000100);
  4.      
  5. }
  6. else if(input_a()==0b00010010){
  7.        output_b(0b01000110);
  8.      
  9. }
  10.  
  11. ....
« Última modificación: 12 de Mayo de 2014, 17:54:28 por rivale »
"Nada es imposible, no si puedes imaginarlo"

Desconectado Hansot

  • PIC10
  • *
  • Mensajes: 10
Re: Ayuda con el PIC 16F84A por favor!
« Respuesta #2 en: 12 de Mayo de 2014, 17:41:34 »
El pic c compiler me da error y no entiendo  :(
El punto es que yo no quiero que me hagan el código, me gustaría mas que me dijeran porque se hace eso, es que en practicas anteriores de secuencia de leds había echo lo siguiente:
                         while (true)
                         {
                         output_high(pin_b0);
                         delay_ms(100);
                         output_high(pin_b1);
                         delay_ms(100);
                         output_high(pin_b2);
                         delay_ms(100);
                         output_low(pin_b0);
                         delay_ms(50);
                         output_low(pin_b1);
                         delay_ms(50);
                         output_low(pin_b2);
                         delay_ms(50);
                         }

Como se darán cuenta ahí controlaba pin por pin, pero ahora es con todos los pines, es lo que me revolvió bastante... espero que no sea mucha molestia que me puedan explicar un poco :s gracias!
« Última modificación: 12 de Mayo de 2014, 17:50:21 por Hansot »

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Ayuda con el PIC 16F84A por favor!
« Respuesta #3 en: 12 de Mayo de 2014, 17:52:35 »
disculpa, habia puesto mal las instrucciones de input, ya las corregí

con input_a() lees el valor de todo el puerto, esto lo comparas contra el valor que desees
"Nada es imposible, no si puedes imaginarlo"

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Ayuda con el PIC 16F84A por favor!
« Respuesta #4 en: 12 de Mayo de 2014, 17:55:51 »

sería algo de esta forma:
despues del 0b los pines se escriben del mas al menos significativo, entonces en 0b10000000 el pin 7 es el que esta activo

Código: C
  1. ....
  2. if(input_a()==0b00010000){
  3.        output_b(0b10000100);
  4.      
  5. }
  6. else if(input_a()==0b00010010){
  7.        output_b(0b01000110);
  8.      
  9. }
  10.  
  11. ....
"Nada es imposible, no si puedes imaginarlo"

Desconectado Hansot

  • PIC10
  • *
  • Mensajes: 10
Re: Ayuda con el PIC 16F84A por favor!
« Respuesta #5 en: 12 de Mayo de 2014, 19:02:23 »
¡¡Muchas gracias!!
Termine bien mi proyecto, lo simule en proteus y funciona bien, pero en el mismo proteus salen unos mensajes de error, a pesar de eso la simulación de la programación funciona bien...



Tienes idea de que significa? Gracias!
« Última modificación: 12 de Mayo de 2014, 19:20:33 por Hansot »

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Ayuda con el PIC 16F84A por favor!
« Respuesta #6 en: 13 de Mayo de 2014, 11:43:41 »
"Nada es imposible, no si puedes imaginarlo"