0% encontró este documento útil (0 votos)
17 vistas6 páginas

Reporte Practica 2

Reporte

Cargado por

Ashley Pérez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas6 páginas

Reporte Practica 2

Reporte

Cargado por

Ashley Pérez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ETD-1022, E5C, MICROCONTROLADORES, REPORTE DE LABORATORIO 03, NOVIEMBRE 2023

Profesor: Dr. Aldo Eleazar Pérez Ramos Instituto Tecnológico de Oaxaca


Departamento de Ingeniería Electrónica

Encender y apagar led con rutina de retardo


Matias Jerónimo Luz Divina, 19160473
Pérez López Esli Emanuel, 21160392
Pérez López Ashley Antonio, 21160393

Resumen — El PIC16F877A es un microcontrolador de 8


bits que se utiliza frecuentemente en proyectos de
electrónica. Una de las aplicaciones más comunes es el
encendido y apagado de un led, ya que es una forma sencilla
de empezar a trabajar con este dispositivo.
En esta practica de laboratorio, al utilizar una rutina de
retardo en el microcontrolador de puede encender y apagar
un led de manera controlada. La rutina de retardo permite
introducir una pausa en el programa, lo que permite
observar visualmente el cambio de estado del led en un
cierto intervalo de tiempo el cual determinamos.
Figura 1. Microcontrolador 16F877A
Palabras clave — ARMADO, PIC16F877A, RETARDO, El microcontrolador se programa utilizando el lenguaje
SIMULACION ensamblador o C y se puede programar fácilmente
utilizando MPLAB X IDE y herramientas de
I. INTRODUCCIÓN programación de Microchip. Tiene una amplia gama de
La practica de encendido y apagado de LED con aplicaciones que incluyen domótica, robótica, control
rutina de retardo con PIC16F877A tiene como objetivo industrial e instrumentación.
generar una rutina de retardo, con el fin de controlar el
tiempo de encendido y apagado del led. En el programa
se configuran los puertos de entrada y salida
correspondientes a través de los registros TRIS,
definiendo el pin led como salida. Luego se implementa
una rutina de retardo utilizando las instrucciones del
software, que consiste en realizar iteraciones de un bucle
para genere un cierto tiempo de espera que ya
determinamos, los cuales serán de 500ms,10s y 2
minutos.

II. MARCO TEÓRICO


¿Qué es el Microcontrolador PIC16F877A?
El Microcontrolador PIC16F877A-I/P es un circuito
integrado programable tipo FLASH reprogramable figura 2. Pinout o patillaje PIC16F877A
capaz de realizar y controlar tareas. El MCU cuenta
Puertos
con una RAM de 256 Bytes, frecuencia de trabajo de
Un puerto (port) es un circuito que forma parte del
20 MHz, empaquetado DIP-40. Pertenece a la familia de
microcontrolador y sirve de interfaz con
microcontroladores PIC16.
algún dispositivo externo (periférico). La Figura 3. En
general se dispone de n líneas para
¿Para qué sirve el Microcontrolador
transportar el dato y de m líneas adicionales para
PIC16F877A?
controlar la transferencia de los datos
El Microcontrolador PIC16F877A-I/P funciona para
entre el periférico y el puerto.
poder efectuar y/o controlar otros dispositivos, algunas
de sus aplicaciones son automatización y control de
procesos, comunicaciones y red, electrónica de
consumo, diseño embebido y desarrollo, multimedia,
dispositivos portátiles, robótica, instrumentación o
seguridad.

Figura 3. Conexión en entre el microcontrolador y un periférico

1
ETD-1022, E5C, MICROCONTROLADORES, REPORTE DE LABORATORIO 03, NOVIEMBRE 2023
Profesor: Dr. Aldo Eleazar Pérez Ramos Instituto Tecnológico de Oaxaca
Departamento de Ingeniería Electrónica

MPLAB IDE
Es un editor IDE gratuito de lenguaje
ensamblador, destinado a productos de marca micro-
chip, este editor es modular, permite seleccionar los
distintos microcontroladores soportados, además de
permitir la grabación de estos circuitos integrados
directamente al programador. Encender led
Una vez escrito y depurado el programa, se
procede a la compilación. Para esto, desde el menú
PROJECT se elige la opción BUILD ALL (construir
todo) que, si no existen errores, devolverá un mensaje
como BUILD SUCCESSFUL, terminada la compilación
el MPLAB® nos genera un archivo de extensión. hex el
cual es completamente entendible para el PIC. Retardo

Apagar led

Retardo

Figura 4. Software utilizado

III. MATERIALES Y MÉTODOS


Materiales:
1. Microcontrolador PIC16F877A
2. Protoboard Retardo
3. Led
4. Resistencia de 330Ω
5. Resistencia de 10KΩ
6. Cristal de Quarzo de 4MHz
7. Fuente de alimentación de 5v
8. Cables de conexión

