Você está na página 1de 5

UNIVERSIDAD

POLITECNICA SALESIANA
INGENIERIA ELECTRÓ NICA

TUTOR: Ing. LUIS OÑATE

ALOMOTO ARMANDO
ANDRADE JIMMY
MALDONADO SANTIAGO
OBJETIVOS

- Obtener un pulso de 90 ms de periodo mediante la función timer 1 del


PIC16F877A mediante el código respectivo para activar al pin del timer 1 como
salida de un pulso simétrico.

- Conocer los valores respectivos que se deben activar para generar el pulso
simétrico requerido mediante el análisis de la hoja de datos del PIC16F877A.

CODIGO

program ejerciciodosbienunoi

Dim L as byte
Dim A,B as byte
Dim valor as string[6]

sub procedure init


trisc=$0
trisd=$0
trisb=$0
option_reg=%10000000
intcon=%11000000
TMR1H = $50 ' initialize Timer1 register
TMR1L = $38
pie1=1
t1con=$11
L=0
A=0
B=0

Lcd_config(portc,7,6,5,4,portc,0,1,2)
lcd_cmd(lcd_cursor_off)
end sub

sub procedure interrupt


PIR1.TMR1IF = 0
TMR1H = $50 ' inicializa el registro del timer1
TMR1L = $38
if L=0 then
portb.0=0
L=1
else
portb.0=1
L=0
PIR1.TMR1IF = 0 ' clear TMR1IF

end if

end sub
main:
init
loop:
lcd_cmd(lcd_clear)
lcd_out(1,1,"UPS QUITO")
delay_ms(500)
goto loop
end.

CALCULOS

Para calcular los valores para calcular en el registro:

Calcular la frecuencia

F=valor cristal/4

F¿8/4

F=2

Calcular el tiempo de ciclo de trabajo

t = 1/2

t ¿ 0.5

Para saber cuales osn los valores que activan al byte mas significativo y menos
significativo del timer 1 seguimos la siguiente formula.

Frecuencia de la señal=tiempo*preescaler*(dato máximo del registro-X)

Despejar X y ese es el valor hexadecimal que se pondrá en los byte mas significativo y
menos significativo del timer 1.

45000us= 500 * 2 *(65536-x)

x=20536d

x=5038h

En este caso los valores para TMR1H es 50


Los valores para TMH1L es 38
MARCO TEORICO

El modulo timer1 es un temporizador/contador que consiste en 2 registros de 8 bits


(TMR1H Y TMR1L) que son regrabables y re escribibles.

El par TMR1H Y TMR1L del registro TIMER1 incrementa desde 0000h hasta FFFFh. si
es habilitada la interrupción del timer1 es generada en un sobre flujo que es
memorizada en un bit bandera de interrupción, esta interrupción puede ser habilitada
por el bit de activación TMR1IE.

Comando intcon

El comando intcon el un registro regrabable y re legible que contiene varios bit


bandera de

Bit 7 y 6 no son implementados se lee como 0

Bit 5 y 4 T1CKPS1 selector de bits de la entrada de reloj del timer1

11=1:8 VALOR DEL PRE ESCALER


10=1:4 VALOR DEL PRE ESCALER
01=1:2 VALOR DEL PRE ESCALER
00=1:1 VALOR DEL PRE ESCALER

Bit 3 T1OSCEN bit de activación de control de oscilación del timer1

Bit 2 T1SYNC (negado) bit de control de sincronización de la entrada de reloj externo.

Bit1 TMR1CS bit de selección de de fuente de reloj externa

1=reloj externo desde pin RC0


0=reloj interno

Bit 0 bit de encendido del timer1

1=activa timer1
0=desactiva timer1
REGISTRO PIR1

El registro PIR1 contiene bit de banderas individuales para interrupciones periféricas

En este caso solo activaremos el bit 0 TMR1IF

Bit0 TMR1IF bit Bandera de interruption

1= registro TMR1 se desborda (debe ser aclarado en el software)


0= registro TMR1 no se desborda.

CONCLUSIONES

- Para poder activar el timer1 debemos observar en la hoja de datos pic


16F877A los comandos que posee el timer1, en este caso, para poder saber
que bits activar, la hoja de datos nos indica que datos poner para poder activar.

- Los valores de la frecuencia que nos proporciona el cristal y el tiempo del


mismo, luego de aplicar en la formula podemos conocer que datos debemos
colocar en el código para poder activar el bye alto y el byte bajo de lso cuales
consiste el timer1 del PIC 16F877A.

BIBLIOGRAFIA

Hoja de datos PIC 16F877A, timer1, pagina 59

Você também pode gostar