SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
1
INTERRUPCIONES Y TIMERS
OBJETIVOS
 Configurar el Timer del Pic para diferentes maneras.
 Configurar lo puertos de I/O del microcontrolador.
 Realizar programas, esquemas de simulación e implementar el hardware necesario
que implique el uso del Timer del PIC en la solución de problematicas planteadas.
ESQUEMA A IMPLEMENTAR
ESPECIFICACIONES
 Implementar un sistema, según la figura anterior. El sistema según la selección del
MODO será un contador ascendente (de 0 a 99 y se repite) o será un temporizador
regresivo (99 a 0 en intervalos de 1 segundo o 0.5 segundos según una selección
de intervalo) una vez terminada la cuenta regresiva se enciende un led que indica
que la cuenta a terminado.
 Elaborar el algoritmo y el diagrama de flujo del programa que soluciona el
problema planteado. Presentar una tabla donde se especifique los recursos
empleados así como las variables, etiquetas, etc. Utilizadas en el programa. El
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
2
conteo y la temporización se hará empleando el Timer del PIC. Realizar y presentar
los cálculos necesarios para conseguir los tiempos requeridos por el problema.
 Codificar el programa que soluciona y comentar todas las líneas (obligatorio).
Separar las partes del programa con comentarios pertinentes (obligatorio).
 Simular el programa en MPLAB. Agregue las variables necesarias para poder
observar los cambios de valor de las variables y verificar los resultados.
 Implementar el circuito solución en proteus y quemar el programa desarrollado en
el microcontrolador luego simular y verificar los resultados.
INDICACIONES
 Elaborar un informe del trabajo desarrollado, la carpeta con el proyecto MPLAB,
los archivos de simulación proteus y las conclusiones obtenidas. Presentar según la
hora y fecha indicadas en formato digital ( un solo archivo comprimido formato zip
o rar) TRAVE DEL AULA VIRTUAL (NO SE ACEPTARAN TRABAJOS ENVIADOS POR
CORREO ELECTRONICO). Colocar este formato como caratula del informe
consignando el número de grupo y los integrantes del mismo.
 Fecha de presentación
DESARROLLO
ESPECIFICACIONES
Implementar un sistema.el sistema según la selección de modo será un contador
ascendente o descendente o será un temporizador regresivo del 99 al 0 en intervalos de
1seg y 0.5 seg según se seleccione una vez terminada la cuenta regresiva se encienda un
led
Para poder tener los retardos de 0.5 segundos usaremos retardos
RETARDO_0_5S
MOVLW D'8'
MOVWF CONTADOR
BUCLE_EXTERNO
MOVLW D'12' ; cargamos 12 am TMR0
MOVWF TMR0
BCF INTCON,T0IF ;limpiamos la banderita del TMR0
BUCLE_INTERNO
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
3
BTFSS INTCON,T0IF;testeamos si se a desbordado el TMR0
GOTO BUCLE_INTERNO
DECFSZ CONTADOR,1 ;decrementamos hasta q acabe de decrementar luego
salta
GOTO BUCLE_EXTERNO
Retardo de un segundo
RETARDO_1S
MOVLW D'16'
MOVWF CONTADOR
BUCLE_EXTERNO1
MOVLW D'12'
MOVWF TMR0
BCF INTCON,T0IF
BUCLE_INTERNO1
BTFSS INTCON,T0IF
GOTO BUCLE_INTERNO1
DECFSZ CONTADOR,1
GOTO BUCLE_EXTERNO1
GOTO REGRESION
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
4
DIAGRAMA DE FLUJO:
CBLOCK 0X20
UNIDADES DECENAS
TEMPORIZADOR CONTADOR
CONTADOR1 CIFRA
ENDC
INICIO
BTFSS MODO
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
5
REGRESION MOVLW D'1'
SUBWF TEMPORIZADOR,1
RETARDO_0_
5S
GOTO RETARDO_1S
MOVLW D'99'
MOVWF TEMPORIZADOR ;cargamos 99 en decimal al temporizador
BTFSS INTERVALO
CONTEO_DESC
CONTEO_ASC
MOVF TMR0,0
CALL VISUALIZACION
BTFSS TIPO_CONT
MOVLW 0X02
SUBWF TMR0,1
MOVLW D'99'
MOVWF TMR0
MOVF TMR0,0
CALL VISUALIZACION
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
6
VISUALIZACION
MOSTRAR
MOVF TMR0,0
CALL VISUALIZACION
GOTO TEST_SWITCH
CALL
RETARDO_20
MS
BTFSC SWITCH
MOVLW D'10'
SUBWF UNIDADES,0
DECIMAL_FINBTFSS STATUS,C
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
7
IMPRIMIR
MOVF UNIDADES,0
MOVWF PORTC
MOVF DECENAS,0
MOVWF PORTD
RETURN
DECIMAL_RESTA10
MOVF UNIDADES,0
CALL COD_7SEG
MOVWF UNIDADES
MOVF DECENAS,0
CALL COD_7SEG
MOVWF DECENAS
BTFSS STATUS,C
MOVWF UNIDADES
INCF DECENAS,1
END
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
8
RECURSOS DEL PIC
Para elaborar el programa utilizamos varios registros del PIC para la configuración del
puerto A para que funcione acorde a nuestras necesidades
REGISTRO USO
STATUS Para direccionar los bancos
ADCON1 Para usar los pines del puerto A como digitales
PORTA Para configurar las entradas y salidas
TMR0 PARA USARLO COMO TEMPORIZADOR Y CONTADOR
Para poder hacer más entendible el programa también usamos etiquetas, es listado de
etiquetas usadas en el programa se muestra en la tabla
INSTRUCCIÓN USO
Btfsc f,b Si el numero b del registro f es “0” la instrucción que sigue a esta
se ignora
Btfss f,b Si el numero b del registro f es “1” la instrucción que sigue a esta
se ignora
Goto k Salto incondicional a la dirección k
Bcf f,b Pone a 1 el bit b
Bsf f,b Pone a 0 el bit b
Call k Salvaguarda la dirección de vuelta en la pila y después llama a la
subrutina situada en la dirección cargada el la PC
Movlw l Mueve el contenido de l en el registro de trabajo w
Movwf f Mueve el contenido del registro w al registro f
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
9
VARIABLES USO
UNIDADES
REGISTRO PARA GURADAR EL VALOR DE LAS UNIDADES DEL
DISLPAY
DECENAS
REGISTRO PARA GURADAR EL VALOR DE LAS DECENAS DEL
DISLPAY
TEMPORIZADOR
REGITRO PAR HACER LAS TEMPORIACIONES
CONTADOR
Para el bucle : BUCLE_INTERNO
CONTADOR1
Para el bucle : BUCLE_EXTERNO1
CIFRA
REGISTRO PARA GUARDAR UNA VARIABLE
 Codificar el programa que soluciona el problema y comentar todas las líneas (obligatorias).
