Dic 252013

 
Pin Out del PIC16F84

Pin Out del PIC16F84

Código fuente en C para contar del 0 al 9 en un display de 7 segmentos con un PIC 16F84A

//   Programa:   Contador ascendente 0-9

#include    <16f648a.h>               //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP      //ordenes para el programador
#use delay (clock=4000000)         //Fosc=4Mhz
#use standard_io(B)

void main(void)
{
   //contador para tabla 7 seg
   char i=0;
   // Display de 7 segmentos 0-9
   int tab7seg[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};

   set_tris_b(0x00);            //portb como salida
   disable_interrupts(GLOBAL);      //todas las interrupciones desactivadas

   do{                        //bucle...
      output_b(tab7seg[ i ]);      //muestra por portb dígito 7 segmentos
      delay_ms(500);
      i++;            /incremento contador para visualizar siguiente dígito
      if(i>9)                  //¿ya se ha mostrado el dígito 9?
      {
         i=0;               //SI -> vuelve a empezar(dígito 0)
      }
      }while(TRUE);            //...infinito
}

Este pequeño programa nos hará una cuenta ascendente de 0 a 9, el cambio entre números tiene un retardo de 500 ms y cuando el contador i es mayor que 9 el contador pasa a tener el valor inicial 0. Una vez arranquemos el programa se ejecutara indefinidamente su bucle.

Este ejemplo es muy sencillo y sirve para poder iniciarse en la programación de PICs, este programa mediante la utilización de la matriz tab7seg[10] se ha codificado el encendido de los segmentos que componen los números del 0 al 9, este programa lo podríamos modificar para experimentar, y el valor del contador i pasarlo directamente al output_b y en los 4 bits de menor peso colocar un codificador 7447.

 



Contenido relacionado




 Deja un Comentario

(Requerido)

(Requerido)