Sei sulla pagina 1di 6

FORMATO DE INFORME DE PRÁCTICA DE LABORATORIO /

TALLERES / CENTROS DE SIMULACIÓN – PARA


ESTUDIANTES

CARRERA: Ingeniería Electrónica ASIGNATURA: Sistemas Microprocesados I


ESTUDIANTES: Diego Cuzco , Danny Salto
NRO. PRÁCTICA: 3 TÍTULO PRÁCTICA: Verificación e implementación practica de los retardos en
el microcontrolador PIC16F877A.
OBJETIVO ALCANZADO: Obtener conocimientos en la programación y el funcionamiento de retardos y
habilitación de los puertos en el microcontrolador y su correcta implementación práctica.

ACTIVIDADES DESARROLLADAS
1. Desarrollar la programación en MPLAB (Lenguaje ensamblador) y los cálculos de los tiempos que se va a
utilizar en la práctica, en nuestro caso para 1500 milisegundos y para la demostración vamos a realizar con
un tiempo de 3 segundos.
2. Calculamos los tiempos que se necesitan:
Para un retardo de 1500 ms tenemos:
𝑅𝑒𝑡𝑎𝑟𝑑𝑜 = 𝑛 ∗ 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒 𝑚𝑎𝑞𝑢𝑖𝑛𝑎
El ciclo de maquina es 3 us.
1500𝑚𝑠 = (𝑚 ∗ 𝑛 ∗ 𝑝) ∗ (3𝑢𝑠)
1500𝑚𝑠
= (𝑚 ∗ 𝑛 ∗ 𝑝)
3𝑢𝑠
Si n = 100
Si m = 100
Calculamos el valor de p
500𝑘 = 1000 ∗ (𝑝)
𝑝 = 50
Para la demostración debemos realizarlo para un retardo de 3s tenemos:
𝑅𝑒𝑡𝑎𝑟𝑑𝑜 = 𝑛 ∗ 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒 𝑚𝑎𝑞𝑢𝑖𝑛𝑎
El ciclo de maquina es 3 us.
3000𝑚𝑠 = (𝑚 ∗ 𝑛 ∗ 𝑝) ∗ (3𝑢𝑠)
3000𝑚𝑠
= (𝑚 ∗ 𝑛 ∗ 𝑝)
3𝑢𝑠
Si n = 255
Si m = 255
Calculamos el valor de p
1000000 = 1000 ∗ (𝑝)
𝑝 = 15.3787 ≈ 15
3. Implementar el código de programación en MPLAB con los retardos que se calcularon y los puertos que se
van a utilizar.

4. Diseñar el circuito en Proteus y realizar la respectiva simulación con el osciloscopio del software para
comprobar que este correcto el tiempo requerido.

5. Implementar el circuito en el Protoboard y mediante el programa PIC KIT 2 cargar el archivo .hex en el
microcontrolador.

6. Verificar y observar su correcto funcionamiento.

7. Conectar a un osciloscopio físico a la entrada del led, observar y verificar mediante los cursores que el tiempo
calculado este correcto.
RESULTADO(S) OBTENIDO(S):
Al final de la práctica los resultados obtenidos son los siguientes:
 Se adquirió conocimiento en la programación de retardo en MPLAB, para los cuales debemos calcular
correctamente los tiempos y de esta manera se obtendrá buenos resultados.
 Se obtuvo conocimiento en la habilitación de los puertos en un microcontrolador.
 En la simulación en Proteus se verifico que el tiempo calculado fue correcto ya que nos podemos dar en cuenta
analizando la forma de onda que se obtuvo mediante la simulación.
 Al momento de comprobar mediante el osciloscopio, la forma de una que se obtuvo fue una forma de onda
cuadrada a la cual se limitó un periodo con los cursores y se observó que efectivamente cumple con el tiempo
preestablecido.

CONCLUSIONES:
Al realizar nuestra primera práctica se logró comprender mucho más acerca del funcionamiento del microcontrolador.
Para poder realizar esta práctica primero tenemos que entender los conceptos de ciclo de máquina y ciclo de reloj, esto
es necesario porque para poder hacer los retardos, se debe conocer estos datos para poder realizar el cálculo del retardo.
Sabiendo esto se puede realizar el retardo que quisiéramos. En nuestra practica realizamos para la demostración al
docente un retardo de 3s para esto utilizamos el puerto A del PIC, antes de ello se deben configurar el puerto A como
salidas digitales.
RECOMENDACIONES:
Siempre tener listo el datasheet del microcontrolador para poder consultar los bancos de registros. Saber usar los
registros para poder programar de manera óptima. Primero realizar la respectiva simulación para después implementar.

