Vistas de página en total

14708

jueves, 15 de septiembre de 2011

Act 5: Contador - Sistemas secuenciales (Parte B)

Circuito esquemático :

Circuito de contador en PCB:


 Programa en C para el contador en el PIC12F683



#include <main.h>



void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   setup_oscillator(OSC_8MHZ);

   while(!input(PIN_A3));

  

output_a (0b011001);
delay_ms (1000);
output_a (0b011000);
delay_ms (1000);
output_a (0b001111);
delay_ms (1000);
output_a (0b001110);
delay_ms (1000);
output_a (0b001101);
delay_ms (1000);
output_a (0b001100);
delay_ms (1000);
output_a (0b001011);
delay_ms (1000);
output_a (0b001010);
delay_ms (1000);
output_a (0b001001);
delay_ms (1000);
output_a (0b101000);
}


Otra forma de realizar el mismo programa , pero con vectores es :

#include <main.h>


void main()
{
   int secuencia[] = {0b011001, 0b011000, 0b001111, 0b001110,
                   0b001101, 0b001100, 0b001011, 0b001010,
                   0b001001, 0b101000};
   
   int i;

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   setup_oscillator(OSC_8MHZ);


   while(!input(PIN_A3));

   for (i=0; i < 10; i++) {
      output_a (secuencia[i]);
      delay_ms (1000);
   }
}

Foto del circuito en el protoboard:

Video del programa para comprobar que funciona en el Proteus.



No hay comentarios:

Publicar un comentario