SECUENCIA DE LEDS CON MICROCONTROLADOR PIC16F7887

¿Qué es un microcontrolador?

 Es un  “chip” o un circuito integrado programable, en el cual permite ejecutar un conjunto de instrucciones predefinidas.

Elementos básicos de un microcontrolador.

CPU(Unidad de procesamiento Central): Se encarga de ejecutar cada instrucción y controlar que dicha ejecución sea la adecuada.

Memorias: Son aquellas que guardan las instrucciones y los diferentes datos.

 tipos de memoria.

Persistentes: Son aquellas, donde el contenido se almacena de forma permanente cuando no hay alimentación.

Volátiles: Son aquellas, donde el contenido se pierde al dejar de recibir alimentación.

Las pastillas de entrada y salida: Se encarga de comunicar el microcontrolador con el exterior.

El PIC16F887: Es un microcontrolador de Microchip. Su consumo de potencia es muy bajo. Tiene cinco puertos llamados A,B,C,D y E; pueden ser utilizados como entrada digital, salida digital, salida de PWM, entrada para conversión análoga a digital, transmisión o recepción datos.

 

Características del PIC16F7887

  • Número de pines: 40 pines.
  • Voltaje de alimentación:0v a 5.5v.
  • Tres temporizadores/contadores independientes.
  • Frecuencia de operación 0-20MHZ.
  • Tiene 256 bytes de memoria EEPROM.
  • Tiene memoria ROM de 8k.
  • Tiene 368 bytes de memoria RAM.

 

INTRODUCCIÓN A LOS MICROCONTROLADORES

 

FUNCIONES UTILIZADAS PARA LA PROGRAMACIÓN DEL PIC.

 

PORTA, PORTB, PORTC, PORTD y PORTE: Los puertos del microcontrolador, son  la manera como se comunica con el mundo exterior.

SET_TRIS_A(valor), SET_TRIS_B(valor), SET_TRIS_C(valor), SET_TRIS_D(valor), SET_TRIS_E(valor): Son registros de configuración, que indican si los pines del puerto son de entrada o salida.

Hay que tener en cuenta que  en los PIC de MICROCHIP, las entradas se configuran con unos y las salidas con ceros.

BIT_TEST(valor, bit): Prueba el estado del bit del valor. Devuelve uno.

BIT_SET(valor,bit): Pone en uno el bit especificado del valor.

#INCLUDE <16F887.h>: Es la librería del microcontrolador que se va a utilizar, en este caso se utiliza el pic16F887.

#USE DELAY(CLOCK=4000000): Configuración de la frecuencia del reloj del sistema a 4MHZ.

#FUSES XT, NOPROTECT,NOWDT: Son fusibles de configuración que se pueden habilitar o deshabilitar, de acuerdo a lo que se necesite en el programa.

#FUSES XT: Oscilador a cristal estándar.

#FUSES NOPROTECT:Protección contra lectura de la FLASH desactivada.

#FUSES NOWDT: Watch Dog Timer desactivado.

 

EJERCICIO INTRODUCTORIO: SECUENCIA DE LEDS CON DOS PULSADORES.

INTRODUCCIÓN A LOS MICROCONTROLADORES

PROGRAMA EN PIC C COMPILER.

//Secuencia leds con pulsadores

#INCLUDE <16F887.h>
#USE DELAY (CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT

//Definición de registros

#BYTE  PORTA=5
#BYTE  PORTB=6

//Definición de entradas

#DEFINE SW1 PORTA,0
#DEFINE SW2 PORTA,1


main(){

//Definición de salidas y etradas digitales 
SET_TRIS_B(0B00000000); //Salidas digitales
SET_TRIS_A(255); //Entradas digitales
SET_TRIS_C(255); //También puedo poner 0B11111111 Como entrada digital
PORTA=0X00;
PORTB=0X00;

   WHILE(1){
 IF((BIT_TEST(SW1)==0) && (BIT_TEST(SW2)==0))
 {  
    BIT_SET(PORTB,0);
    DELAY_MS(100);
    
    BIT_SET(PORTB,1);
    DELAY_MS(100);
    
    BIT_SET(PORTB,2);
    DELAY_MS(100);
    
    BIT_SET(PORTB,3);
    DELAY_MS(100);
    
    BIT_SET(PORTB,4);
    DELAY_MS(100);
  
    BIT_SET(PORTB,5);
    DELAY_MS(100);
 
    BIT_SET(PORTB,6);
    DELAY_MS(100);
    
    BIT_SET(PORTB,7);
    DELAY_MS(100);
    
 }
  
     IF((BIT_TEST(SW1)==0) && (BIT_TEST(SW2)==1))
   {
    PORTB=0B00011000;
    DELAY_MS(100);
    PORTB=0B00100100;
    DELAY_MS(100);
    PORTB=0B01000010;
    DELAY_MS(100);
    PORTB=0B10000001;
    DELAY_MS(100);
    }
      
      IF((BIT_TEST(SW1)==1 ) &&  (BIT_TEST(SW2)==0)) { 
          PORTB=0B01010101;
          DELAY_MS(100);
          PORTB=0B10101010;
          DELAY_MS(100);
        
      IF(BIT_TEST(SW1)==1)
      {
         PORTB=0X00;
      }
    }
     IF((BIT_TEST(SW1)==1) && (BIT_TEST(SW2)==1))
     {
         PORTB=0B11000011;
         DELAY_MS(100);
         PORTB=0B00111100;
         DELAY_MS(100);
     }
     
     PORTB=0X00;
 }
}

 

