Aprendizaje Práctico – MANUAL DE PROCEDIMIENTO
PRÁCTICA #1: Secuencias de Visualización
CARRERA: INGENIERIA ELECTRONICA
Led
Equipo Responsable CÁTEDRA O MATERIA REVISIÓN N°:1
--------- RELACIONADA
Accesorios:
SISTEMAS MICROPROCESADOS
------- EDICIÓN:1
DOCENTE: # ESTUDIANTES/ PRÁCTICA: Fecha:
Ing. Pablo Cevallos L. Msc Juan Miguel Páez C/ PRÁCTICA 1 4 DE DICIEMBRE DE 2019
Tema: Secuencias de visualización Led
Objetivo General: Diseñar un sistema electrónico para la visualización de caracteres en un display 7
segmentos con capacidad de variación de la secuencia de visualización y de la velocidad de
presentación.
Especificaciones:
El sistema debe poseer 3 secuencias de visualización en un display de 7 segmentos. El
display debe estar conectado a un único puerto del microcontrolador.
La selección de las distintas secuencias de visualización debe ser realizada por medio de
micro interruptores (microswitch).
El sistema debe poseer controles para regular la velocidad de exhibición (temporización)
de las distintas secuencias por medio de pulsadores de Incremento y Decremento. La
atención a los eventos de los pulsantes debe ser realizado por interrupción externa.
Competencias asociadas al manejo de uC
Programación del Microcontrolador en Lenguaje C
Configuración de los puertos E/S digitales.
Lectura de pulsadores
Rutinas de tiempo con ciclos de máquina y timers
Manejo Básico de Interrupciones Externas.
Sustento teórico:
1.1. MICROCONTROLADOR PIC16F18875.
Los microcontroladores PIC16 (L) F18855 / 75 cuentan con periféricos analógicos, centrales
independientes y periféricos de comunicación, combinado con la tecnología eXtreme Low-Power (XLP)
para una amplia gama de aplicaciones de uso general y baja potencia.
La familia contará con CRC / SCAN, temporizador de límite de hardware (HLT) y temporizador de
vigilancia de ventana (WWDT) para admitir clientes que buscan agregar seguridad a su aplicación.
Además, esta familia incluye hasta 14 KB de memoria Flash, junto con con un ADC de 10 bits con
extensiones de computación (ADC2) para el análisis de señal automatizado para reducir la complejidad
de la solicitud.
Imagen 1: 40-pin PDIP
Caracteristicas:
Velocidad de CPU máx. de 32 MHz
49 instrucciones
Pila de hardware de 16 niveles
Oscilador interno
25 o 36 contactos de E/S
Reset de encendido (POR)
Temporizador de arranque (PWRTE) configurable
Reinicio de caída de tensión (BOR) y reinicio de caída de tensión de baja potencia (LPBOR)
Temporizador Watchdog con ventanas (WWDT)
Programación serie en circuito (ICSP)
Depuración en circuito (ICD)
Programación de baja tensión (LVP)
Selección de contactos periféricos (PPS)
Cada pin de esos puertos se puede configurar como entrada o como salida independiente programando un par de
registros diseñados para tal fin. En ese registro un bit en “0” configura el pin del puerto correspondiente como
salida y un bit en “1” lo configura como entrada. Dichos pines del microcontrolador también pueden cumplir
otras funciones especiales, siempre y cuando se configuren para ello.
Circuito del Reset:
Master Clear (MCLR), se lo conoce al pin del reset su función es reinicia el sistema cuando sea necesario. Se
puede reiniciar de las siguientes formas:
• Al Encendido (PowerOnReset).
• Pulso en el PIN MCLR durante operacional normal.
• Pulso en el PIN MCLR durante modo de bajo consumo (mode sleep).
• El rebote del conteo del circuito de vigilancia durante la operación normal.
• El rebote del conteo del circuito de vigilancia durante el modo de bajo consumo (sleep).
Display 7 Segmentos cátodo común:
El display de 7 segmentos tiene una estructura casi estándar en cuanto al nombre de los segmentos. Para dicho
elemento, se cuenta con 7 leds, uno para cada segmento. Para cada segmento, se le asigna una letra desde la «a»
hasta la «g». El display tiene por nombre a cada uno de los siguientes segmentos, es decir, el símbolo del
display 7 segmentos es:
Imagen 2: Display 7 segmentos
FUNCIONAMIENTO
Imagen 3: Funcionamiento display 7 segemnetos
Procedimiento:
Esquema en proteus
Imagen 3: Esquema circuito eléctrico Practica 1
Diagrama de flujo
Imagen 4: Diagrama de flujo Inicializacion
Imagen 5: Diagrama de flujo Secuencia
Imagen 6: Diagrama de flujo Delay
Imagen 7: Diagrama de flujo Interrupcion
Anexos: Esquemas, Diagramas de Flujo, Código de programación.
CODIGO
#include <xc.h>
#include "Configuraciones.h"
#define _XTAL_FREQ 4000000
unsigned int cont = 5;
void delay(cont){
for(int i=1;i<=cont;cont++){
__delay_ms(100);
}
}
void __interrupt() interrupcion(void){
if(PIR0bits.IOCIF == 1 ){
__delay_ms(30);
if(IOCBPbits.IOCBP4 == 1){
if(cont<= 10 ){
cont ++;
}
}
IOCBPbits.IOCBP4 = 0;
if(IOCBPbits.IOCBP5 == 1)
{
if(cont > 1 ){
cont --;
}
}
IOCBPbits.IOCBP5 = 0 ;
}
PIR0bits.IOCIF = 0 ;
}
void main(){
TRISC = 0x00; // declaro el ppuerto como salidas
TRISB = 0xFF; // puertos como entradas
ANSELB = 0x00;// configuro como puerto digital
LATC = 0x00;// leer los estados digitales del puerto C
PORTB = 0; //LIMPIA EL PUERTO
INTCONbits.GIE = 1;
INTCONbits.PEIE = 1;
PIE0bits.IOCIE = 1 ;
PIR0bits.IOCIF = 1 ;
IOCBPbits.IOCBP4 =1; //Flanco de subida
IOCBPbits.IOCBP5 =1; //Flanco de subida
unsigned char secuencia1[] = {// secuencia 1
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F, // 9
};
unsigned char secuencia2[] = {// secuencia 1
0x3F, // 0
0x5B, // 2
0x66, // 4
0x7D, // 6
0x7F, // 8
};
unsigned char secuencia3[] = {// secuencia 1
0x3F, // 0
0x06, // 1
0x4F, // 3
0x6D, // 5
0x07, // 7
0x6F, // 9
};
while(1){
if(PORTBbits.RB0 == 0 && PORTBbits.RB1 == 0 &&PORTBbits.RB2== 0 ){
PORTC = 0x00;
delay(cont);
PORTC = 0xFF;
delay(cont);
}
if(PORTBbits.RB0 == 1 && PORTBbits.RB1 == 0 &&PORTBbits.RB2== 0 ){
for(int i = 0; i <= 9; i++) {
PORTC = secuencia1[i];
delay(cont);
}
}
if(PORTBbits.RB0 == 1 && PORTBbits.RB1 == 1 &&PORTBbits.RB2== 0 ){
for(int i = 0; i <= 4; i++) {
PORTC = secuencia2[i];
delay(cont);
}
}
if(PORTBbits.RB0 == 1 && PORTBbits.RB1 == 1 &&PORTBbits.RB2== 1 ){
for(int i = 0; i <= 4; i++) {
PORTC = secuencia3[i];
delay(cont);
}
}
}
}
Conclusiones y recomendaciones.
La utilización de los puertos del micro controlador se configuran con los registros TRIS Y PORT, además,
consideramos que el puerto A tiene dos registros mas ADCON1 YCMCON ya que este puede ser una
entrada multiplexada Analógico Digital. La programación estructurada es indispensable para un
correcto funcionamiento de Microcontrolado. Para evitar errores se recomienda comentar las líneas de
código que más importancia tengan.
Bibliografía:
1. Arquitectura del PIC16F18875
Datasheet del PIC16F18875 Microchip