Para encender y apagar un LED utilizando un


Cargar valor con REG1
PIC16F877A, se deben seguir los siguientes pasos:

1. Tenemos que hacer nuestro diagrama de flujo


para una mejor comprensión de los que
queremos lograr con nuestro código: Reg1=Reg1-1

INICIO

Reg1=
0?
Configuración del MC
2
ETD-1022, E5C, MICROCONTROLADORES, REPORTE DE LABORATORIO 03, NOVIEMBRE 2023
Profesor: Dr. Aldo Eleazar Pérez Ramos Instituto Tecnológico de Oaxaca
Departamento de Ingeniería Electrónica

UNO DECFSZ REG3


GOTO UNO
DECFSZ REG2
GOTO DOS
Fin de rutina DECFSZ REG1
GOTO TRES
RETLW 0x00
Figura 5. Diagrama de flujo retardo NOP END
Figura 6. Código fuente
2. Como siguiente hacemos el programa el cual Obteniendo el siguiente condigo para un retardo 15
comienza con la declaración de la segundos:
configuración del microcontrolador, se utiliza u ;***************************
bloque de memoria para las variables REG1, ; practica 2: encender y apagar un led con rutina de
REG2, REG3 que serán nuestros registros retardo para 15 segundos
temporales en el programa. ; desarrollado por: Pérez López Ashley Antonio
A continuación, se define las constantes de ; fecha: 04/10/2023
valor1, valor2 y valor3 con ciertos valores para ;***************************
los tiempos de retardo de 500ms, 10seg y 2 #include <[Link]>; definiciones de variables
minutos respectivamente. específicas del procesador
Obteniendo el siguiente condigo para un retardo
de 500ms: LIST p=16F877A ; tipo de microcontrolador que se
; Practica2. Encender y apagar led con rutina de utiliza
retardo 500ms __CONFIG _FOSC_HS & _WDTE_OFF &
; Desarrollado por: Matias Jerónimo Luz Divina _PWRTE_ON & _BOREN_OFF & _LVP_OFF &
; Fecha:02/10/2023 _CPD_OFF & _WRT_OFF & _CP_OFF
;*****************************************
************************************** CBLOCK 0x0c ; variables
#include <[Link]> REG1, REG2, REG3, ; REGISTRO EN
LIST p=16f84a MEMORIAS DE DATOS
__CONFIG _FOSC_XT & _WDTE_OFF & ENDC
_PWRTE_ON & _CP_OFF VALOR1 EQU 0xFE ; Ajustado para 15 SEGUNDO
VALOR2 EQU 0xFE ; Ajustado para 2 SEGUNDO
CBLOCK 0x0c VALOR3 EQU 0x4D ; Ajustado para 2 SEGUNDO
REG1, REG2, REG3
ENDC ORG 0x00 ; Aquí comienza el MC y se
VALOR1 EQU d'254' configuran los puertos
VALOR2 EQU d'109' GOTO INICIO
VALOR3 EQU d'6'
INICIO ORG 0X05; origen del código
ORG 0x00 BSF STATUS, RP0; pasamos del banco 0 a banco
GOTO INICIO 1
BCF TRISB,0; configura RB0 como salida
INICIO ORG 0x05 BCF STATUS,RP0; cambio de banco 1 a banco 0
BSF STATUS, RP0
BCF TRISB, RB0 REPITE BSF PORTB,0; encender LED
BCF STATUS, RP0 CALL RETARDO
REPITE BSF PORTB, RB0 BCF PORTB,0; apagar LED
CALL RETARDO CALL RETARDO
BCF PORTB, RB0 GOTO REPITE
CALL RETARDO
GOTO REPITE RETARDO MOVLW VALOR1
RETARDO MOVLW VALOR1 MOVWF REG1
MOVWF REG1 TRES MOVLW VALOR2
TRES MOVLW VALOR2 MOVWF REG2
MOVWF REG2 DOS MOVLW VALOR3
DOS MOVLW VALOR3 MOVWF REG3
MOVWF REG3 UNO DECFSZ REG3
3
ETD-1022, E5C, MICROCONTROLADORES, REPORTE DE LABORATORIO 03, NOVIEMBRE 2023
Profesor: Dr. Aldo Eleazar Pérez Ramos Instituto Tecnológico de Oaxaca
Departamento de Ingeniería Electrónica

GOTO UNO GOTO REPITE