Separar las partes del programa con comentarios pertinentes (obligatorio).
LIST P=16F877A
RADIX HEX
__CONFIG 3F31H
#INCLUDE P16F877A.INC
#DEFINE MODO PORTB,5
#DEFINE INTERVALO PORTA,1
#DEFINE TIPO_CONT PORTB,4
#DEFINE SWITCH PORTA,4
#DEFINE LED PORTA,0
CBLOCK 0X20
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
10
UNIDADES ; registro para las unidades
DECENAS ; registro para las decenas
TEMPORIZADOR ; registro para el temporizador
CONTADOR ;
CONTADOR1 ;
CIFRA ;
ENDC
ORG 0 ; vector de inicio
GOTO INICIO ;
ORG 4 ; dirección de interrupción
GOTO INTERRUPCION ;
ORG 5 ;
INICIO
BCF STATUS,RP0 ;seleccionamos el banco 0
BCF STATUS,RP1 ;
CLRF PORTA ; ponemos el PORTA a nivel bajo
BSF STATUS,RP0 ;accedemos al banco1
MOVLW 0X06 ; configuramos las entradas salidas como digitales
MOVWF ADCON1
MOVLW B'00010010' ; los bits 1 y 4 como entradas los demás como salidas
; para él puerto A
MOVWF TRISA
CLRF TRISC ; configuramos el portC y portD como salidas
CLRF TRISD
MOVLW B'11111111'
BCF STATUS,RP0
CLRF TMR0 ; limpiamos el timer 0
MOVLW B'10001000' ; configuramos los bits del registro INTCON GIE y RBIE
MOVWF INTCON
CLRF PORTB
BUCLE
GOTO BUCLE ; cargamos un bucle infinito
; configuramos la interrupción apagar LED testeamos modo si es cero saltamos a
; TMR0_CONT si es uno a TMRO_TEMP
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
11
INTERRUPCION
BCF LED ; LED APAGADO
BTFSS MODO ; testeamos MODO
GOTO TMR0_CONT ; si es 0 saltamos a TMR0_CONT
TMR0_TEM ; si es 1 ejecutamos
BSF STATUS,RP0 ;
MOVLW B'11010111' ; configuramos el registro option_reg
MOVWF OPTION_REG ; pull ap desabilitadas trabajamos con flanco
; Ascendente
; Divisor asignado al TMRO con presacalador de 256
BCF STATUS,RP0 ;
MOVLW D'99' ; cargamos el acumulador con 99
MOVWF TEMPORIZADOR ; cargamos 99 en decimal al temporizador
MOVLW B'10001000' ; configuramos el registro INTCON para las
; Interrupciones
MOVWF INTCON
CUENTA_REGRE
MOVF TEMPORIZADOR,0 ;
CALL VISUALIZACION
BTFSS INTERVALO ; testea a que intervalo debe de estar a un segundo o
; medio segundo
GOTO RETARDO_1S
; retardo de medio segundo donde se carga 8 en decimal al contador
RETARDO_0_5S
MOVLW D'8'
MOVWF CONTADOR
BUCLE_EXTERNO
MOVLW D'12' ; cargamos 12 am TMR0
MOVWF TMR0
BCF INTCON,T0IF ; limpiamos la banderita del TMR0
BUCLE_INTERNO
BTFSS INTCON,T0IF ; testeamos si se ha desbordado el TMR0
GOTO BUCLE_INTERNO
DECFSZ CONTADOR,1 ;decrementos hasta q acabe de decrementos luego
GOTO BUCLE_EXTERNO
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
12
; cuando termine de hacer la cuenta regresiva lo que debe hacer el microcontrolador es
;encender un LED
; así en bucle infinito a menos que salga con una interrupción
REGRESION
MOVLW D'1'
SUBWF TEMPORIZADOR,1
BTFSC STATUS,C
GOTO CUENTA_REGRE
BSF LED
PRENDE_LED
GOTO PRENDE_LED
; Retardo de un segundo que se obtiene cargando 16 en decimal al contador
; Luego 12 al TMR0 y esperar que desborde el TMR0
RETARDO_1S
MOVLW D'16'
MOVWF CONTADOR
BUCLE_EXTERNO1
MOVLW D'12'
MOVWF TMR0
BCF INTCON,T0IF
BUCLE_INTERNO1
BTFSS INTCON,T0IF
GOTO BUCLE_INTERNO1
DECFSZ CONTADOR,1
GOTO BUCLE_EXTERNO1
GOTO REGRESION
; En esta parte del programa se configura el microcontrolador para que funcione como
; Contador ascendente o descendente
; GIE y RBIE que será mediante el cual se haga la interrupción que es el bit 4 del PORTA
TMR0_CONT
BSF STATUS,RP0
MOVLW B'11111000'
MOVWF OPTION_REG
BCF STATUS,RP0
CLRF TMR0
BTFSS TIPO_CONT
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
13
GOTO CONTEO_DESC
; Mediante interruptor se observa que en el conteo ascendente primero se configura la
; Interrupción por
CONTEO_ASC
MOVF TMR0,0
CALL VISUALIZACION
MOVLW B'10001000'
MOVWF INTCON
TEST_SWITCH
BTFSC SWITCH
GOTO TEST_SWITCH
CALL RETARDO_20MS
BCF INTCON,T0IF
BTFSS INTCON,T0IF
GOTO MOSTRAR
MOVLW D'55'
MOVWF TMR0
GOTO TEST_SWITCH
MOSTRAR
MOVF TMR0,0
CALL VISUALIZACION
GOTO TEST_SWITCH
; el conteo descendente también se hace con el TMR0 y el bit 4 del portA
CONTEO_DESC
MOVLW D'99'
MOVWF TMR0
MOVF TMR0,0
CALL VISUALIZACION
MOVLW B'10001000'
MOVWF INTCON
TEST_SWITCH1
BTFSC SWITCH
GOTO TEST_SWITCH1
CALL RETARDO_20MS
BTFSC SWITCH
GOTO TEST_SWITCH1
SUELTA
BTFSS SWITCH ;testea porta,4
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
14
GOTO SUELTA ;testea si se suelta
MOVLW 0X02 ;carga el valor de 2 en W
SUBWF TMR0,1
MOVF TMR0,0
CALL VISUALIZACION
BTFSS STATUS,Z ;testea el bt Z
GOTO TEST_SWITCH1
MOVLW D'100'
MOVWF TMR0
GOTO TEST_SWITCH1
; Limpia todos los registro de unidades y decenas
VISUALIZACION
CLRF DECENAS ; limpiamos decenas y cargamos el contenido W en
; de unidades
MOVWF UNIDADES ;
DECIMAL_RESTA10
MOVLW D'10' ; restamos a unidades el valor de 10 en decimal
SUBWF UNIDADES,0
BTFSS STATUS,C ;testeamos el carry para saber si ya llego al 9
GOTO DECIMAL_FIN
; Si es así entonces incrementamos decenas
; lo mismo hacemos con las decenas
DECIMAL_INCREMENTADECENAS
MOVWF UNIDADES
INCF DECENAS,1
MOVLW D'10'
SUBWF DECENAS,0
BTFSS STATUS,C
GOTO DECIMAL_RESTA10
; carga el contenido de unidades en W
; llama la tabla de 7 segmentos lo mismo hace con las decenas
DECIMAL_FIN
MOVF UNIDADES,0
CALL COD_7SEG
MOVWF UNIDADES
MOVF DECENAS,0
CALL COD_7SEG
MOVWF DECENAS
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
15
; El contenido de unidades lo pasa al portC y el contenido de las decenas lo pasa a copiar a
; portD
IMPRIMIR
MOVF UNIDADES,0
MOVWF PORTC
MOVF DECENAS,0
MOVWF PORTD
RETURN
;la tabla del codigo de 7 segmentos
COD_7SEG
MOVWF CIFRA
MOVF CIFRA,0
ADDWF PCL,1
RETLW B'00111111'
RETLW B'00000110'
RETLW B'01011011'
RETLW B'01001111'
RETLW B'01100110'
RETLW B'01101101'
RETLW B'01111101'
RETLW B'00000111'
RETLW B'01111111'
RETLW B'01101111'
;un retardo de 20 ms
RETARDO_20MS
MOVLW D'20'
MOVWF CONTADOR1
BUCLE1
MOVLW D'249'
MOVWF CONTADOR
BUCLE2
NOP
DECFSZ CONTADOR,1
GOTO BUCLE2
DECFSZ CONTADOR1,1
GOTO BUCLE1
RETURN
END
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
16
SIMULACION
Para poder obtener la simulación usamos la herramienta ISIS del software Proteus.
INGENIERIA ELECTRONICA
LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN
17
CONCLUCIONES
 Para producir los retardos en este laboratorio aprendimos a utilizar el TMR0 en
