You are on page 1of 9

Nombre: John Andrs Trujillo

Fecha: 9 de mayo de 2015


NRC: 2219

Consulta sobre temporizadores y el cdifo ASCII


La mayora de los microcontroladores tienen uno o varios timers. Sern muy tiles para medir el
tiempo que ha pasado entre dos eventos, establecer tareas para ejecutarse a intervalos regulares,
etc. Dependiendo del modelo los PICs cuentan con un nmero variable de timers. Un timer no
es ms que un contador cuya entrada est conectada al reloj del sistema. La mayora de los
timers pueden reconfigurarse como contadores. En ese caso, en lugar de contar pulsos de reloj
cuentan los pulsos que llegan a un determinado pin.
A continuacin una serie de descripciones tomadas de (El temporizador timer 0 en los
microcontroladores PIC, n.d.), (El temporizador timer 1 en los microcontroladores PIC, n.d.),
(El temporizador timer 2 en los microcontroladores PIC, n.d.) y (Cdigo ascii, n.d.)

Temporizador Timer 0
El Timer 0 es un modulo temporizador/contador de 8 bits que cuenta con un preescalador
programable tambin de 8 bits. Puede funcionar como temporizador o como contador. En modo
temporizador el valor del registro TMR0 se incrementa con cada ciclo de instruccin (o cada X
ciclos dependiendo del preescalador). En modo contador el valor del registro TMR0 se
incrementa en cada flanco (ascendente o descendente) del pin RA4/T0CKI. En ambos casos al
desbordarse (pasar de 0xFF a 0x0) el registro TMR0 la bandera de interrupcin del timer 0 (bit
T0IF del registro INTCON) se pone a 1.

El modo temporizador se selecciona poniendo a cero el bit T0CS del registro OPTION.
Poniendo a uno ese bit el modulo trabaja en modo contador, en este modo de operacin adems
se debe seleccionar si el incremento se producir en cada filo ascendente o descendente, al
poner a cero el bit T0SE del registro OPTION se selecciona el filo ascendente.
El preescalador es compartido por el Timer 0 y por el Watchdog. Se asigna a un mdulo o a otro
mediante el bit PSA del registro OPTION. Poniendo el bit a 1 el preescalador se asigna al
Watchdog y poniendolo a 0 el preescalador se asigna al Timer 0. El valor del preescalador se
selecciona con los bits PS2:PS0 de la siguiente manera:
P
S2
:P
20
0
00
0
01
0
10
0
11

1
00

T
M
R
0
1
:
2
1
:
4
1
:
8
1
:
1
6
1
:
3
2

W
D
T
1:
1
1:
2
1:
4
1:
8

1:
16

1
01

1
10

1
11

1
:
6
4
1
:
1
2
8
1
:
2
5
6

1:
32

1:
64

1:
12
8

Carga y temporizacin
En modo temporizador el Timer 0 incrementa su cuenta en cada ciclo de instruccin. Este modo
sirve para generar temporizaciones y bases de tiempo de la misma forma que los retardos por
software, sin embargo las temporizaciones con el Timer 0 pueden ser ms exactas y adems se
cuenta con la ventaja de que el mdulo puede trabajar mediante interrupciones as que el
programa puede ejecutar otras isntrucciones mientras se realiza la temporizacin.
La temporizacin que se puede obtener con este mdulo se obtiene de la siguiente relacin:

Temporizacin=[(256 precarga)PS+2]Tinstruccion
Donde:

precarga = Valor que se le asigna al registro TMR0 al comenzar la temporizacin


PS = Preescalador. Si esta asignado al watchdog tomar el valor de 1
Tinstruccin = 4/frecuencia de oscilacin

La temporizacin est dada en segundos hallando la mxima utilizando el oscilador interno del
pic 16f628 es:
Temp.max. = [(256 - 0)*256+2]*1uS = 65528uS
De modo que la temporizacion mxima que se puede tener con el es solamente de 65.538mS. Si
se desea obtener una temporizacion distinta solo se debe escribir en el registro TMR0 el valor de
la precarga necesaria.

precarga=[([Temporizacion /(4 /fosc)]2)/PS]+ 256


Donde, de nuevo, la temporizacin est dada en segundos.

Temporizador Timer 1

El Timer 1 es un mdulo temporizador/contador de 16 bits, que consiste en dos registros de 8


bits (TMR1H y TMR1L) que son de lectura y escritura. Este mdulo incrementa su cuenta
desde 0x000 hasta 0xFFFF y al desbordarse vuelve a 0x0000. Al presentarse el desborde la
bandera de interrupcin TMR1IF se pone a 1 y, si est habilitada, la interrupcin se presenta.
Este mdulo al igual que el Timer 0 puede funcionar en modo temporizador y en modo
contador. En modo temporizador el par de registros TMR1 se incrementa en cada ciclo de
instruccin, este modo se selecciona poniendo a 0 el bit TMR1CS del registro T1CON.En modo
contador el par de registros TMR1 se incrementa en cada flanco ascendente de una seal de
reloj externa, este modo se selecciona poniendo a 1 el bit TMR1CS del registro T1CON.
El preescalador del Timer 1 tiene un valor mximo de 8 y se selecciona con los
bitsT1CKPS1:T1CKPS0 de la siguiente manera:
00 = 1:1
01 = 1:2
10 = 1:4
11 = 1:8
A diferencia del Timer 0, el Timer 1 tiene la posibilidad de activar o detener la cuenta mediante
el bit TMR1ON del registro T1CON.
Carga y Temporizacin
En modo temporizador el Timer 1 incrementa su cuenta en cada ciclo de instruccin.
Latemporizacin que se puede obtener con este mdulo se obtiene de la siguiente relacin:

TempTMR 1=[ ( 65536 precarga )PS ]Tinstr


Donde:

precarga = Valor que se le asigna al par de registros TMR1 al comenzar la


temporizacin.
PS = Valor del preescalador.
Tinstr = 4/frecuencia de oscilacin
TempTMR1 = Temporizacin dada en segundos.

La temporizacin mxima utilizando el oscilador interno del pic 16f628 y el valor ms grande
de preescalador es:

TempTMR 1. Max=[( 655360)8]1uS=524288 uS


De modo que la temporizacin mxima que se puede tener con este temporizador, utilizando el
oscilador interno de 4Mhz, es de 524.288mS. Con la misma frecuencia de oscilacin el Timer 0
solamente poda lograr una temporizacin de 65.538mS as que con el Timer 1 se logran
temporizaciones de mayor duracin. Si se desea obtener una temporizacin distinta solo se debe
escribir en el par de registros TMR1 el valor de la precarga necesaria para la temporizacin
deseada.

precarga=[([Temporizacion /(4 /fosc)])/ PS]+65536

Temporizador Timer 2
El Timer 2 es un temporizador de 8 bits que tiene la particularidad de tener un
preescalador y un post-escalador. Adems este mdulo cuenta con un registro de
periodo PR2 que marca el valor mximo que puede alcanzar la cuenta del registro
TMR2. A diferencia de los otros temporizadores, el temporizador Timer 2 no incrementa
su cuenta hasta llegar a 0xFF y despus al desborde sino que incrementa su cuenta
desde 0x00 con cada ciclo de instruccin hasta que el valor del registro TMR2 coincide
con el del registro PR2 y despus, en el siguiente ciclo reinicia la cuenta desde 0x00.
Este mdulo cuenta con un preescalador y un post-escalador. El preescalador tiene la
misma funcin que en los otros dos timers y sirve como divisor de frecuencia antes de
cada incremento. El post-escalador funciona como un divisor de frecuencia despus de

cada coincidencia entre los registros TMR2 y PR2. Si el post-escalador es 1:1 la


bandera de interrupcin TMR2IF se habilitar en cada coincidencia entre TMR2 y PR2,
en cambio si por ejemplo el post-escalador es 1:16, la interrupcin se presentar cada 16
coincidencias.
Este temporizador, al igual que el Timer 1, puede habilitarse y deshabilitarse mediante
el bit TMR2ON.
El preescalador se selecciona con los bits T2CKPS1:T2CKPS0 y el post-escalador con
los bits T0UTPS3:TOUTPS0 de la siguiente manera:
Preescalador

Post-escalador

00 = 1:1

0000 = 1:1

01 = 1:4

0001 = 1:2

1x = 1:16

0010 = 1:3

.
.
.
1111 = 1:16

Carga y Temporizacin
La temporizacin del Timer 2 est dada por la siguiente expresin:
TempTMR 2=[Preescaler(PR 2+1)Postscaler ]Tinstr

Donde
Preescaler = Valor del preescalador
PR2 = Valor cargado al registro PR2
Postscaler = Valor del post-escalador
Tinstr = 4/frecuencia de oscilacin
TempTMR2 = Temporizacin dada en segundos
La temporizacin mxima que puede alcanzar el Timer 2 es la misma que alcanza el
Timer 0. Utilizando el oscilador interno del pic 16f628 la temporizacin mxima sera
de65536uS. Si se desea otra temporizacin se puede lograr cargando el valor necesario
al registro PR2.
PR2=[([TempTMR 2/(4/ fosc)])/( PreescalerPostscaler )]1

Tabla de caracteres ASCII


El cdigo ASCII (acrnimo ingls de American Standard Code for Information Interchange
Cdigo Estndar Estadounidense para el Intercambio de Informacin) es un cdigo de
caracteres basado en el alfabeto latino, tal como se usa en ingls moderno. Fue creado en 1963
por el Comit Estadounidense de Estndares (ASA).
El cdigo ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un
bit adicional (bit de paridad) que se usaba para detectar errores en la transmisin. A menudo se
llama incorrectamente ASCII a otros cdigos de caracteres de 8 bits, como el estndar ISO8859-1, que es una extensin que utiliza 8 bits para proporcionar caracteres adicionales usados
en idiomas distintos al ingls, como el espaol.
A continuacin la tabla con las equivalencias en decimal, hexadecimal y su respectivo smbolo.

Referencias
Cdigo ascii. (s.f.). Obtenido de El Cdigo ascii Sitio Web: http://www.elcodigoascii.com.ar/

El temporizador timer 0 en los microcontroladores PIC. (s.f.). Obtenido de Circuitos


Electrnicos Sitio Web: http://www.circuitoselectronicos.org/2011/04/el-temporizadortimer-0-en-los.html
El temporizador timer 1 en los microcontroladores PIC. (s.f.). Obtenido de Circuitos
Electrnicos Sitio Web: http://www.circuitoselectronicos.org/2011/04/temporizadortimer-1-en-los.html
El temporizador timer 2 en los microcontroladores PIC. (s.f.). Obtenido de Circuitos
Electrnicos Sitio Web: http://www.circuitoselectronicos.org/2011/04/temporizadortimer-2-en-los.html

You might also like