CURSO DE PROGRAMACIÓN DE MICROCONTROLADORES PIC
PARTE A: Programación de Microcontroladores PIC de MICROCHIP.
MANEJO DE DISPLAY DE 7 SEGMENTOS MULTIPLEXADO
CAPACIDAD TERMINAL
Utilizar al microcontrolador en aplicaciones de control electrónico.
Desarrollar y ejecutar programas en un microcontrolador PIC
Programar y configurar interfaces básicas del microcontrolador.
COMPETENCIA ESPECIFICA DE LA SESION
Conocer el Display de 7 segmentos y su funcionamiento
Conocer las técnicas de multiplexación
CONTENIDOS A TRATAR
Display 7 segmentos
Multiplexación de datos
RESULTADOS
Diseñan y optimizan sistemas y procesos para cumplir con las condiciones establecidas y gestionando adecuadamente los recursos materiales y humanos.
MATERIALES Y EQUIPO
CCS Compiler instalado.
Entrenador de PICS
PIC16F877A
Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
PC con Software de simulación.
DIAGRAMA ESQUEMÁTICO:
CÓDIGO DE PROGRAMACIÓN EN PIC C COMPILER:
#INCLUDE <16F877A.H>
#USE DELAY(CLOCK=4000000) //Cristal externo 4MHz
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
Byte CONST display[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
#BYTE PORTB= 6
#BYTE PORTC= 7
#DEFINE TUNI PORTC,0 //Definición de variables
#DEFINE TDEC PORTC,1 //Definición de variables
INT CONT; //Declarar la variable CONT como un entero, es decir de 8 bits
LONG CONTRET; //Declarar la variable CONTRET como LONG, es decir de 16 bits
VOID MOSTRAR( ) //Rutina mostrar
{
INT UNI,DEC; //Declarar las variables UNI, DEC como un entero, es decir de 8bits
DEC=CONT/10;
UNI=CONT%10;
PORTB=(DISPLAY[UNI]); //Muestra lo que hay en unidades en el display
BIT_SET (TUNI); //Enciende el display de unidades
DELAY_MS(1); //Retardo de 1 milisegundos
BIT_CLEAR(TUNI); //Apaga el display de unidades
PORTB=(DISPLAY[DEC]); //Muestra lo que hay en unidades en el display
BIT_SET (TDEC); //Enciende el display de decenas
DELAY_MS(1); //Retardo de 1 milisegundos
BIT_CLEAR(TDEC); //Apaga el display de decenas
}
VOID RET1SEG() //Rutina RET1SEG
{
CONTRET=500; //Cargue con 500 la variable CONTRET
WHILE (CONTRET>0) //Mientras que la variable CONTRET sea mayor que cero
{
MOSTRAR(); //Llamar la rutina MOSTRAR
CONTRET--; // Decremente la variable CONTRET
}
}
void MAIN()
{
SET_TRIS_B(0); //El puerto B esta configurado como salida
SET_TRIS_C(0); // El puerto C esta configurado como salida
CONT=0; //la variable CONT se inicializa con cero
WHILE(TRUE) //Haga por siempre
{
CONT=0;
WHILE(CONT<100) //mientras la variable CONT es menor que 100
{
RET1SEG( ); //Llama la rutina RET1SEG
CONT++; //Incrementa la variable CONT
}
}
}
PROCEDIMIENTO
RETO DE LA SEMANA:
Agregar dos pulsadores, uno para incrementar cuenta y otro para decrementar cuenta
VIDEO DEL RETO :