Autor Tema: Realizar una cerradura electrónica, con pic en ccs.  (Leído 2295 veces)

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

Desconectado raul6162

  • PIC10
  • *
  • Mensajes: 19
Realizar una cerradura electrónica, con pic en ccs.
« en: 13 de Febrero de 2017, 17:37:51 »
Hola saludos comunidad, soy nuevo en programar pic con CCS, por lo que no comprendo aun el manejo adecuado de puertos.
necesito hacer un programa que al oprimir un push botton en RA0, acepte una combinación de niveles mediante un dip-switch, por el puerto "A" de mi 16f873a. se tendrán 3 intentos y luego se bloquea el pic, si la combinación fue correcta se prende un led.
Mi principal duda es porque a diferencia del puerto "B" el puerto "A" tiene solo 5 pines.
adjunto mi codigo actual, espero pueden ayudarme a resolver mis dudas sobre el programa.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Realizar una cerradura electrónica, con pic en ccs.
« Respuesta #1 en: 23 de Febrero de 2017, 15:57:09 »
Citar
Mi principal duda es porque a diferencia del puerto "B" el puerto "A" tiene solo 5 pines.

Esa es una duda que solo Microchip sabe. Lo mas seguro que sea para cumplir con la cantidad de pines del IC.

Respecto al programa:

Código: C
  1. #include <16f873a.h>
  2. #fuses xt, nowdt
  3. #use delay(clock=4000000)
  4. #byte puerto_a=5
  5. #byte puerto_b=6
  6. #use standard_io(a)
  7. void main()
  8. {
  9.         set_tris_a(1);
  10.         set_tris_b(0);
  11.         output_a(0);
  12.         output_b(0);
  13.         int n=0, dato=0;
  14.         //---------------------------------
  15.         while(n<3)
  16.         {
  17.                 if(input(PIN_A0)==1)
  18.                 {
  19.                         delay_ms(500);
  20.                 }
  21.  
  22.                 dato=input_a() & 0b00001110;
  23.  
  24.                 if(dato==01000)
  25.                 {
  26.                         output_high(PIN_B0);    //enciende led verde
  27.                 }
  28.                 else
  29.                 {
  30.                         n++;
  31.                 }
  32.                 output_a(0);
  33.                 output_b(0);
  34.         }
  35. }

Ahi le agregue un par de cosas. Quite eso de port_a, y use las funciones que posee CCS.
Ademas a dato, le hice una AND con un valor, porque no se el estado de los demas pines, por eso con esa AND los pongo a 0 a los que no me interesan.

Una cosa.. Este codigo si mantenes presionado RA0 va a seguir entrando una y otra ves.

Desconectado raul6162

  • PIC10
  • *
  • Mensajes: 19
Re:Realizar una cerradura electrónica, con pic en ccs.
« Respuesta #2 en: 10 de Marzo de 2017, 19:22:44 »
Muchas gracias en verdad era lo que necesitaba no pensé se solucione tomando el resto de pines solo como ceros y el and.


 

anything