Explicación del circuito:

 Con el pic16f887 se controla el encendido y apagado de la secuencia de los leds. Con los cuatro estados lógicos para cada pulsador se genera una secuencia diferente.

 

           Pulsador Uno            Pulsador Dos              Secuencia
                 Cero                     Cero  Prenden cada led en dirección izquierda. Cuando todos los leds están prendidos, se apagan.
                 Cero                      Uno  Pares e impares
                 Uno                     Cero        Se prenden cada led del nibble alto hacia la izquierda y se prenden cada led del nibble bajo hacia la derecha.
                 Uno                      Uno Se prenden de a dos  leds  del nibble alto hacia la izquierda y se prenden de a dos leds del nibble bajo hacia la derecha.

 

Materiales:

  • Dos resistencias de 10 KΩ
  • Nueve resistencias de 220Ω
  • Ocho leds rojos.
  • Un pic16F887.
  • Dos pulsadores.

VÍDEO DE LA SIMULACIÓN DEL CIRCUITO.

 

VÍDEO DE LA PRUEBA DEL CIRCUITO

CONTENIDOS MÁS RELEVANTES.

LOS MEJORES SITIOS PARA APRENDER ELECTRICIDAD GENERAL

Que tal compañeros: ¿ como están? pues espero que se encuentren de maravilla ¡así como yo también! el día de ...
Leer Más

LOS MEJORES SITIOS PARA APRENDER ELECTRONICA

 LOS MEJORES SITIOS PARA APRENDER ELECTRONICA nuestra red global llamada Internet está inundada de muchos sitios para aprender electrónica de ...
Leer Más
plc aprender a programar

PLC: APRENDER A PROGRAMAR

PLC: APRENDER A PROGRAMAR Que tal amigos. ¿como están? ¿quieren aprender a programar PLCs? ¿estás buscando sitios que te ofrezcan ...
Leer Más

LOS MEJORES SITIOS PARA APRENDER ROBOTICA COMPLETAMENTE GRATIS.

saludos compañeros. Les cuento que el día de hoy estuve en una búsqueda exhaustiva por buscar los mejores sitios para ...
Leer Más
libros de ingeniería electrónica

DESCARGAR GRATIS LIBROS DE ELECTRÓNICA

como descargar los libros gratis de electrónica saludos amigos, el día de hoy les comparto una serie de links  que ...
Leer Más
instrumentación

LOS MEJORES SITIOS PARA APRENDER INSTRUMENTACIÓN Y CONTROL

 En el post de hoy hablaré de 5 sitios web que marcan la diferencia para aprender todo lo que necesitas ...
Leer Más

MICROCONTROLADORES: CURSO COMPLETAMENTE GRATIS.

nota: estos cursos no pertenecen a sensoricx. Recuerda que debes suscribirte al canal https://www.youtube.com/channel/UCwbBivwbFv8GVitX5dKzPFQ antes de empezar el curso. VIDEO ...
Leer Más
plc siemens

PLC: CURSO COMPLETAMENTE GRATIS.

Saludos compañeros. A continuación les comparto una serie de vídeos que les servirán para su formación técnica en programación de ...
Leer Más
destacada

APRENDE LABVIEW CON ESTOS SENCILLOS TUTORIALES

saludos compañeros. El día de hoy les comparto una serie de vídeos relacionados con el entorno de desarrollo de LABVIEW ...
Leer Más
igbt

IGBT. QUE ES- PARA QUE SIRVE- COMO FUNCIONA

IGBT QUE ES- PARA QUE SIRVE- COMO FUNCIONA Hablar de los IGBT son mayores palabras puesto que estos transistores son ...
Leer Más
inversor de giro de motor trifasico

INVERSOR DE GIRO DE MOTOR TRIFÁSICO

INVERSOR DE GIRO DE MOTOR TRIFÁSICO En la reciente práctica  de laboratorio se trabajó con el circuito inversor de giro ...
Leer Más

CONTROL ELECTRICO-INTRODUCCION

CONTROL ELECTRICO-INTRODUCCION Dentro de los sistemas de control electromagnético o sistemas cableados destacamos como elemento principal el contactor.   El ...
Leer Más

fabio figueroa

soy el administrador del sitio web. si tienes alguna duda, no dudes en contactarme

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *