Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


laboratorio de interrupciones, Apuntes de Sistemas Multiagentes

es un laboratorio de interrupciones y de diley

Tipo: Apuntes

2022/2023

Subido el 23/10/2023

yeriser-cruz-aguilar
yeriser-cruz-aguilar 🇵🇪

2 documentos

1 / 19

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE INGENIERÍA MECÁNICA
SISTEMAS EMBEBIDOS
INFORME DE LABORATORIO 2
DOCENTE:
BECERRA FELIPE JOSE LUIS
ESTUDIANTES: CODIGO: SECCION:
-OLANO DEJGADO ANGEL JOAS 20181012K A
-CRUZ AGUILAR YERISER 2090138C B  
                                       
2023- II
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13

Vista previa parcial del texto

¡Descarga laboratorio de interrupciones y más Apuntes en PDF de Sistemas Multiagentes solo en Docsity!

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

SISTEMAS EMBEBIDOS

INFORME DE LABORATORIO 2

DOCENTE:

BECERRA FELIPE JOSE LUIS

ESTUDIANTES: CODIGO: SECCION:

  • OLANO DEJGADO ANGEL JOAS 20181012K A -CRUZ AGUILAR YERISER 2090138C B

2023- II

INDICE

1. FUNDAMENTO TEORICO:

 EXPLICACION DE LOS COMPONENTES USADOS EN LA

EXPERIENCIA

 EXPLICACION DE LAS FUNCIONES UTILIZADAS POR EL

MICROCONTROLADOR

2. OBJETIVOS DEL LABORATORIO

 DESCRIPCION Y EXPLICACION DE LOS RESULTADOS

 ECUACIONE EN TIMER

 DIAGRAMA DE FLUJO DEL PROGRAMA

 CODIGO DEL PROGRAMA COMENTADO

3. IMÁGENES DE PROTEUS CON OSCILOSCOPIO

4. APLICACIONES REALES DE LA EXPERIENCIA DEL LABORATORIO

5. CONCLUSIONES Y RECOMENDACIONES

6. BIBLIOGRAFIA

  1. Protoboard: También conocido como placa de pruebas o breadboard, es una placa con orificios y conexiones eléctricas que permite construir prototipos de circuitos electrónicos sin necesidad de soldadura.
  2. Cristal (20 MHz): Es un componente oscilador que proporciona una señal de reloj precisa para el microcontrolador. El valor (20 MHz) indica la frecuencia de oscilación en hertzios.
  3. Cables Dupont (macho-macho, macho-hembra): Son cables con conectores en los extremos utilizados para realizar conexiones entre componentes en un protoboard o circuito. 13.Display de 7 segmentos cátodo común: Los displays de 7 segmentos pueden mostrar números y algunas letras alfanuméricas.

 EXPLICACION DE LAS FUNCIONES UTILIZADAS POR EL

MICROCONTROLADOR:

-Estas son las funciones más usadas en nuestro microcontrolador I. XORWF: realiza la operación XOR entre el valor almacenado en un registro en el microcontrolador y el valor que se encuentra en el registro de trabajo (WREG o FSR, dependiendo del microcontrolador y la arquitectura). El resultado de esta operación XOR se almacena nuevamente en el mismo registro de destino II. ANDWF: realiza la operación lógica AND bit a bit entre el valor almacenado en un registro en el microcontrolador y el valor que se encuentra en el registro de trabajo (WREG o FSR). El resultado de esta operación se almacena nuevamente en el mismo registro de destino. III. RETLW: La instrucción "RETLW" ( Return Literal to W) es una operación utilizada en lenguaje ensamblador para microcontroladores, y se usa principalmente en arquitecturas específicas de microcontroladores PIC (Programmable Integrated Circuit) de la marca Microchip. La función principal de "RETLW" es cargar un valor literal en el registro de trabajo (WREG). IV. DECFSZ: La instrucción "DECFSZ" es una operación utilizada en lenguaje ensamblador para microcontroladores, y su función principal es restar 1 de un registro y saltar a una dirección de memoria específica si el resultado de la resta es igual a cero (es decir, si el registro se vuelve cero después de la resta).

 ECUACION EN TIMER0:

ECUACIÓN DEL BUCLE DE DELAY:

bucle2 = bucle 1 x CONTA1 = 4 x 0.05x10-6 x 250 x 3 x 67 = 10.05mS Tiempo = 4 x Tosc x (255-TMR0) x PS (PreScaler) 10x10-3=40.0510-6(255-TMR0)x TMR0=59.6875=> TMR0= TMR0=

 DIAGRAMA DE FLUJO DEL PROGRAMA

 CODIGO DEL PROGRAMA

COMENTADO:

