0% encontró este documento útil (0 votos)
25 vistas10 páginas

Informe PLC

Cargado por

thaisarevalo030
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)
25 vistas10 páginas

Informe PLC

Cargado por

thaisarevalo030
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
Está en la página 1/ 10

Departamento de Eléctrica y Electrónica

Carrera de Electrónica y Automatización

MICROPROCESADORES Y MICROCONTROLADORES

Práctica 3.1

TEMPORIZADORES DEL PIC16F877

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

4.1) Trabajo Preparatorio

a) Realizar el diagrama de flujo, la codificación e implementación correspondiente,


de un programa que cuente el número de personas que ingresan a un almacén, la
visualización será mediante un display (conteo hexadecimal). Cuando ingresa la
persona 10 suena una alarma (led), la misma que estará activa un tiempo
únicamente. El contaje se debe realizar utilizando el TIMER 1 y el tiempo de la
alarma se debe realizar utilizando el TIMER 2.
INICIO

Confg. PB, PC, PD

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

REGRESAR REGRESAR REGRESAR REGRESAR

Figura 2. Diagrama de flujo de la subrutina Decodificador


Retardo2
Retardo
R2
TMR2
Retardo
NO
TMR2IF = 1
R2 R2 + 1
SI
NO TMR2IF
R2=5
SI Regresar
Regresar

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

1. Trabajo en el paquete MPLAB IDE.


• Digite el programa.
• Compile el ejercicio hasta que obtenga 0 errores.

Figura 4. Programa digitado y compilado correctamente en MPLAB

2. Trabajo en el paquete PROTEUS.


• Realice el diagrama esquemático.

Figura 5. Diagrama esquemático para el problema en el paquete Proteus


• Cargue el programa compilado en el microcontrolador.

Figura 6. Colocación del programa compilado de MPLAB en el microcontrolador

• Corra el diseño y verifique el funcionamiento.


Figura 7. Simulación del circuito donde se presenta el primer dato, dos datos
intermedios y el último dato

3. Presente el cálculo de tiempo en que estaría prendida la alarma si el dato inicial


del temporizador es 6F, el pre divisor está en su mínimo valor y el post divisor en
el máximo. Trabaje con una frecuencia de 4 MHz.
Predivisor en mínimo = 1
Postdivisor en máximo = 16
𝐷𝐼 = 6𝐹(16) = 111(10)
̅̅̅ + 1) · 𝐶𝑀 · 𝐷𝐹1 · 𝐷𝐹2
𝑡𝑟 = (DI
4
𝑡𝑟 = (144 + 1) · · 1 · 16
4𝑀
t_r = 2,32 m(s)

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.

RedUsers. (2011). MICROCONTROLADORES: Funcionamiento, Programación


y Aplicaciones Prácticas. Revista Users.

Microchip. PIC16F87X DATA SHEET. Microchip Technology Inc. USA. 2001.

También podría gustarte