este ejemplo fue para crear retardos de medio y un segundo
 la interrupción por cambio de estado de los bits RB4:RB7 son muy útiles en el
momento de utilizar varios interruptores que van a cambiar de estado
 Para producir el conteo también utilizamos el TMR0 que es muy práctico ya que
antes utilizamos rutinas para hacer el conteo y ocupado.
 Aprendimos a configurar el Timer del Pic de distintas maneras.
 Logramos configurar correctamente las I/O del microcontrolador a la ves de crear
un programa usando Timer del PIC.
BIBLIOGRAFÍA
(Consigne la bibliografía utilizada por usted para el desarrollo de la práctica).
- MICROCONTROLADORES PIC16F877 – DESARROLLO DE PROYECTOS 2da Edicion,
ENRIQUE PALACIOS M.
- DATASHEET PIC 16F877A
- CURSO: MICROCONTROLADORES Y MICROPROGRAMACION –CLACES PRACTICAS.
ING. WILDOR FERREL SERRUTO, 2011

Más contenido relacionado

La actualidad más candente

Amplificadores clase B clase 11ª
Amplificadores clase B clase 11ªAmplificadores clase B clase 11ª
Amplificadores clase B clase 11ª
ManuelGmoJaramillo
 
Electrónica de potencia
Electrónica de potenciaElectrónica de potencia
Electrónica de potencia
andres
 
