jueves, 28 de febrero de 2019

clase contador


El tema de hoy es  contador con microcontrolador ,  vamos a programar el microcontrolador 16f887 para que se comporte como un dispositivo que cuente eventos , que pudieran ser la cantidad de  coches que entran a un estacionamiento , la personas que entran a un supermercado o las piezas que pasan por una línea de producción por ejemplo.

Para esto se  configura el puerto a del microcontrolador como entrada ,  ya que en la entrada RA0 se conectara el dispositivo sensor, y se configura el puerto B como salida porque el conteo lo mostrara por medio de un display de 7 segmentos.
Se llevara una cuenta de 0 a 7 y posteriormente se reinicia a 0, para probar el circuito se construyo un modelo en proteus, que tiene conectado un botón el el puerto RA0 que hará las funciones de sensor y un display de 7 segmentos conectado en el puerto B.

liga youtube  
 https://youtu.be/mrd-8pSV_ds  
 https://www.youtube.com/watch?v=mrd-8pSV_ds





el codigo  es el siguiente

  // programa contador  por software

  //materia microcontroladores
  // ene jun 2019
  
  
  
  
  // vector de interrupcion y funciones
  
  
  
  
  //variables

int contador=0;


void main() {
    trisa=0xff;   //configurar puertoA  como entrada
   trisb=0x00;    //configurar puerto B como salida
   ansel=0x00;     //apagar el convertidor analogico digital
   anselh=0x00;

   porta=0x00;  //iniciar puero A en cero
   portb=0x3F;  //inicializar display a cero
   
      while(1){
               if (porta.b0==1){
               while(porta.b0==1);
               contador =contador+1;
               }
                if (contador==7){
                contador=0;}
                
                
              switch (contador){
               
                case 0: portb= 0x3F;break;
                case 1: portb= 0x06;break;
                case 2: portb= 0x5B;break;
                case 3 : portb= 0x4F;break;
                case 4: portb= 0x66;break;
               case  5: portb= 0x6D;break;
                case 6: portb= 0x7D;break;   }
}

No hay comentarios:

Publicar un comentario