; PIC16F877A Configuration Bit Settings ; Assembly source line config statements ; CONFIG CONFIG FOSC = HS ; Oscillator Selection bits (HS oscillator) CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled) CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT enabled) CONFIG BOREN = OFF ; Brown-out Reset Enable bit (BOR disabled) CONFIG LVP = OFF ; Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) CONFIG CPD = OFF ; Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) CONFIG WRT = OFF ; Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off) // config statements should precede project file includes. #include <xc.inc> CONTA1 EQU 0X20 ; Registro para delay CONTA2 EQU 0X21 ; Registro para delay CONTADOR EQU 0X22 ; Registro para el contador de 7 segmentos w_temp EQU 0X23 ; Registro temporal para w pclath_temp EQU 0x24 ; Registro temporal de pclath status_temp EQU 0x25 ; Registro temporal de status B_temp EQU 0X26 ; Registro temporal del puerto B PSECT CODE, DELTA=2, ABS GOTO CONFIGURACION ; Configuracion de guardado de valores temporales antes de realizar la rutina de interrupcion ORG 0X MOVWF w_temp MOVF STATUS,w MOVWF status_temp MOVF PCLATH,w MOVWF pclath_temp GOTO RUTINA_INT ; Rutina de salir de la interrupcion regresando los valores temporales SALIR_INT: MOVF pclath_temp,w MOVWF PCLATH

MOVF status_temp,w MOVWF STATUS SWAPF w_temp,f SWAPF w_temp,w RETFIE CONFIGURACION: BCF RP1 ; Limpiar el valor de RP BSF RP0 ; Ir al banco 01 MOVLW 0XFF ; Configurar al puerto B como entrada MOVWF TRISB MOVLW 0X00 ; Configurar el puerto D como salida MOVWF TRISD MOVLW 0X00 ; Configurar el puerto D como salida MOVWF TRISC MOVLW 00000111B ; Configurar el preescalador a 1: MOVWF OPTION_REG MOVLW 10111000B ; Activar interrupciones del Timer0,RB0 y de RB4 al RB MOVWF INTCON BCF RP0 ; Regresar al banco 00 CLRF CONTADOR ; Inicializar el contador en 0 MOVLW 60 ; Inicializar el valor del Timer MOVWF TMR CLRF PORTB ; Limpiar la salida del puerto B CLRF PORTC ; Limpiar la salida del puerto C CLRF PORTD ; Limpiar la salida del puerto D MOVF PORTB,W MOVWF B_temp INICIO: BTFSC PORTB,0 ; Verificar el valor del pin RB GOTO DESCENDENTE GOTO ASCENDENTE RUTINA_INT: BTFSC INTCON,2 ; Verificar la interrupcion del TMR GOTO TMR0_INT BTFSC INTCON,1 ; Verificar la interrupcion del RB GOTO RB0_INT BTFSC INTCON,0 ; Verificar la interrupcion de los puertos RB4 al RB GOTO RB_INT GOTO SALIR_INT TMR0_INT: MOVLW 60 ; Cargar nuevamente el valor del TMR MOVWF TMR BTFSC PORTD,1 ; Verificar el valor de D GOTO D1_

GOTO SALIR_INT

D4_0:

BSF PORTD,4 ; Si D4 es 0 cambiar a 1 BCF B_temp,4 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT B5_0: BTFSS PORTB,5 ; Verificar el valor actual de RB RETURN ; Si es 0 entonces compara el siguiente RB BTFSC PORTD,5 ; Verificar el valor de D GOTO D5_ GOTO D5_ D5_1: BCF PORTD,5 ; Si D5 es 1 cambiar a 0 BSF B_temp,5 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT D5_0: BSF PORTD,5 ; Si D5 es 0 cambiar a 1 BSF B_temp,5 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT B6_1: BTFSC PORTB,6 ; Verificar el valor actual de RB RETURN ; Si es 1 entonces compara el siguiente RB BTFSC PORTD,6 ; Verificar el valor de D GOTO D6_ GOTO D6_ D6_1: BCF PORTD,6 ; Si D6 es 1 cambiar a 0 BCF B_temp,6 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT D6_0: BSF PORTD,6 ; Si D6 es 0 cambiar a 1 BCF B_temp,6 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT B7_0: BTFSS PORTB,7 ; Verificar el valor actual de RB RETURN ; Si es 0 entonces regresa a cargar el valor temporal de RB BTFSC PORTD,7 ; Verificar el valor de D GOTO D7_ GOTO D7_ D7_1: BCF PORTD,7 ; Si D7 es 1 cambiar a 0

BSF B_temp,7 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT D7_0: BSF PORTD,7 ; Si D7 es 0 cambiar a 1 BSF B_temp,7 ; Actualizar el valor temporal de RB BCF INTCON,0 ; Apagar la interrupcion de RB GOTO SALIR_INT ASCENDENTE: MOVF CONTADOR,W ; Carga el valor del contador a W CALL Tabla ; Busca el valor en 7 segmentos en la tabla MOVWF PORTC ; Muestra el valor de 7 segmentos en el puerto C por 1 segundo CALL DELAY500ms CALL DELAY500ms INCF CONTADOR,F ; Incrementa el valor del contador MOVF CONTADOR,W ; Compara el valor del contador con 10 XORLW 0X0A BTFSS STATUS,2 ; Si el siguiente valor del contador es menor que 10 entonces vuelve a comparar RB GOTO INICIO MOVLW 0 ; En caso contrario se carga el valor de 0 al contador y regresa a comparar RB MOVWF CONTADOR GOTO INICIO DESCENDENTE: MOVF CONTADOR,W ; Carga el valor del contador a W CALL Tabla ; Busca el valor en 7 segmentos en la tabla MOVWF PORTC ; Muestra el valor de 7 segmentos en el puerto C por 1 segundo CALL DELAY500ms CALL DELAY500ms MOVF CONTADOR,W ; Compara el valor del contador con 0 XORLW 0X BTFSS STATUS,2 ; Si el valor actual del contador es 0 entonces reinicia el contador GOTO SIGUIENTE GOTO REINICIO SIGUIENTE: DECF CONTADOR,F ; Decrementa el valor del contador y regresa a inicio a comparar RB GOTO INICIO REINICIO: MOVLW 9 ; Carga el valor de 9 al contador y regresa a comparar RB

