Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Realizado por:
David Mejía
Andrea Trujillo
Docente:
Ing. Diego Chacón Mdhd
Fecha:
05/12/2017
1. OBJETIVOS
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.
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.
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.
Los pines del Puerto D tienen separadores “Schmitt Trigger” en las entradas.
2. DESARROLLO
Condiciones:
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