Está en la página 1de 11

Facultad de Ciencias de la Administración

Escuela de Ingeniería de Sistemas y Telemática


Microcontroladores

Práctica 4: LUCES DEL AUTO FANTÁSTICO

Realizado por:
David Mejía
Andrea Trujillo

Docente:
Ing. Diego Chacón Mdhd

Fecha:
05/12/2017
1. OBJETIVOS

 Manejar los puertos A, B o D de forma simultánea.


 Encender varios leds de forma simultánea, simulando las luces del auto
fantástico.
 Manejar el control de tiempos de espera(delay) para controlar leds de forma
simultánea.

2. MATERIALES Y EQUIPO

 Protoboard
 Fuente de 5V
 Microcontrolador PIC16F877
 1 cristal TX de 4Mhz
 1 resistencia de 10KΩ.
 6 resistencias de 330Ω
 6 Leds.
 2 pulsadores normalmente abierto
 Cable para montar y herramientas (cortafríos, pinza)

1. MARCO TEÓRICO

Pic P16F877A:
El microcontrolador PIC PIC16f877a es uno de los microcontroladores más
reconocidos de la industria. Este controlador es muy conveniente de usar, la
codificación o programación de este controlador también es más fácil. Una de las
principales ventajas es que puede borrarse la escritura tantas veces como sea
posible porque usa tecnología de memoria FLASH. Tiene un número total de 40 pines
y hay 33 pines para entrada y salida. PIC16F877A se utiliza en muchos proyectos de
pic microcontroladores. PIC16F877A también tiene muchas aplicaciones en circuitos
electrónicos digitales.

PIC16f877a encuentra sus aplicaciones en una gran cantidad de dispositivos. Se


utiliza en sensores remotos, dispositivos de seguridad y protección, domótica y en
muchos instrumentos industriales. También se incluye una EEPROM que permite
almacenar parte de la información permanentemente, como los códigos del
transmisor y las frecuencias del receptor y algunos otros datos relacionados. El costo
de este controlador es bajo y su manejo también es fácil. Es flexible y se puede usar
en áreas donde los microcontroladores nunca se han utilizado antes, como en
aplicaciones de coprocesador y funciones de temporizador, etc.

Configuración y descripción del pin de pic16f877a


Como se ha mencionado anteriormente, hay 40 pines de este microcontrolador
IC. Se compone de dos temporizadores de 8 bits y uno de 16 bits. Los módulos de
captura y comparación, puertos serie, puertos paralelos y cinco puertos de entrada
/ salida también están presentes en él.

MiKroC:
El mikroC PRO for PIC es una herramienta de desarrollo potente y rica en
características para microcontroladores PIC. Está diseñado para proporcionar al
programador la solución más fácil posible para el desarrollo de aplicaciones para
sistemas integrados, sin comprometer el rendimiento o el control.
PIC y C se combinan bien: el PIC es el chip de 8 bits más popular en el mundo y
se usa en una amplia variedad de aplicaciones, y C, muy apreciado por su eficacia,
es la elección natural para desarrollar sistemas integrados. mikroC PRO for PIC
proporciona una coincidencia exitosa con IDE altamente avanzado, compilador
compatible con ANSI, amplio conjunto de bibliotecas de hardware,
documentación completa y muchos ejemplos listos para ejecutar.

Pickit 2
El programador PicKit2, es una herramienta de programación para desarrollo de bajo
costo. Es capaz de programar la mayoría de los microcontroladores y memorias
seriales EEPROM de Microchip.

El programador Pickit 2 permite el uso del conector ICSP y posee conexión USB, es
una herramienta de desarrollo con una interfaz fácil de usar para la programación
de microcontroladores de Microchip. Funcional con el entorno de desarrollo
integrado MPLAB IDE, conexión USB plug & play.
Puerto PORTB y registro TRISB

El puerto PORTB es un puerto bidireccional, de 8 bits de anchura. Los bits del registro
TRISB determinan la función de sus pines.

En este puerto un uno lógico (1) en el registro TRISB configura el pin apropiado en el
puerto PORTB y al revés. Los seis pines de este puerto se pueden comportar como
las entradas analógicas (AN).

Características
Todos los pines del puerto PORTB tienen las resistencias pull-up integradas, que los
hacen perfectos para que se conecten con los botones de presión (con el teclado),
interruptores y opto acopladores. Con el propósito de conectar las resistencias a los
puertos del microcontrolador, el bit apropiado del registro WPUB debe estar a uno.

Al tener un alto nivel de resistencia, estas resistencias “virtuales” no afectan a los


pines configurados como salidas, sino que sirven de un complemento útil a las
entradas. Estas resistencias están conectados a las entradas de los circuitos lógicos
CMOS. De lo contrario, se comportarían como si fueran flotantes gracias a su alta
resistencia de entrada.

Puerto PORTA y registro TRISA

El puerto PORTA es un puerto bidireccional, de 8 bits de anchura. Los bits de los


registros TRISA y ANSEL controlan los pines del PORTA. Todos los pines del PORTA se
comportan como entradas/salidas digitales. Cinco de ellos pueden ser entradas
analógicas (denotadas por AN).

RA0 = AN0 (determinado por el bit ANS0 del registro ANSEL)


RA1 = AN1 (determinado por el bit ANS1 del registro ANSEL)
RA2 = AN2 (determinado por el bit ANS2 del registro ANSEL)
RA3 = AN3 (determinado por el bit ANS3 del registro ANSEL)
RA5 = AN4 (determinado por el bit ANS4 del registro ANSEL)