ANEXO1

FLUJOGRAMA

Ilustracion1. Flujograma para la practica 3.


FOTOS DE LA PRACTICA

Ilustracion2. Implementacion practica. Ilustracion3. Implementación Ilustracion4. Implementación practica en


practica en funcionamiento. funcionamiento y simulación en Proteus.

ESQUEMA ELÉCTRICO

Ilustracion5. Diagrama del circuito.

Codigo de Programacion:
;PRACTICA3
; PIC16F877A Configuration Bit Settings

; Assembly source line config statements

#include "p16f877a.inc"

; CONFIG
; __config 0xFF3A
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF

TIEMPO EQU 0x20 ;declaro mi variable que va almacenar mis datos


TIEMPO1 EQU 0x21
TIEMPO2 EQU 0x22

ORG 0 ; iniciamos en 0000h

;accedemos al Bank0
BCF STATUS, RP0 ; Bit Clear File coloca un 0
BCF STATUS, RP1 ; Bit Clear File coloca un 0

;clear file ponemos en 0 todo al momento que el micro recién empieza a funcionar
CLRF PORTA ; Initialize PORTA by
; clearing output
; data latches

BSF STATUS, RP0 ; Select Bank 1


MOVLW 0x06 ;mover mi variable L a W
;Configure all pins
MOVWF ADCON1 ;mover W a F (funcion)
; as digital inputs >> que trabaje como entradas digitales
MOVLW 0x00000000 ;mover L a mi acumulador W
; Value used to
; initialize data
; direction
MOVWF TRISA ;muevo W a F
; Set RA<3:0> as inputs
; RA<5:4> as outputs
; TRISA<7:6>are always
; read as '0'.
BCF STATUS, RP0 ;me cambio de banco
BSF PORTA, 4
BSF PORTA, 5

INICIO
BCF PORTA, 0 ;colocamos un 0 en el puertoA0
CALL DELAY ;llama a la funcion delay
BSF PORTA, 0 ; colocamos 1 en el puertoA1
CALL DELAY ;llama la funcion delay
GOTO INICIO ; regresa a inicio

DELAY
MOVLW D'50' ; movemos 50 a W
MOVWF TIEMPO ; movemos 50 a mi variable tiempo

RETARDO
MOVLW D'100' ; movemos 100 a W
MOVWF TIEMPO1 ; movemos 100 a TIEMPO1

RETARDO1
MOVLW D'100' ; movemos 100 a W
MOVWF TIEMPO2 ; movemos 100 a TIEMPO2

RETARDO2

DECFSZ TIEMPO2 ; decrementa si no es 0, salta una linea cuando sea 0


GOTO RETARDO2 ; regresa a RETARDO2

DECFSZ TIEMPO1
GOTO RETARDO1

DECFSZ TIEMPO
GOTO RETARDO

RETURN

END

Simulaciones:

Ilustracion6. Circuito en el modo de encendido.


Ilustracion7. Circuito en el modo de apagado.

Ahora conectamos el osciloscopio para visualizar la forma de onda y también para confirmar que el retardo está
correcto.

Ilustracion8. Circuito en el modo de encendido y conectado el osciloscopio.

Ilustracion9. Forma de onda de salida para 1500 ms.


Descripción.
Podemos comprobar en la simulación que si se cumple para un tiempo de 1500 ms, ya que la escala del tiempo del
osciloscopio está configurado para 500ms y si tomamos un periodo de la onda podemos observar tres recuadros en
cada periodo y cada recuadro vale 500 ms, por la tanto 500ms * 3 recuadros nos da igual al tiempo de 1500ms.

Ilustracion10. Forma de onda de salida para 3 s.


Descripción:
Para la demostración, se comprueba en la simulación que si se cumple para un tiempo de 3s, ya que la escala del tiempo
del osciloscopio está configurado para 500ms y si tomamos un periodo de la onda podemos observar seis recuadros en
cada periodo y cada recuadro vale 500 ms, por la tanto 500ms * 6 recuadros nos da igual al tiempo de 3000ms que es
lo mismo que 3s.

Potrebbero piacerti anche