Informe PLC
Informe PLC
MICROPROCESADORES Y MICROCONTROLADORES
Práctica 3.1
Autor:
Pantusin Chiluisa Fernando Javier
Docente:
Ing. Amparo Meythaler
NRC: 7803
1) OBJETIVOS
- Identificar el trabajo de los timers del PIC16F877 en la función temporizador.
- Identificar el trabajo de los timers del PIC16F877 en la función contador.
2) MARCO TEORICO
TEMPORIZADORES
Los microcontroladores PIC suelen tener varios temporizadores, como ejemplo se
utilizará el PIC16F877A, el cual tiene 3 temporizadores que son llamados timer0,
timer1 y timer2, el tiempo que tarda el temporizador contador PIC en aumentar su valor
de unidad en unidad, se puede modificar por programa mediante el uso de divisores de
frecuencia,
Dependiendo del modelo de microcontrolador PIC algunos timers pueden ser utilizados
como temporizador o como contador.
El registro en los microcontroladores PIC donde se guardan y realizan los aumentos de
uno en uno del temporizador PIC, es llamado registro temporizador contador y es
representado por TMRx, donde x es el número de temporizador contador PIC que puede
ser 0, 1, 2, dependiendo del número de temporizadores con que cuente el
microcontrolador PIC; el temporizador contador PIC puede ser de 8 bits o de 16 bits.
3) EQUIPOS Y MATERIALES
PC con los paquetes MPLAB IDE y PROTEUS.
4) ACTIVIDADES
PB0
TMR1L F6
TMR1H FF
1
NO
TMR1IF = 1 Decodificador
SI PORTD W
TMR1F
1
PB0
PORTD F7
Retardo2
Figura 1. Diagrama de flujo general para el problema
Decodificador
W F6
W TMR1L-W
PCL W + PCL
W W B0 W ED W FB
a) b)
Figura 3. a) Diagrama de flujo de la subrutina Retardo2 y b) Diagrama de flujo de la
subrutina Retardo
Codificación:
LIST P=PIC16F877 CALL RETARDO2
ESTADO EQU 03 GOTO VOLVER
PORTB EQU 06
PORTC EQU 07 DECODIFICADOR:
PORTD EQU 08 MOVLW 0F6
TMR1L EQU 0E SUBWF TMR1L,0
TMR1H EQU 0F ADDWF PCL,1
TMR2 EQU 11 RETLW 00
T1CON EQU 10 RETLW 0B0
T2CON EQU 12 RETLW 0ED
PIR1 EQU 0C RETLW 0F9
PCL EQU 02 RETLW 0B3
R2 EQU 32 RETLW 0DB
ORG 0 RETLW 0DF
;Configuración RETLW 0F0
BSF ESTADO,5 RETLW 0FF
CLRF PORTD; Display RETLW 0FB
BCF PORTB,0; Led RETLW 0F7
BSF PORTC,0; Pulsador
BCF ESTADO,5 RETARDO:
MOVLW 0B MOVLW 00
MOVWF T1CON MOVWF TMR2
MOVLW 7F SIGA
MOVWF T2CON BTFSS PIR1,1
;Programa GOTO SIGA
CLRF PORTD BCF PIR1,1
VOLVER: RETURN
BCF PORTB,0
MOVLW 0F6 RETARDO2:
MOVWF TMR1L CLRF R2
MOVLW 0FF SIGA2:
MOVWF TMR1H CALL RETARDO
REPETIR: INCF R2,1
BTFSC PIR1,0 MOVLW 05
GOTO SALTE XORWF R2,0
CALL DECODIFICADOR BTFSS ESTADO,2
MOVWF PORTD GOTO SIGA2
GOTO REPETIR RETURN
SALTE: END
BCF PIR1,0
BSF PORTB,0
MOVLW 0F7
MOVWF PORTD
4.2) Desarrollo
5) RESULTADOS
• Explique los errores cometidos en el ejercicio realizado (si los tuvo) y la forma
de corregirlos.
El error que se cometió, fue colocar el valor 10 (A en hexadecimal) dentro de la
subrutina Decodificador, ya que el valor 10 debería presentarse el mismo tiempo
que el led y así mismo, desaparecer. Por lo que se optó por colocar dicho valor fuera
de es instrucción, es decir, en el programa principal junto a la instrucción donde el
led se prende.
• Explique para qué sirven los divisores de frecuencia en los TIMERS de los
microcontroladores de la Microchip.
Los divisores de frecuencia nos sirven para reducir la frecuencia de la señal, y en
teoría, aumentar el tiempo te periodo. Por lo que nos ayudarían para aumentar un
tiempo de retardo en el caso de temporizadores. Estos divisores por lo tanto tienen
escala 1:2, 1:4, entre otros. Lo que quiere decir que a una cierta frecuencia, la
reducen para 2, para 4, o lo que el programador decida o el problema necesite.
• De los tres TIMERS que tiene el PIC16F877 con cuál de ellos conseguiría el
retardo más grande. Justifique su respuesta con datos.
Con el TIMER1 es donde se tendría el retardo más grande, ya que dicho Timer
trabaja con 16 bits. Por lo que al colocar 0000, hasta llegar FFFF, sería 65535 en
base decimal. Más veces que los otros dos Timers que solo van de 00 a FF.
6) CONCLUSIONES
- El PIC16F877 tiene 3 Timer: Timer0, Timer1 y Timer2. De los cuales los dos
primeros los podemos utilizarlos como temporizadores o contadores. Y el Timer2
solo como temporizador.
- Un temporizador nos permite implementar retardos de una manera más accesible
usando herramientas del propio microprocesador, solo usando los timer en modo
temporizador los cuales usan el reloj interno del microprocesador.
- En la función temporizador, los cálculos para retardos son mucho más fáciles, por
lo que solo se toma un valor DI, el cual debe llegar hasta el valor máximo
dependiendo del timer escogido (8 o 16 bits).
- Para activar el Timer en modo temporizador o contador, se necesita fijar un bit de
la localidad de control de dichos Timers. Estas localidades de control son: OPTION
para el Timer0, T1CON para el Timer1 y T2CON para el Timer2.
- Solo el Timer1, en modo contador, puede tener entrada síncrona o asíncrona,
usando 2 pines o 1 pin respectivamente.
- Al usar los divisores de frecuencia nos ayuda a aumentar el periodo de la señal que
se está usando.
7) RECOMENDACIONES
- Usar valores de retardo y repetición adecuados para poder visualizar el momento
que se activa alarma y posteriormente se apaga.
- Revisar con anterioridad las localidades de control para los timers en el datasheet
del integrado.
8) BIBLIOGRAFIA/LINKOGRAFÍA
Angulo Usategui, J., Romero Yesa, S., & Angulo Martínez, I. (2006).
Microcontroladores PIC : Diseño práctico de aplicaciones II parte: PIC16F87X,
PIC18FXXXX. Madrid: McGraw-Hill.