La curva característica del diodo
La curva característica del diodoLa curva característica del diodo
La curva característica del diodo
antonio vasquez
 

La actualidad más candente (20)

El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
Amplificadores clase B clase 11ª
Amplificadores clase B clase 11ªAmplificadores clase B clase 11ª
Amplificadores clase B clase 11ª
 
Dispositivos de potencia
Dispositivos de potenciaDispositivos de potencia
Dispositivos de potencia
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
Scr, triac y diac
Scr, triac y diacScr, triac y diac
Scr, triac y diac
 
Rectificador controlado-silicio-scr
Rectificador controlado-silicio-scrRectificador controlado-silicio-scr
Rectificador controlado-silicio-scr
 
Presentacion triac
Presentacion triacPresentacion triac
Presentacion triac
 
Ac ac monofasicos
Ac ac monofasicosAc ac monofasicos
Ac ac monofasicos
 
Sesión 6: Teoría Básica de Transistores BJT
Sesión 6: Teoría Básica de Transistores BJTSesión 6: Teoría Básica de Transistores BJT
Sesión 6: Teoría Básica de Transistores BJT
 
MARLON
MARLONMARLON
MARLON
 
Caracteristicas de los diodos
Caracteristicas de los diodosCaracteristicas de los diodos
Caracteristicas de los diodos
 
Pid
PidPid
Pid
 
Presentación de Diodos
Presentación de DiodosPresentación de Diodos
Presentación de Diodos
 
Electrónica de potencia
Electrónica de potenciaElectrónica de potencia
Electrónica de potencia
 
Informe subir dc-dc-reductor
Informe subir dc-dc-reductorInforme subir dc-dc-reductor
Informe subir dc-dc-reductor
 
Voltaje de rizado
Voltaje de rizadoVoltaje de rizado
Voltaje de rizado
 
Fuente de alimentación simétrica regulada y variable
Fuente de alimentación simétrica regulada y variableFuente de alimentación simétrica regulada y variable
Fuente de alimentación simétrica regulada y variable
 
Convertidores ac,dc
Convertidores ac,dcConvertidores ac,dc
Convertidores ac,dc
 
La curva característica del diodo
La curva característica del diodoLa curva característica del diodo
La curva característica del diodo
 
INVERSOR MONOFASICO
INVERSOR MONOFASICOINVERSOR MONOFASICO
INVERSOR MONOFASICO
 

Destacado (11)

Interrupción informatica
Interrupción informaticaInterrupción informatica
Interrupción informatica
 
05.Manejo de interrupciones
05.Manejo de interrupciones05.Manejo de interrupciones
05.Manejo de interrupciones
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Interrupciones de hardware
Interrupciones de hardwareInterrupciones de hardware
Interrupciones de hardware
 
Control automático de transferencia de energía eléctrica
Control automático de transferencia de energía eléctricaControl automático de transferencia de energía eléctrica
Control automático de transferencia de energía eléctrica
 
