0% encontró este documento útil (0 votos)
54 vistas3 páginas

Practica5 TMR1 PDF

Este documento describe una práctica que implementa el uso de TMR1 como un temporizador en un microcontrolador PIC16F74. Se configura TMR1 para que genere una interrupción cada 1 ms, y se llama a la interrupción 10 veces para lograr un retardo total de 1 segundo. En la interrupción, dependiendo del estado actual del LED, éste se apagará o encenderá para lograr un parpadeo cada segundo. Se incluye el código fuente, un diagrama del circuito y una conclusión de que el uso completo de TMR1 no quedó del todo claro
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)
54 vistas3 páginas

Practica5 TMR1 PDF

Este documento describe una práctica que implementa el uso de TMR1 como un temporizador en un microcontrolador PIC16F74. Se configura TMR1 para que genere una interrupción cada 1 ms, y se llama a la interrupción 10 veces para lograr un retardo total de 1 segundo. En la interrupción, dependiendo del estado actual del LED, éste se apagará o encenderá para lograr un parpadeo cada segundo. Se incluye el código fuente, un diagrama del circuito y una conclusión de que el uso completo de TMR1 no quedó del todo claro
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/ 3

Arquitectura de Microcontroladores:

Práctica 5. TMR1 Interruption


Oscar Manuel Mendoza Rosas* and Diego Paniagua Molina**
División de Ciencias e Ingenierı́as de la Universidad de Guanajuato–Campus León
(Fecha de preparación: 19 de octubre de 2022)
En esta práctica se implemento el uso de TMR1 como un temporizador, configurado de tal manera
que se desborde cada 1 ms, ciclándolo 10 veces para que el retardo total sea de 1s, en este punto
se llamará a una interrupción. Dependiendo del estado del LED, la interrupción hará que el LED
apague o prenda, con un intervalo de 1s.

I. INTRODUCCIÓN 2 resistencias de 1KΩ

1 resistencia de 330Ω
Similar al temporizador TMR0, estos registros se pue-
den leer o se puede escribir en ellos en cualquier momento. Cable
En caso de que ocurra un desbordamiento, se genera una
interrupción si está habilitada. El módulo del temporiza- 1 LED
dor TMR1 puede funcionar en uno o dos modos básicos,
eso es como un temporizador o como un contador.[1]
El temporizador del TMR1 cuenta con algunas carac- III. MÉTODOS
teristicas muy especiales.
Temporizador/contador de 16 bits compuesto por Se configuro el TMR1 de manera que funcionara como
un par de registros un temporizador, mandando el valor de 0x30 al configu-
rador del TMR1, es decir, al T1CON, posteriormente se
Fuente de reloj interna o externa programable puso en 1 el bit 0 de T1CON para habilitarlo. La confgi-
ración se realizo de acuerdo al manual, como se muestra
Pre-escalador de 3 bits en la Figura 1. El TMR1 se configuró de tal manera que
se desbordara cada décima de segundo, donde mandarı́a
Oscilador LP opcional
una interrupción.
Funcionamiento sı́ncrono o ası́ncrono En la parte de Interrupción se llevarı́a un contador de
cuantas interrupciones ha generado el timer, al llegar a
Compuerta para controlar el temporizador Timer1 10, es decir, al completar un segundo, el servicio de inte-
(conteo habilitado) por medio del comparador o por rrupción harı́a una operación lógica: si el LED esta pren-
el pin T1G dido, lo apaga, y si esta apagado, lo prende, también se
limpia el contador de interrupciones. Si no se ha llegado
Interrupción por desbordamiento
a 10 interrupciones, envı́a la instrucción directamente a
”Despierta.al microcontrolador (salida del modo de finalizar la interrupción.
reposo) por desbordamiento (reloj externo) Una vez realizada esta acción. se envı́a a finalizar la
interrupción, donde se baja la bandera de interrupción,
Fuente de reloj para la función de Captura/Com-
paración.
IV. CÓDIGO FUENTE

II. MATERIALES
; PIC16F77 Configuration Bit Settings

Programador MasterProg ; Assembly source line config statements


PIC16F74
; CONFIG
Protoboard de 830 puntos CONFIG FOSC = HS
; Oscillator Selection bits (HS oscillator)
1 push button CONFIG WDTE = OFF
; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = ON
; Power-up Timer Enable bit (PWRT enabled)
* om.mendozarosas@ugto.mx CONFIG CP = OFF
** d.paniaguamolina@ugto.mx ; FLASH Program Memory Code
2

movwf TMR1H
movlw 11011011B
movwf TMR1L
goto fininterup
now10:
movlw 0x01
xorwf PORTD,1 ;Encendemos LED
clrf 0x20 ;limpiamos 0x20
clrf TMR1L
movlw 0001011B
;iniciamos el TMR1 con 3035
;para contar 500,000 interrupciones
movwf TMR1H
movlw 11011011B
movwf TMR1L
goto fininterup
Figura 1. Texto de descripción de la figura.
fininterup:
bcf PIR1,0
;Protection bit (Code protection off) ;Ya que se atendió la interrupcion
CONFIG BOREN = ON ;bajamos la
; Brown-out Reset Enable bit (BOR enabled) ;bandera
retfie
// config statements should precede
;project file includes. inicio:
#include <xc.inc>
BANKSEL PIE1
//PSECT absdata, abs, ovrld movlw 0x00
PSECT reset_vec, class=code, delta= 2 movwf TRISD
movlw 0x01
resetVec: movwf PIE1
goto inicio movlw 0xC0
movwf INTCON
PSECT isrVec,class=CODE,delta=2

isr:
BANKSEL PORTB
btfss PIR1,0
movlw 0x30
;verifico que se haya dado la interrupcion,
movwf T1CON
verdadera interrupcion
clrf TMR1L
goto fininterup
movlw 0xFF
incf 0x20,1
movwf TMR1H
;incremento la cuenta de veces
movlw 0xFE
;que ha entrado a la interrupción movwf TMR1L
btfss 0x20,3 bsf T1CON,0
;checamos si en el bit 3 hay un numero, clrf 0x20
;con la finalidd de checar 10 interrupciones bcf PORTD,2
goto notyet10
btfss 0x20,1 ciclo:
;corroboramos que hayan pasado 10 nop
;interrupciones goto ciclo
goto notyet10
goto now10
; ya se realizaron 10 interrupciones
end resetVec
notyet10:
clrf TMR1L
movlw 0001011B
; iniciamos el TMR1 con 3035
;para contar 500,000 interrupciones
3

V. ESQUEMA

Para el montaje necesitamos los componentes ya men-


cionados anteriormente en la sección de materiales, bási-
camente tenemos todas las partes necesarias para que
nuestro microcontrolador funcione de forma correcta, un
botón de “reset”, un oscilador de 20MHz, alimentación
de +5V, el LED a encender y el botón que se encargara
de encender el LED, de forma más detallada se muestra
en la Figura 2

VI. CONCLUSIONES

La práctica fue muy confusa, en realidad no podrı́amos


decir que quedo totalmente claro para el equipo el uso
correcto o completo de TMR1 con el complemento de
las interrupciones. Esta práctica se logró exitosamente,
Figura 2. Texto de descripción de la figura. pero cabe recalcar que creemos necesario un poco mas
de práctica con las interrupciones y en especifico, con el
TMR1.

[1] temporizador-timer1 , MIKROE (2022).

También podría gustarte