You are on page 1of 6

NOMBRE DEL SUBMDULO: PROGRAMACIN DEL MICROCONTROLADOR

NOMBRE DEL ALUMNO:_________________________________________ GPO. ____

INSTRUCCIONES: CONTESTA LOS SIGUIENTES PUNTOS. EL CONOCER


LAS RESPUESTAS CORRECTAS ES REQUERIDO COMO CONOCIMIENTOS
PREVIOS PARA ENTENDER LOS PROGRAMAS QUE SE ESTUDIARN EN
ESTE DOCUMENTO.
1.- Describe en qu consiste un timer.

2.- Qu es una interrupcin en microcontrolador?

3.- Cules son los modos de operacin del TIMER0 en PIC16F887? Describe
cuales pines tienen una implicacin directa en cada modo

4.- Describe la utilidad que tiene cada uno de los siguientes registros del
PIC16F887
a) OPTION_REG
b) INTCON
4.- Traduce e interpreta los bits del registro OPTION_REG
5.- Traduce e interpreta los bits del registro INTCON
6.- En qu consiste un pre-escalador (prescaler)? Describe su tabla de
operacin en el PIC16F887.

ESTRATEGIA DIDCTICA No. 7 TIMER E INTERRUPCIONES


NOMBRE DEL DOCENTE: M.C. OSWALDO GARCA SNCHEZ oswagar@yahoo.com.mx
Sitio web personal: www.oswagar.galeon.com Act. 2012-07

NOMBRE DEL SUBMDULO: PROGRAMACIN DEL MICROCONTROLADOR


NOMBRE DEL ALUMNO:_________________________________________ GPO. ____

1.- Con la ayuda del docente analiza el siguiente programa en el que se


utiliza el TIMER0 operando en el modo CONTADOR:
/* EJEMPLO: Programa que capta 5 veces pulsos en el pin 4 (por medio del
PIN RA4 ) En este ejemplo se prepara al TIMER0 para que funcione en el
modo CONTADOR de pulsos de entrada mediante el pin RA4/TOCKI */
void main() {
ANSEL = 0; // Todos los pines de E/S se configuran como digitales
ANSELH = 0;
PORTA = 0; // Reiniciar el puerto PORTA
TRISA = 0xFF; // Todos los pines del puerto PORTA se configuran como
entradas
PORTD = 0; // Reiniciar el puerto PORTD
TRISD = 0b11110111; // Pin RD3 se configura como salida, mientras que los
dems se configuran como entradas
// -----------------------------------------------------------------------------------------------------// REGISTRO OPTION_REG
// -----------------------------------------------------------------------------------------------------// B7
B6
B5
B4
B3
B2
B1
B0
// RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
// X
X
1
1
1
X
X
X
// ----------------------------------------------------------------------------------------------------OPTION_REG.B3 = 1; // Valor del pre-escalador 1:1
OPTION_REG.B4 = 1; // Incrementa en flanco de bajada en pin RA4/T0CKI
OPTION_REG.B5 = 1; // Contador TMR0 recibe los pulsos por el pin
// RA4/TOCKI
TMR0 = 0; // Reiniciar el temporizador/contador TMR0
do {
if (TMR0 == 5)(PORTD.B3 = 1); // Si TMR0=5 entonces PORTD.B3 = 1
}
while (1); // Quedarse en el bucle infinito
}
2.- Elabora un algoritmo que describa el programa del punto 1.

ESTRATEGIA DIDCTICA No. 7 TIMER E INTERRUPCIONES


NOMBRE DEL DOCENTE: M.C. OSWALDO GARCA SNCHEZ oswagar@yahoo.com.mx
Sitio web personal: www.oswagar.galeon.com Act. 2012-07

NOMBRE DEL SUBMDULO: PROGRAMACIN DEL MICROCONTROLADOR


NOMBRE DEL ALUMNO:_________________________________________ GPO. ____

3.- Con la ayuda del docente analiza el siguiente programa en el que se