Reglas Para Diagramas
Reglas Para DiagramasReglas Para Diagramas
Reglas Para Diagramas
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Interrupciones: Sistemas Operativos
Interrupciones: Sistemas OperativosInterrupciones: Sistemas Operativos
Interrupciones: Sistemas Operativos
 

Similar a Microprogramacion - Interrupciones y timers

Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontrolador
Juan Gamboa P
 
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizadorLab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Daniel Pardo
 
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Mauricio Diaz Garcia
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
Gabriel Bravo Rojas
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Jose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
freddymadriz
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Jose Manuel Mansilla Carrasco
 
Introducpic2
Introducpic2Introducpic2
Introducpic2
conalep
 
Introducpic
IntroducpicIntroducpic
Introducpic
conalep
 

Similar a Microprogramacion - Interrupciones y timers (20)

Microcontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosMicrocontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltos
 
Tarea final
Tarea finalTarea final
Tarea final
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontrolador
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del banco
 
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizadorLab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
 
Microcontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdfMicrocontroladores de microchip pic16f877-en-espanol.pdf
Microcontroladores de microchip pic16f877-en-espanol.pdf
 
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
 
Introducpic2
Introducpic2Introducpic2
Introducpic2
 
Introducpic
IntroducpicIntroducpic
Introducpic
 

Más de marco calderon layme

Más de marco calderon layme (14)

RS422 y RS495
RS422 y RS495RS422 y RS495
RS422 y RS495
 
Fibra Óptica
Fibra ÓpticaFibra Óptica
Fibra Óptica
 
Sensores de caudal tipo Turbina
Sensores de caudal tipo TurbinaSensores de caudal tipo Turbina
Sensores de caudal tipo Turbina
 
Caudalímetros de Presión Diferencial
Caudalímetros de Presión DiferencialCaudalímetros de Presión Diferencial
Caudalímetros de Presión Diferencial
 
Caudalímetros electromagnéticos
Caudalímetros electromagnéticosCaudalímetros electromagnéticos
Caudalímetros electromagnéticos
 
Sensor de tipo Coriolisis
Sensor de tipo CoriolisisSensor de tipo Coriolisis
Sensor de tipo Coriolisis
 
Sensor caudal tiempo transito
Sensor caudal tiempo transitoSensor caudal tiempo transito
Sensor caudal tiempo transito
 
Sensores de PH
Sensores de PHSensores de PH
Sensores de PH
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLab
 
Electricidad y Mediciones Eléctricas
Electricidad y Mediciones EléctricasElectricidad y Mediciones Eléctricas
Electricidad y Mediciones Eléctricas
 
PDI clasificacion de galaxias usando matlab
PDI clasificacion de galaxias usando matlabPDI clasificacion de galaxias usando matlab
PDI clasificacion de galaxias usando matlab
 
Redes Emerson
Redes EmersonRedes Emerson
Redes Emerson
 
Redes especiales Emerson - Protocolo Hart - Redes en Domotica - Otros
Redes especiales  Emerson - Protocolo Hart - Redes en Domotica - OtrosRedes especiales  Emerson - Protocolo Hart - Redes en Domotica - Otros
Redes especiales Emerson - Protocolo Hart - Redes en Domotica - Otros
 
Automatización de Aserradero con plc Telemecanique
Automatización de Aserradero con plc TelemecaniqueAutomatización de Aserradero con plc Telemecanique
Automatización de Aserradero con plc Telemecanique
 

Último

PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
EduardoJosVargasCama1
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 