END

4. APLICACIONES REALES DE LA EXPERIENCIA DEL LABORATORIO:

 AUTOMATIZACIÓN RESIDENCIAL:

  • El contador de 0 a 9 podría utilizarse para configurar una alarma de seguridad o temporizar la iluminación de una habitación.
  • El LED oscilante (D0) podría usarse para indicar el estado de un sistema de alarma o para señalizar el funcionamiento de un dispositivo de seguridad.
  • La señal generada por Timer0 (D1) podría controlar la apertura y cierre de persianas motorizadas o el funcionamiento de sistemas de riego automático.
  • La salida oscilatoria en D2 podría utilizarse para generar una señal de emergencia en caso de detectar una condición anormal en el hogar.  SISTEMAS DE CONTROL INDUSTRIAL:
  • El contador de 0 a 9 podría emplearse para supervisar la producción en una línea de ensamblaje o para indicar la posición de un mecanismo.
  • El LED oscilante (D0) podría señalizar la operación de una máquina o el estado de un proceso industrial.
  • La señal generada por Timer0 (D1) podría utilizarse para sincronizar eventos en una cadena de producción.
  • La salida oscilatoria en D2 podría activarse como una señal de emergencia en caso de un problema en el proceso.  SISTEMAS MÉDICOS:
  • El contador de 0 a 9 podría mostrar la frecuencia cardíaca en un monitor de pacientes.
  • El LED oscilante (D0) podría señalizar el estado de un dispositivo médico, como un desfibrilador.
  • La señal generada por Timer0 (D1) podría utilizarse para temporizar la administración de medicamentos.
  • La salida oscilatoria en D2 podría usarse para activar una alarma en caso de una condición crítica en un paciente.  SISTEMAS DE TRANSPORTE:
  • El contador de 0 a 9 podría mostrar el número de paradas en un sistema de transporte público.
  • El LED oscilante (D0) podría indicar si un vehículo está en movimiento o detenido.
  • La señal generada por Timer0 (D1) podría controlar el tiempo de apertura de las puertas en un tren o autobús.
  • La salida oscilatoria en D2 podría utilizarse para señalizar una emergencia o una parada no programada.

Estos son solo algunos ejemplos de aplicaciones reales en las que las habilidades adquiridas a través de este ejercicio podrían ser útiles. En esencia, el control, la temporización y la capacidad de respuesta a eventos son fundamentales en una amplia gama de aplicaciones electrónicas y sistemas controlados por microcontroladores.

- PAPER CERCANOS AL TEMA SOBRE LA APLICACIÓN DEL LABORATORIO:  file:///C:/Users/yeris/Downloads/Simulaci %C3%B3n+del+control+de+temperatura+de+un+reactor+de+tanque+agi tado+de+Van+De+Vusse.pdf  https://repositorio.unitec.edu.co/bitstream/handle/20.500.12962/1276/ Entrega_Final_PY_Estudio%20de%20soluciones%20de %20automatizaci%C3%B3n%20residencial%20o%20dom%C3%B3tica %20para%20aplicaci%C3%B3n%20en%20Colombia%20%281%29.pdf? sequence=1&isAllowed=y  https://repositoriounicaes.catolica.edu.sv/jspui/bitstream/ 123456789/53/1/Trabajo%20de%20Graduaci%C3%B3n%20Sistemas %20Dom%C3%B3ticos.pdf

6. BIBLIOGRAFIA:

 https://www.findchips.com/search/PIC16F877A-E? gclid=CjwKCAjwysipBhBXEiwApJOcu9- htwFfosZYFgm9UE8CVnLbaoyIne1KpO6w_wW4riuZ7ii47IMJZBoC ss8QAvD_BwE  https://static.upao.info/descargas/ 78a608f43f7702198f00faee981db7a3a84c4f8c76d77c8de61bf 8dbab5b581514ea884149f697630e093afcdca9237549aca26fad d34bdd95cac8ead2db981/sistemas-embebidos--guIa- metodolOgica-para-su-desarrollo.pdf  SISTEMAS EMBEBIDOS (RICARDO CAYSSIALS)  MICROCONTROLADORES PIC16F877X Y PIC16F88X (DANIEL SALVATIERRA)  CURSO BASICO DE PIC16F877 (RAUL PERALTA MEZA)