utiliza el TIMER0 en el modo TEMPORIZADOR:
/* Este programa maneja el TMR0 en el modo temporizador, siempre que se
produzca un desbordamiento en el registro del temporizador TMR0 ocurrir
una interrupcin, provocando que cambie el despliegue mediante LEDs */
unsigned cnt; // Definir la variable cnt
void interrupt() {
cnt++; // Con una interrupcin la variable cnt se incrementa en 1
TMR0 = 96; // El valor inicial se devuelve en el temporizador TMR0
/*----------------------------------------------------------------------------------------------------------REGISTRO INTCON:
-------------------------------------------------------------------------------------------------------------B7
B6
B5
B4
B3
B2
B1
B0
GIE
PEIE TOIE INTE RBIE TOIF INTF RBIF
0
0
1
0
0
0
0
0
TOIE = 1 Habilita interrupciones por TIMER0
TOIF = 0 Se asigna a cero para esperar una interrupcin debida a desborde
de TMR0
-----------------------------------------------------------------------------------------------------------*/
INTCON = 0x20; // Bit T0IE se pone a 1, el bit T0IF se pone a 0
}
//------------------------------------------------------------------------------------------------------void main() {
// ----------------------------------------------------------------------------------------------------// REGISTRO OPTION_REG
// ----------------------------------------------------------------------------------------------------// B7
B6
B5
B4
B3
B2
B1
B0
// RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
// 1
0
0
0
0
1
0
0
//
// RBPU = 1 Desactivados resistores de Pull up
// PSA= 0, PS2 = 1, PS1 = 0, PS0 = 0 prescaler 1:32
// ---------------------------------------------------------------------------------------------------OPTION_REG = 0x84; // Pre-escalador se le asigna al temporizador TMR0
ANSEL = 0; // Todos los pines de E/S se configuran como digitales
ANSELH = 0;
TRISB = 0; // Todos los pines de puerto PORTB se configuran como salidas
PORTB = 0x0; // Reiniciar el puerto PORTB
TMR0 = 96; // Temporizador T0 cuenta de 96 a 255
ESTRATEGIA DIDCTICA No. 7 TIMER E INTERRUPCIONES
NOMBRE DEL DOCENTE: M.C. OSWALDO GARCA SNCHEZ oswagar@yahoo.com.mx
Sitio web personal: www.oswagar.galeon.com Act. 2012-07

NOMBRE DEL SUBMDULO: PROGRAMACIN DEL MICROCONTROLADOR


NOMBRE DEL ALUMNO:_________________________________________ GPO. ____
/*-----------------------------------------------------------------------------------------------------------REGISTRO INTCON:
-------------------------------------------------------------------------------------------------------------B7
B6
B5
B4
B3
B2
B1
B0
GIE
PEIE TOIE INTE RBIE TOIF INTF RBIF
1
0
1
0
0
0
0
0
GIE = 1 Hablitador General de Interrupciones
TOIE = 1 Habilita interrupciones por TIMER0
------------------------------------------------------------------------------------------------------------*/
INTCON = 0xA0; // Habilitada interrupcin TMR0
cnt = 0; // A la variable cnt se le asigna un 0
do { // Bucle infinito
if (cnt == 400) { // Incrementar el puerto PORTB despus 400 interrupciones
PORTB = PORTB++; // Incrementar nmero en el puerto PORTB en 1
cnt = 0; // Reiniciar la variable cnt
}
} while(1); // regresa al do repetidamente
}
4.- Elabora un algoritmo que describa el programa del punto 3.

5.- Por qu se asign el valor 96 a TMR0?

ESTRATEGIA DIDCTICA No. 7 TIMER E INTERRUPCIONES


NOMBRE DEL DOCENTE: M.C. OSWALDO GARCA SNCHEZ oswagar@yahoo.com.mx
Sitio web personal: www.oswagar.galeon.com Act. 2012-07

NOMBRE DEL SUBMDULO: PROGRAMACIN DEL MICROCONTROLADOR


NOMBRE DEL ALUMNO:_________________________________________ GPO. ____

1.- Teclea compila y simula estos dos ejemplos en el software de mikroC.


2.- Graba cada archivo HEX correspondiente a los programas estudiados y
prubalos implementando el circuito en protoboard.
CIRCUITO PARA PROBAR EL TIMER 0 EN MODO CONTADOR:

3.- Escribe tus observaciones personales al observar lo que sucede al


implementar y probar correctamente el circuito:

ESTRATEGIA DIDCTICA No. 7 TIMER E INTERRUPCIONES


NOMBRE DEL DOCENTE: M.C. OSWALDO GARCA SNCHEZ oswagar@yahoo.com.mx
Sitio web personal: www.oswagar.galeon.com Act. 2012-07

NOMBRE DEL SUBMDULO: PROGRAMACIN DEL MICROCONTROLADOR


NOMBRE DEL ALUMNO:_________________________________________ GPO. ____
CIRCUITO PARA PROBAR EL TIMER 0 EN MODO TEMPORIZADOR:

4.- Describe lo que sucede al implementar y probar correctamente el circuito:

5.- Crea dos programas, con los que apliques la utilidad de cada uno de los
ejemplos estudiados.
FECHA LMITE PARA PRESENTAR Y SELLAR ESTA ESTRATEGIA:
______________
SELLO DEL MAESTRO:

NOMBRE DEL ALUMNO(A):______________________________________


FECHA: ________________________________
ESTRATEGIA DIDCTICA No. 7 TIMER E INTERRUPCIONES
NOMBRE DEL DOCENTE: M.C. OSWALDO GARCA SNCHEZ oswagar@yahoo.com.mx
Sitio web personal: www.oswagar.galeon.com Act. 2012-07

You might also like