DECFSZ REG2
GOTO DOS RETARDO MOVLW VALOR1
DECFSZ REG1 MOVWF REG1
GOTO TRES CUATRO MOVLW VALOR2
RETLW 0x00 MOVWF REG2
END TRES MOVLW VALOR3
Figura 7. Código fuente MOVWF REG3
DOS MOVLW VALOR4
Obteniendo el siguiente condigo para un retardo 2 MOVWF REG4
minutos: UNO DECFSZ REG4
GOTO UNO
;*************************** DECFSZ REG3
; practica 2: encender y apagar un led con rutina de GOTO DOS
retardo para 2 minutos DECFSZ REG2
; desarrollado por: Pérez López Esli Emanuel GOTO TRES
; fecha: 04/10/2023 DECFSZ REG1
;*************************** GOTO CUATRO
#include <[Link]> ; definiciones de RETLW 0x00
variables específicas del procesador END
Figura 8. Código fuente
LIST p=16F877A ; tipo de microcontrolador que
se utiliza 3. Acto seguido, se verifico la funcionalidad del
__CONFIG _FOSC_HS & _WDTE_OFF & programa en el software MPLAB X IDE como
_PWRTE_ON & _BOREN_OFF & _LVP_OFF & se observa en la figura 9 y figura 10 para rutina
_CPD_OFF & _WRT_OFF & _CP_OFF de 500ms:

CBLOCK 0x0c ;variables


REG1,REG2,REG3,REG4 ;REGISTRO EN
MEMORIAS DE DATOS
ENDC
VALOR1 EQU 0xFF ; Ajustado para 2
minutos
VALOR2 EQU 0xC3 ; Ajustado para 2
minutos
VALOR3 EQU 0x95 ; Ajustado para 2
minutos
VALOR4 EQU 0x04 ; Ajustado para 2
minutos

ORG 0x00 ; Aquí comienza el MC y se Figura 9. Código insertado en MPLAB


configuran los puertos
GOTO INICIO

INICIO ORG 0X05; origen del código


BSF STATUS, RP0; pasamos del banco 0 a banco
1
BCF TRISB,0; configura RB0 como
Figura 10. Compilación del programa
salida
Se verifico la funcionalidad del programa en el software
BCF STATUS,RP0; cambio de banco 1 a
MPLAB X IDE como se observa en la figura 11 para
banco 0
rutina de 10 segundos:
REPITE BSF PORTB,0; encender LED
CALL RETARDO
BCF PORTB,0; apagar LED
CALL RETARDO
4
ETD-1022, E5C, MICROCONTROLADORES, REPORTE DE LABORATORIO 03, NOVIEMBRE 2023
Profesor: Dr. Aldo Eleazar Pérez Ramos Instituto Tecnológico de Oaxaca
Departamento de Ingeniería Electrónica

Figura 11. Código insertado en MPLAB Figura 14. Ciclo de apagado de 500ms

Se verifico la funcionalidad del programa en el software


MPLAB X IDE como se observa en la figura 12 para
rutina de 2 minutos:

Figura 15. Ciclo de encendido de 500ms


También podemos ver el encendido del led en la figura
16
Figura 12. Código insertado en MPLAB

4. Poco después se implemento el circuito en el


software de diseño y simulación llamada
proteus para hacer la simulación del código
implementado anteriormente en la figura 6.

Figura 16. Encendido del led

V. DISCUSIÓN Y CONCLUSIONES
Figura 13. Circuito de conexión para el programa
En conclusión, el reporte de practica sobre la rutina de
IV. RESULTADOS retardo de encendido y apagado del led con el
microcontrolador, nos ha permitido comprender el
En la figura 10 y figura 11 tenemos la simulación
funcionamiento básico asi como la capacidad de controlar
mostrada en la figura 9, en la cual se presenta el retardo
y llegar a manipular las señales de salida.
de 500ms en un ciclo de apagado y 500ms en un ciclo de
Hemos implementado 3 rutinas de retardo que nos ha
encendido.
permitido controlar el tiempo de encendido y apagado de
nuestro led conectado al PIC, viendo el tiempo de retardo
a través del osciloscopio del simulador de proteus.
Esta practica nos ha brindado una introducción muy
útil con los fundamentos necesarios de programación de
microcontroladores y nos ha permitido adquirir mas
conocimientos y habilidades para el manejo del
PIC16F877A.
5
ETD-1022, E5C, MICROCONTROLADORES, REPORTE DE LABORATORIO 03, NOVIEMBRE 2023
Profesor: Dr. Aldo Eleazar Pérez Ramos Instituto Tecnológico de Oaxaca
Departamento de Ingeniería Electrónica

VI. REFERENCIAS
• PIC16F877A-I/P Microcontrolador. (n.d.). UNIT

Electronics. Retrieved November 4, 2023, from

[Link]

microcontrolador/

• PIC16F877A Microcontrolador PIC 8 bits Microchip.

(2021, October 1). Geek Factory.

[Link]

ic16f877a-microcontrolador-pic-8-bits-microchip/

• Práctica 4 Secuenciador de LEDs utilizando el PIC

16F877A. (n.d.). Studocu. Retrieved November 4,

2023, from [Link]

mx/document/instituto-tecnologico-de-

tijuana/microcontroladores/practica-4-secuenciador-

de-leds-utilizando-el-pic-16f877a/39338043

También podría gustarte