Microprogramacion - Interrupciones y timers

  • 1. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 1 INTERRUPCIONES Y TIMERS OBJETIVOS  Configurar el Timer del Pic para diferentes maneras.  Configurar lo puertos de I/O del microcontrolador.  Realizar programas, esquemas de simulación e implementar el hardware necesario que implique el uso del Timer del PIC en la solución de problematicas planteadas. ESQUEMA A IMPLEMENTAR ESPECIFICACIONES  Implementar un sistema, según la figura anterior. El sistema según la selección del MODO será un contador ascendente (de 0 a 99 y se repite) o será un temporizador regresivo (99 a 0 en intervalos de 1 segundo o 0.5 segundos según una selección de intervalo) una vez terminada la cuenta regresiva se enciende un led que indica que la cuenta a terminado.  Elaborar el algoritmo y el diagrama de flujo del programa que soluciona el problema planteado. Presentar una tabla donde se especifique los recursos empleados así como las variables, etiquetas, etc. Utilizadas en el programa. El
  • 2. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 2 conteo y la temporización se hará empleando el Timer del PIC. Realizar y presentar los cálculos necesarios para conseguir los tiempos requeridos por el problema.  Codificar el programa que soluciona y comentar todas las líneas (obligatorio). Separar las partes del programa con comentarios pertinentes (obligatorio).  Simular el programa en MPLAB. Agregue las variables necesarias para poder observar los cambios de valor de las variables y verificar los resultados.  Implementar el circuito solución en proteus y quemar el programa desarrollado en el microcontrolador luego simular y verificar los resultados. INDICACIONES  Elaborar un informe del trabajo desarrollado, la carpeta con el proyecto MPLAB, los archivos de simulación proteus y las conclusiones obtenidas. Presentar según la hora y fecha indicadas en formato digital ( un solo archivo comprimido formato zip o rar) TRAVE DEL AULA VIRTUAL (NO SE ACEPTARAN TRABAJOS ENVIADOS POR CORREO ELECTRONICO). Colocar este formato como caratula del informe consignando el número de grupo y los integrantes del mismo.  Fecha de presentación DESARROLLO ESPECIFICACIONES Implementar un sistema.el sistema según la selección de modo será un contador ascendente o descendente o será un temporizador regresivo del 99 al 0 en intervalos de 1seg y 0.5 seg según se seleccione una vez terminada la cuenta regresiva se encienda un led Para poder tener los retardos de 0.5 segundos usaremos retardos RETARDO_0_5S MOVLW D'8' MOVWF CONTADOR BUCLE_EXTERNO MOVLW D'12' ; cargamos 12 am TMR0 MOVWF TMR0 BCF INTCON,T0IF ;limpiamos la banderita del TMR0 BUCLE_INTERNO
  • 3. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 3 BTFSS INTCON,T0IF;testeamos si se a desbordado el TMR0 GOTO BUCLE_INTERNO DECFSZ CONTADOR,1 ;decrementamos hasta q acabe de decrementar luego salta GOTO BUCLE_EXTERNO Retardo de un segundo RETARDO_1S MOVLW D'16' MOVWF CONTADOR BUCLE_EXTERNO1 MOVLW D'12' MOVWF TMR0 BCF INTCON,T0IF BUCLE_INTERNO1 BTFSS INTCON,T0IF GOTO BUCLE_INTERNO1 DECFSZ CONTADOR,1 GOTO BUCLE_EXTERNO1 GOTO REGRESION
  • 4. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 4 DIAGRAMA DE FLUJO: CBLOCK 0X20 UNIDADES DECENAS TEMPORIZADOR CONTADOR CONTADOR1 CIFRA ENDC INICIO BTFSS MODO
  • 5. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 5 REGRESION MOVLW D'1' SUBWF TEMPORIZADOR,1 RETARDO_0_ 5S GOTO RETARDO_1S MOVLW D'99' MOVWF TEMPORIZADOR ;cargamos 99 en decimal al temporizador BTFSS INTERVALO CONTEO_DESC CONTEO_ASC MOVF TMR0,0 CALL VISUALIZACION BTFSS TIPO_CONT MOVLW 0X02 SUBWF TMR0,1 MOVLW D'99' MOVWF TMR0 MOVF TMR0,0 CALL VISUALIZACION
  • 6. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 6 VISUALIZACION MOSTRAR MOVF TMR0,0 CALL VISUALIZACION GOTO TEST_SWITCH CALL RETARDO_20 MS BTFSC SWITCH MOVLW D'10' SUBWF UNIDADES,0 DECIMAL_FINBTFSS STATUS,C
  • 7. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 7 IMPRIMIR MOVF UNIDADES,0 MOVWF PORTC MOVF DECENAS,0 MOVWF PORTD RETURN DECIMAL_RESTA10 MOVF UNIDADES,0 CALL COD_7SEG MOVWF UNIDADES MOVF DECENAS,0 CALL COD_7SEG MOVWF DECENAS BTFSS STATUS,C MOVWF UNIDADES INCF DECENAS,1 END
  • 8. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 8 RECURSOS DEL PIC Para elaborar el programa utilizamos varios registros del PIC para la configuración del puerto A para que funcione acorde a nuestras necesidades REGISTRO USO STATUS Para direccionar los bancos ADCON1 Para usar los pines del puerto A como digitales PORTA Para configurar las entradas y salidas TMR0 PARA USARLO COMO TEMPORIZADOR Y CONTADOR Para poder hacer más entendible el programa también usamos etiquetas, es listado de etiquetas usadas en el programa se muestra en la tabla INSTRUCCIÓN USO Btfsc f,b Si el numero b del registro f es “0” la instrucción que sigue a esta se ignora Btfss f,b Si el numero b del registro f es “1” la instrucción que sigue a esta se ignora Goto k Salto incondicional a la dirección k Bcf f,b Pone a 1 el bit b Bsf f,b Pone a 0 el bit b Call k Salvaguarda la dirección de vuelta en la pila y después llama a la subrutina situada en la dirección cargada el la PC Movlw l Mueve el contenido de l en el registro de trabajo w Movwf f Mueve el contenido del registro w al registro f
  • 9. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 9 VARIABLES USO UNIDADES REGISTRO PARA GURADAR EL VALOR DE LAS UNIDADES DEL DISLPAY DECENAS REGISTRO PARA GURADAR EL VALOR DE LAS DECENAS DEL DISLPAY TEMPORIZADOR REGITRO PAR HACER LAS TEMPORIACIONES CONTADOR Para el bucle : BUCLE_INTERNO CONTADOR1 Para el bucle : BUCLE_EXTERNO1 CIFRA REGISTRO PARA GUARDAR UNA VARIABLE  Codificar el programa que soluciona el problema y comentar todas las líneas (obligatorias). Separar las partes del programa con comentarios pertinentes (obligatorio). LIST P=16F877A RADIX HEX __CONFIG 3F31H #INCLUDE P16F877A.INC #DEFINE MODO PORTB,5 #DEFINE INTERVALO PORTA,1 #DEFINE TIPO_CONT PORTB,4 #DEFINE SWITCH PORTA,4 #DEFINE LED PORTA,0 CBLOCK 0X20
  • 10. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 10 UNIDADES ; registro para las unidades DECENAS ; registro para las decenas TEMPORIZADOR ; registro para el temporizador CONTADOR ; CONTADOR1 ; CIFRA ; ENDC ORG 0 ; vector de inicio GOTO INICIO ; ORG 4 ; dirección de interrupción GOTO INTERRUPCION ; ORG 5 ; INICIO BCF STATUS,RP0 ;seleccionamos el banco 0 BCF STATUS,RP1 ; CLRF PORTA ; ponemos el PORTA a nivel bajo BSF STATUS,RP0 ;accedemos al banco1 MOVLW 0X06 ; configuramos las entradas salidas como digitales MOVWF ADCON1 MOVLW B'00010010' ; los bits 1 y 4 como entradas los demás como salidas ; para él puerto A MOVWF TRISA CLRF TRISC ; configuramos el portC y portD como salidas CLRF TRISD MOVLW B'11111111' BCF STATUS,RP0 CLRF TMR0 ; limpiamos el timer 0 MOVLW B'10001000' ; configuramos los bits del registro INTCON GIE y RBIE MOVWF INTCON CLRF PORTB BUCLE GOTO BUCLE ; cargamos un bucle infinito ; configuramos la interrupción apagar LED testeamos modo si es cero saltamos a ; TMR0_CONT si es uno a TMRO_TEMP
  • 11. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 11 INTERRUPCION BCF LED ; LED APAGADO BTFSS MODO ; testeamos MODO GOTO TMR0_CONT ; si es 0 saltamos a TMR0_CONT TMR0_TEM ; si es 1 ejecutamos BSF STATUS,RP0 ; MOVLW B'11010111' ; configuramos el registro option_reg MOVWF OPTION_REG ; pull ap desabilitadas trabajamos con flanco ; Ascendente ; Divisor asignado al TMRO con presacalador de 256 BCF STATUS,RP0 ; MOVLW D'99' ; cargamos el acumulador con 99 MOVWF TEMPORIZADOR ; cargamos 99 en decimal al temporizador MOVLW B'10001000' ; configuramos el registro INTCON para las ; Interrupciones MOVWF INTCON CUENTA_REGRE MOVF TEMPORIZADOR,0 ; CALL VISUALIZACION BTFSS INTERVALO ; testea a que intervalo debe de estar a un segundo o ; medio segundo GOTO RETARDO_1S ; retardo de medio segundo donde se carga 8 en decimal al contador RETARDO_0_5S MOVLW D'8' MOVWF CONTADOR BUCLE_EXTERNO MOVLW D'12' ; cargamos 12 am TMR0 MOVWF TMR0 BCF INTCON,T0IF ; limpiamos la banderita del TMR0 BUCLE_INTERNO BTFSS INTCON,T0IF ; testeamos si se ha desbordado el TMR0 GOTO BUCLE_INTERNO DECFSZ CONTADOR,1 ;decrementos hasta q acabe de decrementos luego GOTO BUCLE_EXTERNO
  • 12. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 12 ; cuando termine de hacer la cuenta regresiva lo que debe hacer el microcontrolador es ;encender un LED ; así en bucle infinito a menos que salga con una interrupción REGRESION MOVLW D'1' SUBWF TEMPORIZADOR,1 BTFSC STATUS,C GOTO CUENTA_REGRE BSF LED PRENDE_LED GOTO PRENDE_LED ; Retardo de un segundo que se obtiene cargando 16 en decimal al contador ; Luego 12 al TMR0 y esperar que desborde el TMR0 RETARDO_1S MOVLW D'16' MOVWF CONTADOR BUCLE_EXTERNO1 MOVLW D'12' MOVWF TMR0 BCF INTCON,T0IF BUCLE_INTERNO1 BTFSS INTCON,T0IF GOTO BUCLE_INTERNO1 DECFSZ CONTADOR,1 GOTO BUCLE_EXTERNO1 GOTO REGRESION ; En esta parte del programa se configura el microcontrolador para que funcione como ; Contador ascendente o descendente ; GIE y RBIE que será mediante el cual se haga la interrupción que es el bit 4 del PORTA TMR0_CONT BSF STATUS,RP0 MOVLW B'11111000' MOVWF OPTION_REG BCF STATUS,RP0 CLRF TMR0 BTFSS TIPO_CONT
  • 13. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 13 GOTO CONTEO_DESC ; Mediante interruptor se observa que en el conteo ascendente primero se configura la ; Interrupción por CONTEO_ASC MOVF TMR0,0 CALL VISUALIZACION MOVLW B'10001000' MOVWF INTCON TEST_SWITCH BTFSC SWITCH GOTO TEST_SWITCH CALL RETARDO_20MS BCF INTCON,T0IF BTFSS INTCON,T0IF GOTO MOSTRAR MOVLW D'55' MOVWF TMR0 GOTO TEST_SWITCH MOSTRAR MOVF TMR0,0 CALL VISUALIZACION GOTO TEST_SWITCH ; el conteo descendente también se hace con el TMR0 y el bit 4 del portA CONTEO_DESC MOVLW D'99' MOVWF TMR0 MOVF TMR0,0 CALL VISUALIZACION MOVLW B'10001000' MOVWF INTCON TEST_SWITCH1 BTFSC SWITCH GOTO TEST_SWITCH1 CALL RETARDO_20MS BTFSC SWITCH GOTO TEST_SWITCH1 SUELTA BTFSS SWITCH ;testea porta,4
  • 14. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 14 GOTO SUELTA ;testea si se suelta MOVLW 0X02 ;carga el valor de 2 en W SUBWF TMR0,1 MOVF TMR0,0 CALL VISUALIZACION BTFSS STATUS,Z ;testea el bt Z GOTO TEST_SWITCH1 MOVLW D'100' MOVWF TMR0 GOTO TEST_SWITCH1 ; Limpia todos los registro de unidades y decenas VISUALIZACION CLRF DECENAS ; limpiamos decenas y cargamos el contenido W en ; de unidades MOVWF UNIDADES ; DECIMAL_RESTA10 MOVLW D'10' ; restamos a unidades el valor de 10 en decimal SUBWF UNIDADES,0 BTFSS STATUS,C ;testeamos el carry para saber si ya llego al 9 GOTO DECIMAL_FIN ; Si es así entonces incrementamos decenas ; lo mismo hacemos con las decenas DECIMAL_INCREMENTADECENAS MOVWF UNIDADES INCF DECENAS,1 MOVLW D'10' SUBWF DECENAS,0 BTFSS STATUS,C GOTO DECIMAL_RESTA10 ; carga el contenido de unidades en W ; llama la tabla de 7 segmentos lo mismo hace con las decenas DECIMAL_FIN MOVF UNIDADES,0 CALL COD_7SEG MOVWF UNIDADES MOVF DECENAS,0 CALL COD_7SEG MOVWF DECENAS
  • 15. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 15 ; El contenido de unidades lo pasa al portC y el contenido de las decenas lo pasa a copiar a ; portD IMPRIMIR MOVF UNIDADES,0 MOVWF PORTC MOVF DECENAS,0 MOVWF PORTD RETURN ;la tabla del codigo de 7 segmentos COD_7SEG MOVWF CIFRA MOVF CIFRA,0 ADDWF PCL,1 RETLW B'00111111' RETLW B'00000110' RETLW B'01011011' RETLW B'01001111' RETLW B'01100110' RETLW B'01101101' RETLW B'01111101' RETLW B'00000111' RETLW B'01111111' RETLW B'01101111' ;un retardo de 20 ms RETARDO_20MS MOVLW D'20' MOVWF CONTADOR1 BUCLE1 MOVLW D'249' MOVWF CONTADOR BUCLE2 NOP DECFSZ CONTADOR,1 GOTO BUCLE2 DECFSZ CONTADOR1,1 GOTO BUCLE1 RETURN END
  • 16. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 16 SIMULACION Para poder obtener la simulación usamos la herramienta ISIS del software Proteus.
  • 17. INGENIERIA ELECTRONICA LABORATORIO DE MIICROCONTROLADORES Y MICROPROGRAMACIÓN 17 CONCLUCIONES  Para producir los retardos en este laboratorio aprendimos a utilizar el TMR0 en este ejemplo fue para crear retardos de medio y un segundo  la interrupción por cambio de estado de los bits RB4:RB7 son muy útiles en el momento de utilizar varios interruptores que van a cambiar de estado  Para producir el conteo también utilizamos el TMR0 que es muy práctico ya que antes utilizamos rutinas para hacer el conteo y ocupado.  Aprendimos a configurar el Timer del Pic de distintas maneras.  Logramos configurar correctamente las I/O del microcontrolador a la ves de crear un programa usando Timer del PIC. BIBLIOGRAFÍA (Consigne la bibliografía utilizada por usted para el desarrollo de la práctica). - MICROCONTROLADORES PIC16F877 – DESARROLLO DE PROYECTOS 2da Edicion, ENRIQUE PALACIOS M. - DATASHEET PIC 16F877A - CURSO: MICROCONTROLADORES Y MICROPROGRAMACION –CLACES PRACTICAS. ING. WILDOR FERREL SERRUTO, 2011