Nombre: John Andrés Trujillo

Fecha: 9 de mayo de 2015
NRC: 2219

Consulta sobre temporizadores y el códifo ASCII
La mayoría de los microcontroladores tienen uno o varios timers. Serán 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 número variable de timers. Un timer no
es más que un contador cuya entrada está conectada al reloj del sistema. La mayoría 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 continuación 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 (Código ascii, n.d.)

Temporizador Timer 0
El Timer 0 es un modulo temporizador/contador de 8 bits que cuenta con un preescalador
programable también de 8 bits. Puede funcionar como temporizador o como contador. En modo
temporizador el valor del registro TMR0 se incrementa con cada ciclo de instrucción (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 interrupción del timer 0 (bit
T0IF del registro INTCON) se pone a 1.

El preescalador es compartido por el Timer 0 y por el Watchdog. en este modo de operación además se debe seleccionar si el incremento se producirá en cada filo ascendente o descendente. Poniendo el bit a 1 el preescalador se asigna al Watchdog y poniendolo a 0 el preescalador se asigna al Timer 0. Se asigna a un módulo o a otro mediante el bit PSA del registro OPTION.El modo temporizador se selecciona poniendo a cero el bit T0CS del registro OPTION. 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 . al poner a cero el bit T0SE del registro OPTION se selecciona el filo ascendente. Poniendo a uno ese bit el modulo trabaja en modo contador.

Este modo sirve para generar temporizaciones y bases de tiempo de la misma forma que los retardos por software. Si se desea obtener una temporizacion distinta solo se debe escribir en el registro TMR0 el valor de la precarga necesaria.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 temporización En modo temporizador el Timer 0 incrementa su cuenta en cada ciclo de instrucción.0)*256+2]*1uS = 65528uS De modo que la temporizacion máxima que se puede tener con el es solamente de 65. = [(256 . de nuevo. Temporizador Timer 1 .max. precarga=−[([Temporizacion /(4 /fosc)]−2)/PS]+ 256 Donde. sin embargo las temporizaciones con el Timer 0 pueden ser más exactas y además se cuenta con la ventaja de que el módulo puede trabajar mediante interrupciones así que el programa puede ejecutar otras isntrucciones mientras se realiza la temporización. la temporización está dada en segundos. La temporización que se puede obtener con este módulo se obtiene de la siguiente relación: Temporización=[(256− precarga)∗PS+2]∗Tinstruccion Donde:    precarga = Valor que se le asigna al registro TMR0 al comenzar la temporización PS = Preescalador. Si esta asignado al watchdog tomará el valor de 1 Tinstrucción = 4/frecuencia de oscilación La temporización está dada en segundos hallando la máxima utilizando el oscilador interno del pic 16f628 es: Temp.538mS.

que consiste en dos registros de 8 bits (TMR1H y TMR1L) que son de lectura y escritura. Si se desea obtener una temporización distinta solo se debe escribir en el par de registros TMR1 el valor de la precarga necesaria para la temporización deseada. PS = Valor del preescalador. Este módulo incrementa su cuenta desde 0x000 hasta 0xFFFF y al desbordarse vuelve a 0x0000.538mS así que con el Timer 1 se logran temporizaciones de mayor duración. este modo se selecciona poniendo a 1 el bit TMR1CS del registro T1CON.El Timer 1 es un módulo temporizador/contador de 16 bits. Tinstr = 4/frecuencia de oscilación TempTMR1 = Temporización dada en segundos. Max=[( 65536−0)∗8]∗1uS=524288 uS De modo que la temporización máxima que se puede tener con este temporizador. utilizando el oscilador interno de 4Mhz. precarga=−[([Temporizacion /(4 /fosc)])/ PS]+65536 . la interrupción se presenta. En modo temporizador el par de registros TMR1 se incrementa en cada ciclo de instrucción. Con la misma frecuencia de oscilación el Timer 0 solamente podía lograr una temporización de 65. Al presentarse el desborde la bandera de interrupción TMR1IF se pone a 1 y. Carga y Temporización En modo temporizador el Timer 1 incrementa su cuenta en cada ciclo de instrucción. si está habilitada. es de 524. Este módulo al igual que el Timer 0 puede funcionar en modo temporizador y en modo contador. El preescalador del Timer 1 tiene un valor máximo 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.288mS. La temporización máxima utilizando el oscilador interno del pic 16f628 y el valor más grande de preescalador es: TempTMR 1. el Timer 1 tiene la posibilidad de activar o detener la cuenta mediante el bit TMR1ON del registro T1CON. este modo se selecciona poniendo a 0 el bit TMR1CS del registro T1CON. Latemporización que se puede obtener con este módulo se obtiene de la siguiente relación: TempTMR 1=[ ( 65536− precarga )∗PS ]∗Tinstr Donde:     precarga = Valor que se le asigna al par de registros TMR1 al comenzar la temporización.En modo contador el par de registros TMR1 se incrementa en cada flanco ascendente de una señal de reloj externa.

Este módulo cuenta con un preescalador y un post-escalador. El preescalador tiene la misma función 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 después de . A diferencia de los otros temporizadores. Además este módulo cuenta con un registro de periodo PR2 que marca el valor máximo que puede alcanzar la cuenta del registro TMR2. en el siguiente ciclo reinicia la cuenta desde 0x00.Temporizador Timer 2 El Timer 2 es un temporizador de 8 bits que tiene la particularidad de tener un preescalador y un post-escalador. el temporizador Timer 2 no incrementa su cuenta hasta llegar a 0xFF y después al desborde sino que incrementa su cuenta desde 0x00 con cada ciclo de instrucción hasta que el valor del registro TMR2 coincide con el del registro PR2 y después.

. la interrupción se presentará cada 16 coincidencias. en cambio si por ejemplo el post-escalador es 1:16. Si el post-escalador es 1:1 la bandera de interrupción TMR2IF se habilitará en cada coincidencia entre TMR2 y PR2. Este temporizador. 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 Temporización La temporización del Timer 2 está dada por la siguiente expresión: 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 oscilación  TempTMR2 = Temporización dada en segundos La temporización máxima que puede alcanzar el Timer 2 es la misma que alcanza el Timer 0. Si se desea otra temporización se puede lograr cargando el valor necesario al registro PR2. . PR2=[([TempTMR 2/(4/ fosc)])/( Preescaler∗Postscaler )]−1 . al igual que el Timer 1. Utilizando el oscilador interno del pic 16f628 la temporización máxima sería de65536uS. puede habilitarse y deshabilitarse mediante el bit TMR2ON.cada coincidencia entre los registros TMR2 y PR2.

. A continuación la tabla con las equivalencias en decimal. El código ASCII utiliza 7 bits para representar los caracteres. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA). aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés. como el español. como el estándar ISO8859-1. hexadecimal y su respectivo símbolo. Tabla de caracteres ASCII El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estándar Estadounidense para el Intercambio de Información) es un código de caracteres basado en el alfabeto latino. tal como se usa en inglés moderno. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits.

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

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