Similar a que los bits del registro TRISA determinan cuáles pines serán configurados
como entradas y cuáles serán configurados como salidas, los bits apropiados del
registro ANSEL determinan si los pines serán configurados como entradas analógicas
o entradas/salidas digitales. Cada bit de este puerto tiene una función adicional
relacionada a algunas unidades periféricas integradas.

Puerto PORTD y registro TRISD


 Puerto D de 8 pines bidireccional.
 La configuración de entrada y/o salida de cada uno de los pines del puerto D
se hace bit a bit en el registro TRISD asi:
o Con 1 configura el pin del puerto como entrada.
o Con 0 configura el pin del puerto como salida.

Los pines del Puerto D tienen separadores “Schmitt Trigger” en las entradas.

El puerto D puede ser configurado como un puerto de microprocesador de 8 bits


(Parallel Slave Port – Puero auxiliar paralelo) poniendo en 1 el bit de control
PSPMODE (TRISE<4>). En este modo los “bufferes” son TTL.

2. DESARROLLO

Condiciones:

Desarrollar un programa que cumpla con las siguientes condiciones:


Encendido de varios leds, que simulen lo siguiente:
o Encendido de leds en secuencia, de ida y vuelta.
o Encendido de leds de adentro hacia afuera.
o Reinicia todo al presionar el pulsante de reset.
o Reinicia al presionar un pulsante y pausa al presionar un pulsante.
o Su objetivo es simular las luces del auto fantástico.

Esquema de conexión
Diagrama de Flujo
Programación
unsigned int led;
void metodo1(void) {
PORTD.F0=1;
PORTD.F1=1;
Delay_ms(100);
PORTD.F2=1;
PORTD.F0=0;
Delay_ms(100);
PORTD.F3=1;
PORTD.F1=0;
Delay_ms(100);
PORTD.F4=1;
PORTD.F2=0;
Delay_ms(100);
PORTD.F5=1;
PORTD.F3=0;

Delay_ms(100);
PORTD.F3=1;
PORTD.F5=0;
Delay_ms(100);
PORTD.F2=1;
PORTD.F4=0;
Delay_ms(100);
PORTD.F3=0;
}

void metodo2(void) {
PORTD.F0=1;
PORTD.F5=1;
Delay_ms(100);
PORTD.F1=1;
PORTD.F4=1;
PORTD.F0=0;
PORTD.F5=0;
Delay_ms(100);
PORTD.F2=1;
PORTD.F3=1;
PORTD.F1=0;
PORTD.F4=0;
Delay_ms(100);
PORTD.F1=1;
PORTD.F4=1;
PORTD.F2=0;
PORTD.F3=0;
Delay_ms(100);
PORTD.F0=1;
PORTD.F5=1;
PORTD.F1=0;
PORTD.F4=0;

}
void main(void)
{

TRISB.F6=1;
TRISD.F0=0;
TRISD.F1=0;
TRISD.F2=0;
TRISD.F3=0;
TRISD.F4=0;
TRISD.F5=0;

PORTB.F6=0;
PORTD.F0=0;
PORTD.F1=0;
PORTD.F2=0;
PORTD.F3=0;
PORTD.F4=0;
PORTD.F5=0;

while(1){
if(PORTB.F6==1){
while(1){
metodo1();
metodo2();
}
}

}
}
Simulación

Resultados prácticos
3. ANÁLISIS DE RESULTADOS
En la presente práctica se seleccionó los puertos D como salida con sus respectivos
registros, para la realización se optó por implementar seis leds para mostrar el
objetivo, con un delay de 1 segundo como tiempo de espera entre cada combinación
de encendido y apagado de grupo de leds, además de tres pulsantes, uno con el fin
de iniciar la secuencia, el segundo para pausar y reiniciar desde ese estado y por
último un pulsante que reinicie todo el conteo desde cero. Es recomendable realizar
esta secuencia de luces con una cantidad mayor de leds para una mejor apreciación
de combinaciones de tiempo de encendido y apagado. En cuando a aspectos de
programación se realizaron dos procesos con la finalidad de tener un mayor control
en las dos secuencias que debían generar los leds.

4. CONCLUSIONES

Para concluir con la presente práctica podemos decir que los manejos de tiempos de
espera en la programación de leds juegan un rol importante para conseguir una
secuencia de encendido y apagado de leds, al igual que combinar simultáneamente
varios leds puede consumir muchos recursos de memoria si no se analiza el objetivo
deseado de tal forma que el código de programación sea eficiente y eficaz en cuanto
a espacio de memoria y funcionalidad por lo que se recomienda el uso de
procedimientos y variables reutilizables.
5. BIBLIOGRAFÍA

 Genérico, P. (2017). Programador microcontroladores PIC PICkit 2 – Genérico


- Electronilab. [online] Electronilab. Available at:
https://electronilab.co/tienda/programador-microcontroladores-pic-pickit-
2-generico/
 Verle, M. (2017). 3.3 Puertos de Entrada/Salida | Microcontroladores PIC –
Programación en C con ejemplos. [online] Learn.mikroe.com. Available at:
https://learn.mikroe.com/ebooks/microcontroladorespicc/chapter/puertos
-de-entradasalida/
 Programacion-pic16f877a.es.tl. (2017). Programacion de los
Microcontroladores PIC16F877A - PUERTOS E/S. [online] Available at:
https://programacion-pic16f877a.es.tl/PUERTOS-E-s-S.htm

También podría gustarte