TEMPORIZADOR 1, 2, 3, 4, 5, 6, 7, 8,... Registro de conteo de pulsos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMPORIZADOR 1, 2, 3, 4, 5, 6, 7, 8,... Registro de conteo de pulsos"

Transcripción

1 TEMPORIZADORES

2 DEFINICION TEMPORIZADOR. - Dispositivo periférico programable que tiene la facultad de contar pulsos de reloj o pulsos externos al sistema TEMPORIZADOR 1, 2, 3, 4, 5, 6, 7, 8,... Registro de conteo de pulsos

3 Temporizador Microcontrolador Dispositivo externo Timer/contador Oscilador Selección Temporizador o Contador de eventos externos

4 Temporizador Preescalador (divisor de frecuencia).- Toma N pulsos de entrada y genera un solo pulso de salida. Generador de pulsos No usa el preescalador Preescalador 2: Al temporizador Preescalador 4:1... Preescalador 256:1

5 Temporizador Generador de pulsos Usa el preescalador Preescalador 2: Al temporizador Generador de pulsos 1 2 Al temporizador Usa el preescalador Preescalador 4:1

6 Temporizador Postescalador (divisor de frecuencia).- Cuenta el número de veces que se desborda el timer. Cuando se cumple el número predeterminado se activa la bandera del temporizador Temporizador/ contador Se desborda 4 veces el timer Postescalador 1:1 Se activa 4 veces la bandera TF

7 Temporizador Temporizador/ contador Postescalador 2:1 Se desborda Se activa 4 veces 2 veces la el timer bandera TF Temporizador/ contador Se desborda 4 veces el timer Postescalador 4:1 Se activa 1 vez la bandera TF

8 Temporizador/contador El PIC16F877 tiene 3 timer/counter (temporizador/contador) TMR0 Contador de 8 bits, con un pre-escalador escalador de 8 relaciones (2, 4, 8, 16, 32,64, 128, 256) ) TMR1 Contador de 16 bits, con un pre-escalador escalador de 4 relaciones (2, 4, 8, 16) TMR2 Contador de 8 bits, con un pre-escalador escalador (1, 4, 16), un post-escalador ( 12, 13, 14, 15, 16) ) y un registro de periodo PR2 escalador (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

9 TIMER 0 Temporizador de pulsos de reloj interno y contador de pulsos externos.

10 TIMER0 Este temporizador/contador tiene un registro de conteo de pulsos, que se denomina de la misma forma TMR0. Es accesible desde d código, se puede verificar su valor por programa.

11 TIMER0 El conteo de este registro es incremental. Cuando se desborda, se necesita recargar el valor de conteo, para evitar conteos erróneos. Se quiere contar 5 pulsos pero no se recarga el valor de conteo. Se quiere contar 4 pulsos y se recarga el valor de conteo. TMR0 = 251 cargamos el valor inicial TMR0 = 252 TMR0 = 253 TMR0 = 254 TMR0 = 255 TMR0 = 0 desborde del timer TMR0 = 1 TMR0 = 2 TMR0 = 3 TMR0 = 4 TMR0 = 5 no hay desborde TMR0 = 6... TMR0 = 252 cargamos el valor inicial i i TMR0 = 253 TMR0 = 254 TMR0 = 255 TMR0 = 0 desborde del timer TMR0 = 252 recargamos el valor inicial TMR0 = 253 TMR0 = 254 TMR0 = 255 TMR0 = 0 desborde del timer TMR0 = 252 recargamos el valor inicial TMR0 = 253

12 TMR0 (registro OPTION_REG) Bit Nombre Función 7 /RBPU Activa las resistencias de PULL UP del puerto B. 6 INTEDG 5 TOCS 4 TOSE 3 PSA 0-2 PS2 PS1 PS0 Selecciona el filo de activación de la interrupción externa. Selección de fuente de entrada de pulso para el TMR0 1 = Incremento del contador por pulso en la terminal T0CKI 0 = Pulso interno cada ciclo de maquina (CLKOUT) Selección del filo de incremento del TMR0 1 = Incremento en transición negativa en la terminal T0CKI 0 = Incremento en transición positiva en la terminal T0CKI Asignación del preescalador 1 = El Preescalador es asignado al WDT 0 = El Preescalador es asignado al modulo Timer0 Selección de la escala del Preescalador Valor escala TMR0 escala WDT : 2 1 : : 2 1 : : 4 1 : : 8 1 : : 16 1 : : 32 1 : : 64 1 : : 64 1 : : : : : 128

13 TMR0

14 Configuración del TMR0 Se tiene que asignar valores a los siguientes registros: TMR0.- valor de conteo. OPTION_REG.- Configuración del TIMER0. INTCON (opcional).- Configuración de interrupción.

15 Configuración del TMR0 Si queremos que el TMR0 haga: Un conteo de 10 microsegundos usando un cristal de 4 MHz. Como el registro TMR0 puede contar hasta 256 pulsos, en esta ocasión no será necesario usar el preescalador. Tbuscado en μseg TMR0 256 Pr eescalador 4 T ciclo il de reloj lj 10μseg μ seg 10 TMR //Instrucciones de configuración OPTION_REG = 0b ; TMR0 = 246;

16 Configuración del TMR0 Si queremos que el TMR0 haga: Un conteo de 10 ms ( microsegundos ) usando un cristal de 4 MHz. Como no podemos contar los pulsos con el registro tenemos que usar el preescalador. Tbuscado en μ TMR0 256 Pr eescalador 4 T seg ciclo de maquina μseg μseg TMR //Instrucciones de configuración OPTION_REG = 0b ; TMR0 = 217;

17 Configuración del TMR0 Si queremos que el TMR0 haga: Un conteo de 150 pulsos externos utilizando RA4/TOCK0 No es necesario usar el preescalador Para el conteo se utilizará flanco negativo # pulsos externos 150 TMR Pr eescalador 1 TMR0 106 //Instrucciones de configuración OPTION_REG = 0b ; TMR0 = 106;

18 Registros asociados al TMR0 El registro INTCON nos sirve para: Activar al TMR0 ( T0IE ) Activar el vector de interrupciones i ( GIE ) Verificación de Bandera del TMR0 ( T0IF )

19 Maneras de utilizar los recursos. Poleo.- Verificación constante dentro del programa de la bandera del TMR0 ( INTCON.T0IF ) Interrupción.- Cuando la bandera del TMR0 se activa (1) el programa deja el programa principal p y va hacia el vector de interrupciones (dirección 0004h)

20 Interrupciones El PIC16F87X tiene implementado 14 fuentes de interrupción. 1. Cambio en PORTB nible alto 2. Interrupcion externa Desborde en el TIMER0. 4. Desborde en el TIMER1. 5. Desborde en el TIMER2. 6. Escritura de la memoria EEPROM. 8. Termino de conversión del convertidor analógico-digital. 9. Recepción de puerto serial. 10. Transmisión de puerto serial. 11. Puerto serial síncrono. 12. Modulo de captura/comparación/pwm Modulo de captura/comparación/pwm Recepción o transmisión de puerto paralelo esclavo. 14. Colisión de datos en el bus I 2 C.

21 Registro INTCON Bit Nombre Función 7 GIE 6 PEIE 5 T0IE 4 INTE 3 RBIE Habilitación de interrupción general (permite el uso del vector de interrupciones). 1 = Habilita todas las interrupciones mascarables. 0 = Deshabilita todas las interrupciones. Habilitación de interrupción de periféricos. 1 = Habilita todas las interrupciones mascarables de periféricos 0 = Deshabilita todas las interrupciones de periféricos. Habilitación de interrupción de desborde del TMR0 1 = Habilita la interrupción del TMR0. 0 = Deshabilita la interrupción del TMR0. Habilitación de la interrupción externa de terminal RB0/INT 1 = Habilita la interrupción externa. 0 = Deshabilita la interrupción externa Habilitación de la interrupción de cambio en el puerto B (RB4-RB7). 1 = Habilita la interrupción. 0 = Deshabilita la interrupción.

22 Registro INTCON 2 TOIF 1 INTF 0 RBIF Bandera de interrupción de desborde del TMR0. 1 = El registro TMR0 se ha desbordado. 0 = El registro TMR0 no se ha desbordado. Bandera de interrupción externa de la terminal RB0/INT. 1 = La interrupción externa RB0/INT ha ocurrido. 0 = La interrupción externa RB0/INT no ha ocurrido. Bandera de interrupción de cambio en el puerto B (nible alto). 1 = Al menos uno de las terminales del puerto B ha cambiado. Una condición de igualación será colocado en este bit. Una lectura del puerto B finalizara la igualación y permitirá que sea borrado este bit. 0 = Ninguna de las terminales del PB ha cambiado de estado.

23 Vector de interrupciones El PIC16F877 maneja únicamente un solo vector de interrupciones. Todos los recursos que pueden generar una interrupción llegan siempre a él. La dirección física en donde se encuentra dicho vector es la dirección 0004h.

24 Vector de interrupciones Las interrupciones pueden ser manejadas fácilmente en MIKROC usando la palabra reservada interrupt. void interrupt(void void); void interrupt(void) {. } ); // Definición de la función prototipo. // Definición de función.. // Escribe el código de la subrutina de interrupción. // (cuerpo de función)..

25 Vector de interrupciones 2 MikroC guarda los siguientes registros SFR en el stack cuando se ejecuta la interrupción y los recupera cuando se termina la rutina: PIC12 : W, STATUS, FSR, PCLATH PIC16 : W, STATUS, FSR, PCLATH PIC18 : FSR (WREG, STATUS, BSR) Nota: MikroC no soporta interrupciones de baja prioridad; para los PIC18XXX, las interrupciones deben ser de prioridad alta.

26 Vector de interrupciones 3 Se puede llamar funciones desde la rutina de interrupción. El compilador guarda los registros que se usan en ambos procedimientos, programa principal como la ISR. void interrupt(void p(void) {. escribe();. } // Llamada a función void escribe(void) { PORTB.F0 = 1; }

27 Vector de interrupciones 4 Condiciones para funciones llamadas en la ISR: No debe usar la pila, o el stack debe ser salvado antes de la llamada y restaurado posteriormente. Debe usar variables globales l únicamente (no se permiten variables locales o pasar parámetros a la función). Nunca utilizar retardos por software dentro de una ISR. Nota: Para que el enlazador de mikroc reconozca estas funciones, es necesario hacer una llamada fantasma en código C, fuera del cuerpo de la interrupción (en alguna funcion o dentro del programa principal): if (0) func1();

28 Vector de interrupciones (ejemplo( 1) Para manejar la interrupción del TMR0, siendo el único periférico que genera una interrupción: void interrupt(void) { // ISR TMR0 } INTCON.F2 = 0; // // Baja la bandera del TMR0 TMR0 = 96; // Recarga del valor de conteo counter++; // incrementa un contador

29 Vector de interrupciones (ejemplo 2) En caso de interrupciones múltiples, se necesita probar cual de las interrupciones esta ocurriendo y entonces proceder con su ISR: void interrupt() { if (INTCON.TMR0IF) { // ISR TMR0 INTCON.F2 = 0; // T0IF = 0 TMR0 = 96; counter++; } else } if (INTCON.RBIF) { // ISR nible alto PUERTO B INTCON.F0 = 0; // RBIF = 0 counter--; }

30 Funciones 1 Fundamentales en la programación en C. Definidas como subprogramas, los cuales regresa un valor basado en un número de parámetros de entrada. Equivalentes a los procedimientos en otros lenguajes de programación, tales como Pascal

31 Funciones 2 Declaradas como prototipos en archivos de encabezados o dentro de programas. Tienen enlazamiento externo y son accesibles desde cualquier archivo en el programa. Son declaradas en el archivo fuente o están disponibles en librerías precompiladas.

32 Declaración de funciones 1 tipo_resultado nombre_función ( lista-parámetros ); El nombre_función debe ser un identificador válido. Este nombre es usado para llamar a la función; El tipo_resultado representa el tipo de resultado que dará la función, y puede ser cualquier tipo predefinido o definido por el usuario. Para funciones que no regresan valores se debe usar el tipo void.. ( int por default ) El tipo puede ser un apuntador. Por ejemplo: float * significa que la función regresara como un apuntador un valor tipo flotante. Apuntadores genéricos ( void * ) son también permitidos. Las funciones no pueden regresar un arreglo u otra función.

33 Declaración de funciones 2 tipo_resultado nombre_función ( lista-parámetros ); Entre paréntesis, lista_parámentros es una lista formal de argumentos que una función toma. Esta declaración especifica el tipo de dato para cada uno de los parámetros de la función. El compilador usa esta información para verificar si las llamadas a las funciones son validas. Si la lista esta vacía, la función no tomara argumentos. Al igual que si la lista es de tipo void. Cada argumento necesita su propio tipo de dato y posible calificador constante o volátil.

34 Funciones prototipos Permite un mejor control sobre el número de argumentos y verificación de tipo de datos, así como la conversión entre tipos de variables. Dos prototipos para una misma función: int test ( const char * ) ; /* declara la función test */ int test ( const char *p ) ; /* declara la misma función test */ Las funciones prototipos son de gran ayuda para documentar los códigos.

35 Funciones prototipos 2 Por ejemplo: La función Cf_Init toma dos parámetros: puerto de Control y puerto de Datos. La pregunta es, cual es cual? void Cf_Init(char *ctrlport, char *dataport); La función prototipo lo hace mas claro. Si un archivo de cabecera contienen funciones prototipos, se puede leer este archivo para tener información para escribir programas que hagan llamadas a estas funciones.

36 Escribiendo funciones 1 Consiste en su declaración (nombre, parámetros y resultados) y en el cuerpo de la función ( instrucciones encerradas entre { } ). Todas las variables declaradas dentro de la función son locales a la función. Para regresar un resultado, se usa la instrucción return.

37 Escribiendo funciones 2 Función simple: /* La función max regresa el argumento mas grande: */ int max(int x, int y) { return (x >= y)? x : y; } Función que modifica los valores de los apuntadores: /* La función convierte coordenadas rectangulares (x,y) a polar (r,fi): */ #include <math.h> void polar(double x, double y, double *r, double *fi) { *r = sqrt(x * x + y * y); *fi = (x == 0 && y == 0)? 0 : atan2(y, x); return; */ } /* esta línea puede ser omitida

38 Contador de segundos ( (problema) Se desea generar un contador de segundos ( ), utilizando para generar los retardos el temporizador/contador TMR0.

39 Contador de segundos ( (algoritmo) 1. Inicializa variable contador, puertos y LCD 2. Convierte contador a cadena a 3. Envía a LCD 4. Retardo de 1 segundo usando TMR0 5. Incrementa contador 6. Si contador es menor a 100 ir a 2 7. Contador igual a cero 8. Ir a 3

40 Contador de segundos ( (diagrama de flujo 1) contador Inicia puertos y LCD short conteo ( short cuenta ); void retardo ( void ); Inicia variable void main ( void ) { short contador; Lcd_Init ( &PORTB ); contador = 0; while(1) { contador = conteo ( contador ); } } Conteo

41 Contador de segundos ( (diagrama de flujo 2) conteo Convierte numero a ASCII short conteo ( short cuenta ) { char datos[6]; ShortToStr ( cuenta, datos ); Lcd_Out ( 2, 1, datos ); retardo(); cuenta ++; if ( cuenta >= 100 ) { cuenta = 0 ; } Envía a LCD } return cuenta; Retardo de un segundo Contador 100 Contador = 0 Incrementa contador Fin conteo

42 Contador de segundos (diagrama de flujo 3) void retardo ( void ) { short decima = 0; retardo Configura TMRO TMRO = valor inicial Habilita temporizador } OPTION_REG = 0b ; TMR0 = 217; INTCON = 0x20; do { while ( INTCON.F2 == 0 ) { ; } INTCON.F2 = 0; TMR0 = 217; decima ++; } while ( decima <= 100 ); INTCON = 0; Si TMR0F == 0 décima 100 Si No No Limpia TMR0F TMR0 = valor iniciali i Incrementa décima décima = 0 Deshabilita TMR0 Fin retardo

43 Contador de segundos ( (diagrama esquemático)

44 Contador de segundos (programa_1_1) short conteo ( short cuenta ); void retardo ( void ); void main ( void ) { short contador; Lcd_Init ( &PORTB ); contador = 0; while(1) { contador = conteo ( contador ); } }

45 Contador de segundos (programa_1_2) short conteo ( short cuenta ) { char datos[6]; void retardo ( void ) { short decima = 0; } ShortToStr ( cuenta, datos ); Lcd_Out ( 2, 1, datos ); retardo(); cuenta ++; if ( cuenta >= 100 ) { cuenta = 0 ; } return cuenta; OPTION_REG = 0b ; TMR0 = 217; INTCON = 0x20; do { while ( INTCON.F2 == 0 ) { ; } INTCON.F2 = 0; TMR0 = 217; decima ++; } while ( decima <= 100 ); INTCON = 0; }

46 Contador de segundos (Programa 2_1 diagrama de flujo 1) contador Configura TIMER0 Inicia LCD Inicia variable Manda mensaje Cambio la variable? Si Imprime variable No

47 Contador de segundos (Programa 2_1 diagrama de flujo 2) Interrupción Recarga TIMER0 Baja la bandera del TMR0 Incrementa variable Limpia variable Incrementa segundos Variable 100? Si Segundos 100? Si Limpia segundos No No IRET

48 Contador de segundos (programa_2_1) short contador, segundo; void interrupt ( void ) { TMR0 = 217; INTCON.F2 = 0; contador ++; if( contador >= 100 ) { contador = 0; segundo++; if ( segundo >= 100 ) { segundo = 0; } } } void main ( void ) { char cadena [6]; short anterior = 255; OPTION_REG = 0x07; TMR0 = 217; INTCON = 0xA0; // 0b Lcd_Init ( &PORTB ); Lcd_Out (1, 1, Contador ); Lcd_Out (2, 1, usando INTERRUPCION ); contador = segundo = 0; while(1) { if ( anterior!= segundo ) { ShortToStr ( segundo, cadena ); Lcd_Out ( 3, 1, cadena ); anterior = segundo; } } }

49 Problema propuesto 1 1. Escriba un programa que realice el conteo de décimas de segundos y segundos. Las décimas deben ir desde 0-9, mientras que los segundos deben ir de Programa que cuente las veces que se presiona un pulsador conectado en el puerto RA4 dentro de un tiempo de 60 segundos.

50 Button(/*atributos*/) /) unsigned short Button( unsigned short *puerto, unsigned short pin, unsigned short tiempo, unsigned short estado_activo activo ); Descripción.- La función elimina la influencia de los rebotes cuando se presiona un pulsador. puerto y pin especifican la terminal donde se encuentra conectado el pulsador. tiempo especifica el tiempo mínimo, en ms, que tiene que estar activado el pulsador para que la función regrese un valor verdadero. estado_activo puede ser 0 o 1, y determina si el pulsador es activado cuando proporcione un cero lógico o un uno lógico.

51 Button(/*atributos*/) /) Ejemplo: Se lee un pulsador conectado a la terminal RB0; Si se tiene una transición ió de 1 to 0 (el pulsador se suelta), el PORTD es invertido: do { if (Button(&PORTB, 0, 1, 1)) oldstate = 1; if (oldstate && Button(&PORTB, 0, 1, 0)) { PORTD = ~PORTD; oldstate = 0; } } while(1);

52 2.- Contador de segundos condicionado (problema)) Utilice el programa resuelto numero 1. El contador constara de tres botones. El botón 1 (encendido) comienza el conteo, el botón 2 (apagar) detendrá y reiniciará el conteo y el botón 3 (detener) detendrá y continuará el conteo.

53 Contador de segundos condicionado (algoritmo)) 1. Inicializa variable contador,,p puertos y LCD 2. Si no encendido ir a 2 3. Si apagar ir a 2 4. Si detener ir a 3 5. Convierte contador a cadena 6. Envía a LCD 7. Retardo de 1 segundo usando TMR0 8. Incrementa contador 9. Si contador es menor a 100 ir a Contador igual a cero 11. Ir a 3

54 Contador de segundos condicionado contador (diagrama de flujo) Inicializa puertos (LCD) Inicializa contador No Encendido? Limpia variable Si Detener Si Si Apagado? No No conteo

55 Contador de segundos condicionado (diagrama esquemático )

56 Contador de segundos condicionado (programa)) short conteo ( short cuenta ); void retardo ( void ); void main ( void ) { short contador; TRISD =255; Lcd_Init ( &PORTC ); Lcd_Out ( 1, 1, contador de ); contador = 0; while(1) { while( PORTD.F0 == 1 ); // Botón de encendido desactivado? while( PORTD.F1 == 1 ) // Botón de apagado activado? { if ( PORTD.F2 == 1) // Botón de detener activado? contador = conteo ( contador ); } contador = 0; } }

57 Problema 2 Realice el problema anterior, ahora usando el TMR0 como interrupción por hardware. También utilice la función predefinida Button.

58 T I M E R 1 Temporizador número 1 de pulsos de reloj interno y contador de pulsos externos.

59 TMR1 Tiene las misma características que el TMR0. Temporizador y contador (RC0). Diferencias: i Registro de 2 bytes (TMR1H y TMR1L). Preescalador (1:1, 1:2, 1:4, 1:8) Generador de reloj (RC0 y RC1)

60 TMR1 como oscilador Cuando se habilita (T1OSCEN)) las terminales RC1/T1OSI/CCP2 y RC0/T1OSO/T1CKI se convierten en entradas. Se genera una frecuencia de oscilación de hasta 200 khz, usando un cristal de: khz ó 100 khz ó 200 khz. Funciona a pesar de la condición SLEEP.

61 Ejemplos Se quiere contar 5 pulsos pero no se recarga el valor de conteo. TMR1H : TMR1L = ( 0xFFFB ) TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = 0 desborde del timer TMR1H : TMR1L = 1 TMR1H : TMR1L = 2 TMR1H : TMR1L = 3 TMR1H : TMR1L = 4 TMR1H : TMR1L = 5 no hay desborde TMR1H : TMR1L = 6... TMR1 Se quiere contar 4 pulsos recargando el valor de conteo. TMR1H : TMR1L = ( 0xFFFC ) TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = 0 desborde del timer TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = 0 desborde del timer TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = TMR1H : TMR1L = 0 desborde del timer TMR1H : TMR1L = TMR1H : TMR1L = 65533

62 TMR1 Bit Nombre Función 5:4 T1CKPS1: T1CKPS0 Selección del preescalador del Timer1 11 = 1:8 10 = 1:4 01 = 1:2 00 = 1:1 3 T1OSCEN Habilitación del oscilador del Timer1. 1 = Habilita el oscilador. 0 = El oscilador esta desactivado (el inversor se apaga para eliminar el consumo de potencia). 2 /T1SYNC 1 TMR1CS Control de sincronización de entrada del reloj externo del Timer1 Cuando TMR1CS = 1: 1 = No se sincroniza la entrada del reloj externo. 0 = Se sincroniza la entrada del reloj externo. Cuando TMR1CS = 0: Este bit es ignorado. El Timer1 usa el reloj interno. Selecciona la fuente de reloj para el Timer1. 1 = El reloj es externo desde la terminar RC0/T1OSO/T1CKI (En el filo de caida) 0 = Reloj interno (FOSC/4) 0 TMR1ON Encendido del Timer1. 1 = Encendido. 0 = Detiene el Timer1

63 TMR1 Cuando T1OSCEN esta desactivado (0) el inversor se deshabilita evitando el consumo de energía.

64 Configuración del TMR1 Se tiene que asignar valores a los siguientes registros: it TMR1H y TMR1L.- valor de conteo. TMR1H : byte alto TMR1L : byte bajo. T1CON.- Configuración del TIMER 1. INTCON (opcional).- Configuración de interrupción. PIE1 (opcional).- Habilitación del Timer 1. PIR1 (opcional).- Bandera de desborde del Timer 1.

65 Configuración del TMR1 Si se requiere un temporizador (timer 1) que haga: Un conteo de 10 microsegundos usando un cristal de 20 MHz. Como los registros puede contar desde 1 hasta pulsos, en esta ocasión no será necesario usar el preescalador. Tbuscado en μseg TMR 1 H : TMR 1 L Pr eescalador 4 T ciclo de reloj 10 μseg μseg TMR1H : TMR1L ( 0xFFCE ) //Instrucciones de configuración T1CON = 0b ; TMR1H = 0xFF; TMR1L = 0xCE;

66 Configuración del TMR1 Si se requiere que el Timer 1 haga: Un conteo de 200 ms ( microsegundos ) usando un cristal de 8 MHz. Como no podemos contar los pulsos con el registro tenemos que usar el preescalador. Tbuscado en μseg TMR1H : TMR1L Pr eescalador 4 T periodo de reloj μseg μseg TMR1H : TMR1L ( 0x3CB0 ) 4 //Instrucciones de configuración T1CON = 0b ; TMR1H = 0x3C; TMR1L = 0xB0;

67 Configuración del TMR1 Si queremos que el Timer 1 haga: Un conteo de 7500 pulsos externos utilizando RC0/T1OSCI/T1CKI No es necesario usar el preescalador Sin sincronización. # pulsos externos TMR1H : TMR1L Pr eescalador TMR1H : TMR1L ( 0xE2B4 ) //Instrucciones de configuración T1CON = 0b ; TMR1H = 0xE2; TMR1L = 0xB4;

68 Registros asociados al TMR1 INTCON.- Configurando GIE y PEIE, para activar el vector de interrupciones y activar los registros PIE1, PIE2, PIR1 y PIR2, respectivamente. PIE1.- Activar TMR1IE ( Inicia el uso de la bandera de desborde del Timer 1 ). PIR1.- Verificar TMR1IF ( Bandera de desborde del Timer 1 ).

69 Frecuencímetro Diseñar un programa que indique la frecuencia de giro de un motor. Dicho programa utilizara el timer 1 como medidor de tiempo entre impulso e impulso.

70 Frecuencímetro ( (Algoritmo) 1. Configurar interrupción externa para detectar vuelta del motor. 2. Configurar Timer 1 como o temporizador, sin encenderlo. 3. Si es el segundo pulso, ir a No es el segundo pulso, ir a 3 5. Determina frecuencia. 6. Imprime frecuencia. 7. Ir a 3.

71 Frecuencímetro ( (algoritmo ISR Frecuencímetro (algoritmo ISR) 1. Reinicia la interrupción externa. 2. Cuenta pulso. 3. Si es primer pulso ir a 5 4. No es el primer pulso ir a 7 5. Enciende temporizador Salir de ISR. 7. Apaga temporizador. 8. Reinicia contador de pulsos. 9. Salir de ISR.

72 Frecuencimetro ( diagrama de flujo 1) frecuencimetro Configura INT-EXT Timer 1 2 pulsos? Si No Encuentra frecuencia Imprime frecuencia

73 Frecuencímetro ( diagrama de flujo 2) ISR Reinicia la INT-EXT Cuenta el pulso 2 pulsos? Si No Enciende Timer 1 Apaga Timer 1 Terminar

74 Frecuencímetro ( (programa) unsigned frecuencia, pulso, conteo; char cad[10]; void interrupt (void) { INTCON.F1 = 0; } pulso ++; if ( pulso == 1 ) { T1CON.F0 = 1; } else { T1CON.F0 = 0; INTCON = 0; } void main (void) { TRISB = 255; OPTION_REG = 0b ; INTCON = 0b ; T1CON = 0b ; Lcd_Init ( &PORTD ); Lcd_Out(1,1, Frecuencímetro ); Lcd_Out(3,1, Frecuencia : ) Lcd_Out(2,1, Pulsos : ); TMR1H = TMR1L = 0; while(1) { if ( pulso == 2 ) { conteo = (TMR1H<<8)+TMR1L; WordToStr ( conteo, cad); Lcd_Out (2,12,cad); frecuencia =( /conteo)/8; WordToStr ( frecuencia, cad); Lcd cd_out (3,12,cad);,cad); pulso = 0; TMR1H = TMR1L = 0; INTCON = 0x90; } } }

75 EJERCICIOS PROPUESTOS DEL TMR1 1. Genere e e un reloj, el cual pueda ser configurado, que tenga hora, minutos y segundos. 2. Modifique el problema propuesto 2 del TMR0, de tal forma que el retardo de 60 segundos sea llevado a cabo por el TMR1 y el conteo de los pulsos sea realizado por el TMR0, configurado como contador de eventos externos.

76 T I M E R 2 Temporizador de ciclos de reloj y generador de señal de periodo para puerto serial.

77 TIMER 2 Es un temporizador de 8 bits que tiene un preescalador y un postescalador. Es usado como base de tiempo para el modulo de PWM (CCP) También alimenta al modulo de puerto serial síncrono (SSP), como reloj de corrimiento.

78 Funcionamiento del timer 2 1. Los pulsos de reloj entran a un preescalador, en este se puede seleccionar una escala de 1, 4 o El registro TMR2 se incrementa a partir de cero, de uno en uno, por cada pulso que le llega del preescalador. 3. Cuando el TMR2 alcanza el valor precargado en el registro PR2, se genera un pulso.

79 Funcionamiento del TIMER 2 4. El pulso que se genera reinicia el registro TMR2. 5. Este mismo pulso llega a un postescalador que puede tener cualquiera de las siguientes escalas: 1, 2, 3, 4, 5,..., 15 o Como salida este postescalador genera un pulso que activa la bandera del TIMER 2 (TMR2IF).

80 Registro T2CON Bit Nombre Función 6:3 Selección del postescalador del Timer 2 TOUTPS3: TOUTPS2: TOUTPS1: TOUTPS = 1: = 1: = 1: = 1: = 1: = 1:16 2 TMR2ON Encendido del Timer 2. 1 = Encendido. 0 = Detiene el Timer 2. 1:0 T2CKPS1: T2CKPS0 Selección del preescalador del Timer = 1:1 01 = 1:4 1X = 1:16

81 Diagrama a bloques del TIMER 2

82 Registros de configuración Se tiene que asignar valores a los siguientes registros: TMR2.-Número de pulsos a contar. PR2.- Número de pulsos a contar. T2CON.- Configuración del TIMER 2. INTCON (opcional).- Configuración de interrupción. PIE1 (opcional).- Habilitación del Timer 2. PIR1 (opcional).- Bandera de desborde d del Timer 2.

83 Configuración del TMR2 Si queremos que el Timer 2 haga: Un conteo de 75 microsegundos usando un cristal de 12 MHz. Como el registro TMR2 puede contar desde 0 hasta PR2 pulsos, en esta ocasión no será necesario utilizar tanto el preescalador como el postescalador. PR2 preescalador T buscado en μseg postescalador 4 T ciclo de reloj 75μseg μseg 75 PR2 225 ( 0xE1) 0.33 //Instrucciones de configuración T2CON = 0b ; PR2 = 0xE1; TMR2 = 0; // 0xE5 // 0xFF // 0x04 // 0x1E

84 Configuración del TMR2 Si queremos que el Timer 2 haga: Un conteo de 50 milisegundos usando un cristal de 4 MHz. Como el registro TMR2 puede contar desde 0 hasta PR2 pulsos, en esta ocasión se necesita utilizar tanto el preescalador como el postescalador. PR2 preescalador T buscado en μseg postescalador 4 T ciclo de reloj 50000μseg μseg PR2 223 ( 0xDF 224 ) //Instrucciones de configuración T2CON = 0b ; PR2 = 0xDF; TMR2 = 0;

85 Registros asociados al Timer 2 INTCON.- Configurando GIE y PEIE, para activar el vector de interrupciones y activar los registros PIE1, PIE2, PIR1 y PIR2, respectivamente. PIE1.- Activar TMR2IE ( Inicia el uso de la bandera de desborde del Timer 2 ). PIR1.- Verificar TMR2IF ( Bandera de desborde del Timer 2 ).

86 Cerrojo temporizado (problema) Diseñar un programa a que controle o el acceso de una habitación. El sistema cuenta con un sensor de presencia, que envía un pulso cuando hay personas en la habitación. Si el sistema no detecta la presencia de personas durante 5 minutos, se debe activar un cerrojo eléctrico. El cerrojo se desactiva cuando se introduce una clave. Esto último se simulará con un pulso de desactivación.

87 Cerrojo temporizado ( (algoritmo) Programa a principal pa 1. Configurar interrupción externa. 2. Configurar Timer Si cerrrojo activado y pulso de desactivación presente ir a 5 4. No cerrojo activado o pulso de desactivación ir a 3 5. Desactiva el cerrojo. 6. Reinicia conteo de tiempo. 7. Ir a 3.

88 Cerrojo temporizado (algoritmo 2 j p ( algoritmo 2) Programa ISR 1. Si es interrupción externa ir a No es interrupción externa ir a 3 3. Si es Timer 2 ir a 5 4. No es el Timer 2 salir de ISR. 5. Reinicia Timer 2 6. Incrementa conteo 7. Si conteo es igual a 5 minutos ir a No conteo igual a 5 minutos ir a 9 9. Salir de ISR. 10. Reinicia Interrupción externa. 11. Reinicia Timer Salir de ISR. 13. Activa cerrojo. 14. Salir de ISR.

89 Cerrojo temporizado ( diagrama de flujo 1) Cerrojo temp. Configura INT-EXT Timer 2 Cerrojo activado Y Pulso desactivación? No Si Desactivar el cerrojo Reinicia el conteo de tiempo

90 Cerrojo temporizado ( diagrama de flujo 2) ISR Reinicia la INT-EXT Cuenta el pulso INT_EXT? No Si Reinicia i i INT_EXT Reinicia conteo 1 Conteo = 5min? Si Timer 2? Si Incrementa conteo No Activa cerrojo 1 No Terminar

91 Cerrojo temporizado (programa) unsigned decima_segundos, seg, anterior; char cad[10]; void interrupt (void) { if (INTCON.F1 == 1) { INTCON.F1 = 0; decima_segundos d = 0; TMR2 = 0; } if ( PIR1.F1 == 1 ) { PIR1.F1 = 0; decima_segundos++; if ( decima_segundos == ) { PORTC.F0 = 1; T2CON.F2 = 0; INTCON.F4 = 0; } } }

92 Cerrojo temporizado (programa 2) void main (void) { OPTION_REG = 0b ; INTCON = 0b ; PIE1 = 0b ; T2CON = 0b ; PR2 = 39; TRISC = 0xf0; TRISB = 255; PORTC = 0; TMR2 = 0; Lcd_Init ( &PORTD ); Lcd_Out(1,1, "Cerrojo temporizado"); Lcd cd_out(3, Out(3,1,, "Cerrojo : abierto"); Lcd_Out(2,8, "segundos"); while(1) { if ( PORTC.F0 == 1 && PORTC.F7 == 1) { PORTC.F0 = 0; decima_segundos = 0; TMR2 = 0; T2CON.F2 = 1; } seg = decima_segundos/100; if ( seg!= anterior ) { anterior = seg; WordToStr ( seg, cad); Lcd_Out ( 2, 1, cad ); if (seg == 300) Lcd_Out(3, 11, "Cerrado "); } } }

93 Comunicación I 2 C Programa que establezca comunicación con una memoria que maneja su acceso bajo el protocolo I 2 C. El programa debe llenar la memoria partiendo de la dirección 0 hasta la máxima dirección los números decrementales partiendo del 255, repitiendo tantas veces como sea necesario.

Temporizadores/Contadores

Temporizadores/Contadores para el PIC6F787 Temporizador/Contador (TMR) Temporizador/Contador (TMR) Temporizador 2 (TMR2) Características del TMR TMR es un Temporizador/Contador de 8 bits Leíble y escribible Reloj interno y externo

Más detalles

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj 6.1. Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL El módulo TMR1 es un temporizador/contador de 16 bits con las siguientes características: Temporizador/Contador de 16 bits (TMR1L:TMR1H)

Más detalles

MICROCONTROLADORES PIC

MICROCONTROLADORES PIC MICROCONTROLADORES PIC LOS TIMER DE LOS 16F87x TEMA EL TIMER 1 CCFF D.P.E. MÓDULO DE PROYECTOS 1 Diagrama de Bloques del TIMER1 CCFF D.P.E. MÓDULO DE PROYECTOS 2 INTRODUCCIÓN El módulo TIMER1 es un temporizador/contador

Más detalles

Microprocesadores. Temporizadores / Contadores. Prof. Luis Araujo. Universidad de Los Andes

Microprocesadores. Temporizadores / Contadores. Prof. Luis Araujo. Universidad de Los Andes Temporizadores / Contadores Universidad de Los Andes Temporizador / Contador Timer 0 Temporizador/Contador de 8 bits (TMR0), Preescalador programable de 8 bits, Modo temporizador: el valor del registro

Más detalles

TIMER0 (T0) TMR0 (01h,101h)

TIMER0 (T0) TMR0 (01h,101h) TIMER (T) Contador ascendente de 8bits Prescaler desde :2 hasta :256 Timer: entrada del reloj del sistema T CY =4*T osc =(F osc /4) t DESBORDE =4*T osc *(2 8 TMR)*N ;Prescaler :N Contador: entrada externa

Más detalles

Segundo Parcial Programación en Mikro C PIC16F877

Segundo Parcial Programación en Mikro C PIC16F877 Segundo Parcial Programación en Mikro C para microcontroladores PIC PIC16F877 Operadores a nivel de bits Operador operacion & AND; compara pares de bits y regresa 1 si ambos son 1 s, de otra manera regresa

Más detalles

PIC16F88. Características

PIC16F88. Características Osciladores PIC16F88. Características Osciladores a cristal: LP, XT y HS hasta 20Mhz Oscilador externo hasta 20Mhz Oscilador interno: 31Khz 8Mhz Periféricos Módulo PWM/CCP CCP (captura/comparación) ->

Más detalles

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos 17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos Cuál será el valor de precarga necesario para que este sistema nos indique que ha transcurrido un tiempo de 6 minutos? Seria depositar

Más detalles

RECURSOS FUNDAMENTALES

RECURSOS FUNDAMENTALES RECURSOS FUNDAMENTALES Los recursos que se considerarán son : Temporizadores Puertos de E/S La Palabra de Configuración EEPROM de datos 1 TEMPORIZADORES Una labor habitual en los programas de control suele

Más detalles

PIC 18F45XX EL TIMER 0

PIC 18F45XX EL TIMER 0 PIC 18F45XX EL TIMER 0 1. Hardware asociado 2. Características Se puede configurar como temporizador o contador de 8/16 bits. Se puede leer o escribir en él a través del registro TMR0. Dispone de un preescaler

Más detalles

Interrupciones Fuentes de Interrupciones para el PIC16F1787

Interrupciones Fuentes de Interrupciones para el PIC16F1787 Fuentes de para el PIC16F1787 Interrupción externa a través del pin RB0/INT Interrupción por cambio de nivel Interrupción por escritura en la EEPROM Interrupción por desbordamiento del TMR0 Interrupción

Más detalles

Módulos CCP. Registro de captura Registro de comparación Registro de ciclo de servicio PWM

Módulos CCP. Registro de captura Registro de comparación Registro de ciclo de servicio PWM Módulos CCP Los PIC16F87X disponen de 2 módulos CCP (Capture/Compare/PWM): CCP1 y CCP2. Cada módulo CCP cuenta con un registro de 16 bits (CCPR1 y CCPR2) que puede operar como un Registro de captura Registro

Más detalles

PRÁCTICA 5: Medida del tiempo en un PIC

PRÁCTICA 5: Medida del tiempo en un PIC SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 5: Medida del tiempo en un PIC TMR0 TMR1 Display 7 segmentos - 1 - 1. Objetivos: - Gestión de los temporizadores en los

Más detalles

TUTORIAL PRIMERA PARTE: GENERACIÓN DE UN RETARDO CON TIMER.

TUTORIAL PRIMERA PARTE: GENERACIÓN DE UN RETARDO CON TIMER. 1 TUTORIAL OBJETIVOS Familiarizarse con el TMR0 como contador de pulsos internos y generador de retardos. Conocer el método del polling para verificar banderas de dispositivos. Crear y manipular variables

Más detalles

El TIMER 0. (c) Domingo Llorente 2010 1

El TIMER 0. (c) Domingo Llorente 2010 1 El TIMER 0 (c) Domingo Llorente 2010 1 Características Se trata de un registro de 8 bits. (SFR: 01h, 101h) Puede trabajar como contador o temporizador. Se puede leer o escribir en él. Dispone de un preescaler

Más detalles

MICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits

MICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits MICROCONTROLADORES 2. La memoria de programa del PIC 16F84A es de tipo: a) ROM b) OTP c) RAM d) EPROM e)

Más detalles

INTRODUCCIÓN. Comunicación Serial.

INTRODUCCIÓN. Comunicación Serial. INTRODUCCIÓN La función principal de este tipo de comunicación es la de convertir datos de salida de forma paralela a serial y la de convertir datos de entrada de forma serial a paralela. El acceso al

Más detalles

MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627)

MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627) MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627) TEMARIO Objetivo: El estudiante comprenderá la evolución de los microcontroladores y microprocesadores así como sus diferencias, desarrollara su habilidad

Más detalles

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO INTERRUPCIONES Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento que provoca la interrupción. El vector de interrupción se encuentra en la dirección 04H de la memoria de

Más detalles

Microcontroladores PIC

Microcontroladores PIC Microcontroladores PIC Procesador RISC. Arquitectura Harvard Pipeline Formato de instrucciones ortogonal Arquitectura basada en banco de registros Distintos periféricos: temporizadores, puertos paralelo/serie,

Más detalles

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1 TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1 Estructura De La Memoria Ram (1) La memoria de datos RAM está dividida en dos partes diferenciadas: 1.- Zona SFR o zona de Registros

Más detalles

Microcontrolador PIC16F84: Arquitectura

Microcontrolador PIC16F84: Arquitectura Microcontrolador PIC16F84: Arquitectura La arquitectura del PIC es tipo Harvard: Mem. de Programa (instrucciones) (tipo FLASH) Control DIR DATOS µp (tipo RISC, pipeline de 2 etapas) Control DIR DATOS 14

Más detalles

TUTORIAL II parte A. Observemos el diagrama de pines del microcontrolador 16F877A:

TUTORIAL II parte A. Observemos el diagrama de pines del microcontrolador 16F877A: 1 TUTORIAL II parte A OBJETIVOS Conocer el manejo de puertos del microcontrolador 16F877A, registros TRIS y PORT. Familiarizarse con las principales instrucciones del lenguaje y la estructura de un programa

Más detalles

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Administración de los temporizadores Profesor Ing. Johan Carvajal Godínez Módulos temporizadores El MCU 18F4550 posee cuatro módulos de temporización independientes

Más detalles

Registros SFR vistos hasta ahora: Microcontroladores PIC

Registros SFR vistos hasta ahora: Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El

Más detalles

PIC 18F45XX CARACTERÍSTICAS GENERALES

PIC 18F45XX CARACTERÍSTICAS GENERALES PIC 18F45XX CARACTERÍSTICAS GENERALES 1. Características generales CPU con arquitectura Harvard (77 instrucciones) Todas las instrucciones constan de 1 sola palabra de 16 bits (2 bytes) excepto las de

Más detalles

Microcontroladores PIC

Microcontroladores PIC Microcontroladores PIC 1 Características generales: Arquitectura Harvard, procesador segmentado. Compatibilidad software entre los modelos de la misma gama. Sencillez de uso y herramientas de desarrollo

Más detalles

COMUNICACIÓN I2C (Bus de circuito inter-integrado)

COMUNICACIÓN I2C (Bus de circuito inter-integrado) Aplicar los conocimientos básicos de electrónica de manera teórica (lenguaje ANSI-C) y práctica (montaje de circuitos). Conocer las funciones que gobiernan las entradas y salidas del microcontrolador PIC18F47J53.

Más detalles

Diagrama de bloques del sistema

Diagrama de bloques del sistema Software de control: Diagrama de bloques del sistema Para controlar todos los parámetros de funcionamiento de la pila de combustible, se ha creado un software específico, este funciona como se muestra

Más detalles

Resumen. Palabras clave: PIC18F2550, temporizador, retardo.

Resumen. Palabras clave: PIC18F2550, temporizador, retardo. Propuesta para la configuración básica del Temporizador 1 del microcontrolador PIC18F2550 Por: I.I.E. Miguel Montiel Martínez montiel.martinez@gmail.com Resumen Este articulo trata sobre la estructura

Más detalles

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje:

PIC16C5X (GAMA BAJA) Solo en dispositivos de 28 pins. Encapsulado y patillaje: PIC6C5X (GAMA BAJA) Oscilador RESET SLEEP WatchDog Timer (WDT) Protección de código e IDs Periféricos: Timer/Contador de 8bits (T) con prescaler compartido para WDT o TMR Hasta 3 puertos I/O (RA,RB,RC)

Más detalles

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación Taller de Firmware Introducción al PIC16F877 Facultad de Ingeniería Instituto de Com putación Contenido Introducción a los microcontroladores PIC. Presentación del PIC 16F877. Introducción a los microcontroladores

Más detalles

PROFESOR: Práctica 9. Convertidor Analógico-Digital

PROFESOR: Práctica 9. Convertidor Analógico-Digital INSTITUTO POLITÉCNICO NACIONAL Centro de Estudios Científicos y Tecnológicos Nº 1 Gonzalo Vázquez Vela Academia de Sistemas Digitales Prácticas de Micro Electrónica Programable NOMBRE DEL ALUMNO: Apellido

Más detalles

CURSO BÁSICO MICROCONTROLADORES PIC

CURSO BÁSICO MICROCONTROLADORES PIC CURSO BÁSICO MICROCONTROLADORES PIC CONFIGURACIÓN BÁSICA FUSIBLES Los fusibles son palabras de configuración que definen las condiciones de funcionamiento del microcontrolador. Algunos fusibles importantes

Más detalles

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1 Tema 14 Las Interrupciones C. F. G.S. D.P.E. Módulo de Proyectos 1 Los PIC de la familia 16F8X poseen 4 fuentes de interrupción: Interrupción externa a través del pin RB0/INT Interrupción por overflow

Más detalles

CAPÍTULO 3. Las principales funciones del microcontrolador son: adquirir por medio del A/D y también, mostrar mensajes de pesos y voltaje en el LCD.

CAPÍTULO 3. Las principales funciones del microcontrolador son: adquirir por medio del A/D y también, mostrar mensajes de pesos y voltaje en el LCD. CAPÍTULO 3 3. DISEÑO DEL SOFTWARE. La programación del PIC se realizó en lenguaje C, usando el compilador mikroc PRO for PIC. Este compilador se utilizó, ya que tiene una versión demo muy buena, además

Más detalles

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos.

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. 1 Pines de entrada/salida (I/O) de propósito general Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. Para añadir flexibilidad al micro, muchos de sus pines de entrada/salida

Más detalles

Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE

Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE 25 3 ENTRADA / SALIDA Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE Cada uno de estos puertos es de 8 bits, sin embargo no todos

Más detalles

Capítulo 1. Introducción a los PIC de 8 bits

Capítulo 1. Introducción a los PIC de 8 bits Capítulo 1. Introducción a los PIC de 8 bits 1.1 Memorias y Registros Entre los componentes básicos de un microcontrolador podemos definir el contador, sus registros, la memoria, el watchdog timer, el

Más detalles

Elección de un microcontrolador

Elección de un microcontrolador Elección de un microcontrolador Decisión multivariable. No hay un óptimo evidente Factores: Herramientas de desarrollo Base de conocimientos Precio y disponibilidad Familia versátil y en desarrollo Cantidad

Más detalles

Contenido MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA. Alfaomega. 3.4 Soporte Muestras... 25

Contenido MICROCONTROLADORES PIC16F877A Y PIC16F887 / SALVATIERRA. Alfaomega. 3.4 Soporte Muestras... 25 Contenido Introducción 1 Parte 1 Conceptos básicos 3 1.0 Componentes de un MCU... 3 1.1 Partes básicas... 3 1.1.1 ALU (Unidad lógica aritmética). 4 1.1.2 I/O (INPUT/OUTPUT)... 4 1.1.3 Memoria (RAM, ROM...

Más detalles

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES 1.1 Introducción 1.2 Fundamentos de los procesadores digitales secuenciales 1.2.1 Introducción 1.2.2 Arquitectura interna 1.2.2.1 Procesadores digitales

Más detalles

Manipulación directa de puertos. Usando los puertos digitales.

Manipulación directa de puertos. Usando los puertos digitales. Manipulación directa de puertos. Usando los puertos digitales. (Segunda traducción al castellano de los artículos escritos aqui: http://hekilledmywire.wordpress.com/2011/02/23/) Hola amigos lectores, hoy

Más detalles

PROFESOR: Práctica 5. Manejo de Motores

PROFESOR: Práctica 5. Manejo de Motores INSTITUTO POLITÉCNICO NACIONAL Centro de Estudios Científicos y Tecnológicos Nº 1 Gonzalo Vázquez Vela Academia de Sistemas Digitales Prácticas de Micro Electrónica Programable NOMBRE DEL ALUMNO: Apellido

Más detalles

Guía #2 Acceso a registros y uso de puertos.

Guía #2 Acceso a registros y uso de puertos. Curso de microcontroladores PIC. Guía # 2 1 Guía #2 Acceso a registros y uso de puertos. Distribución de la memoria. Todo microcontrolador cuenta con periféricos para comunicarse con el mundo exterior,

Más detalles

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE INGENIERÍAS DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRÓNICA

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE INGENIERÍAS DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRÓNICA UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE INGENIERÍAS DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRÓNICA Laboratorio de Microcontroladores y Microprogramación Página:1/12 Jefe

Más detalles

4.4 Interrupciones RBI (Interrupciones por cambio de estado)

4.4 Interrupciones RBI (Interrupciones por cambio de estado) 49 4.4 Interrupciones RBI (Interrupciones por cambio de estado) Cuatro pines del PORTB (RB7:RB4) son capaces de disparar una interrupción por cambio de estado. Este tipo de interrupciones son comúnmente

Más detalles

Práctica 6. Control de LCD 16x2 con PIC 16F84A.

Práctica 6. Control de LCD 16x2 con PIC 16F84A. Práctica 6 Control de LCD 16x2 con PIC 16F84A. Eduardo V. Abad Descripción de las características y funcionamiento del LCD 44780 Las pantallas de cristal líquido (LCD) se han popularizado mucho en los

Más detalles

CURSO: MICROCONTROLADORES UNIDAD 2: MÓDULOS DEL MICRO 16F877- TEORÍA PROFESOR: JORGE ANTONIO POLANÍA 1. TEMPORIZADORES E INTERRUPCIONES

CURSO: MICROCONTROLADORES UNIDAD 2: MÓDULOS DEL MICRO 16F877- TEORÍA PROFESOR: JORGE ANTONIO POLANÍA 1. TEMPORIZADORES E INTERRUPCIONES CURSO: MICROCONTROLADORES UNIDAD 2: MÓDULOS DEL MICRO 16F877- TEORÍA PROFESOR: JORGE ANTONIO POLANÍA Las interrupciones en un microcontrolador son las encargadas de interrumpir la ejecución de un programa

Más detalles

Características PIC16F84

Características PIC16F84 Departamento de Electrónica Fundación San Valero del Toda la información que grabamos (memoria de programa y de datos) se puede modificar con el microcontrolador conectado a la aplicación. (ICSP = In-Circuit

Más detalles

Guía de Microcontroladores

Guía de Microcontroladores Guía de Introducción Este documento tiene como objetivo de para comenzar con el desarrollo de programas para microcontroladores. Por motivos prácticos se utilizan líneas microcontroladores PIC de 8 bits

Más detalles

EL módulo conversor A/D. (c) Domingo Llorente

EL módulo conversor A/D. (c) Domingo Llorente EL módulo conversor A/D (c) Domingo Llorente 2010 1 Características del conversor A/D Ocho entradas de señal analógica. (5 para el 16F876x) Resolución de la conversión de 10 bits. (0-1024) Distintas fuentes

Más detalles

2.2-1 Visión Interna PIC16F873/876. SBM

2.2-1 Visión Interna PIC16F873/876. SBM 2.2-1 Visión Interna PIC16F873/876. 1 2.2-2 Visión Interna PIC16F874/877. 2 2.2-3 Sistema de memoria. Tienen arquitectura Harvard, separa la memoria de datos y la memoria de programa, y se accede a ellas

Más detalles

RESEÑA DE LENGUAJE C

RESEÑA DE LENGUAJE C RESEÑA DE LENGUAJE C VARIABLES La función main. Es el punto de entrada al programa. void main(void) Aquí escribo mi programa Tipos de datos. Char. El char es una variable de 1 byte. Almacena números enteros.

Más detalles

MICROCONTROLADORES II (FAMILIA PIC16F87X) LENGUAJE C PARA PICS

MICROCONTROLADORES II (FAMILIA PIC16F87X) LENGUAJE C PARA PICS MICROCONTROLADORES II (FAMILIA PIC16F87X) LENGUAJE C PARA PICS 1 CARACTERÍSTICAS Velocidad de operación: hasta 20 MHz de reloj. 8K x 14 bits por palabra de memoria de programa FLASH. 368 x 8 bytes de memoria

Más detalles

TARJETA DE ENTRADAS Y CONTADORES RÁPIDOS (MTC-3052)

TARJETA DE ENTRADAS Y CONTADORES RÁPIDOS (MTC-3052) Pag:1 Descripción Tarjeta de entradas y contadores rápidos diseñada para controles complejos en tiempo real. A través de software sencillo permite su configuración al usuario. Cuenta con diversidad de

Más detalles

DESARROLLO DE SISTEMAS BASADOS EN MICRONTROLADORES Y DSPs

DESARROLLO DE SISTEMAS BASADOS EN MICRONTROLADORES Y DSPs DESARROLLO DE SISTEMAS BASADOS EN MICRONTROLADORES Y DSPs Manejo de puertos Entradas Salidas PIC24FJ128GA010 EXPLORER16 Puertos de E/S Los microcontroladores cuentan con pines especialmente diseñados para

Más detalles

LOS PIC16F88X: LOS PUERTOS DE E/S

LOS PIC16F88X: LOS PUERTOS DE E/S LOS PIC16F88X: LOS PUERTOS DE E/S IES Juan de la Cierva Aprendizaje de la Electrónica a través de la Robótica Fernando Remiro Domínguez PORTA Es un puerto bidireccional de 8 bits que permite el acceso

Más detalles

ARQUITECTURA DEL PIC16F84A

ARQUITECTURA DEL PIC16F84A ARQUITECTURA DEL PIC16F84A Arquitectura interna del PIC16F84A CPU ALU Decodificador de Instrucciones - Buses Registro de trabajo W PC Contador de Programa Organización de la memoria Memoria de Programa

Más detalles

Empieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria.

Empieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria. /* */ Los bloques de comentarios o comentarios multilíneas son áreas de texto ignoradas por el programa y se usan para describir códigos o comentarios que ayudan a otras personas a entender parte del programa.

Más detalles

MANUAL DEL PIC 16F87X v 1.0

MANUAL DEL PIC 16F87X v 1.0 1 MANUAL DEL PIC 16F87X v 1.0 PRINCIPALES CARACTERÍSTICAS Se enumeran las prestaciones y dispositivos especiales de los PIC16F87X. Procesador de arquitectura RISC avanzada Juego de solo 35 instrucciones

Más detalles

Teclado Matricial. Ing. Diego Chacón

Teclado Matricial. Ing. Diego Chacón Teclado Matricial Ing. Diego Chacón Teclado 4x4 y PIC16f877A Uno de los periféricos bastante util que usamos en algunos proyectos con microcontroladores es teclado matricial. Normalmente los encontramos

Más detalles

MICROCONTROLADORES : COMPILADOR MPLAB 16FXX, UNA INTRODUCCION. ING. YESID EUGENIO SANTAFE RAMON DOCENTE PROGRAMA DE INGENIERIA ELECTRONICA

MICROCONTROLADORES : COMPILADOR MPLAB 16FXX, UNA INTRODUCCION. ING. YESID EUGENIO SANTAFE RAMON DOCENTE PROGRAMA DE INGENIERIA ELECTRONICA MICROCONTROLADORES : COMPILADOR MPLAB 16FXX, UNA INTRODUCCION. ING. YESID EUGENIO SANTAFE RAMON DOCENTE PROGRAMA DE INGENIERIA ELECTRONICA [] Tendencias Video Walls & Virtual-Real Meetings In the Office

Más detalles

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI DEFINICIÓN Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, completamente estático es decir si el reloj se detiene los datos

Más detalles

PROFESOR: Práctica 10. Modulación por ancho de pulso (PWM) Emplea un microcontrolador para procesamiento de señales analógicas y digitales

PROFESOR: Práctica 10. Modulación por ancho de pulso (PWM) Emplea un microcontrolador para procesamiento de señales analógicas y digitales INSTITUTO POLITÉCNICO NACIONAL Centro de Estudios Científicos y Tecnológicos Nº 1 Gonzalo Vázquez Vela Academia de Sistemas Digitales Prácticas de Micro Electrónica Programable NOMBRE DEL ALUMNO: Apellido

Más detalles

Figura 2. Formato de un dato serie síncrono.

Figura 2. Formato de un dato serie síncrono. ELECTRÓNICA DIGITAL II 1 COMUNICACIÓN SERIE EN EL 8051 En la comunicación serie los datos se transfieren bit por bit. Una interfaz en el microcontrolador los transfiere el dato en paralelo del CPU a serie

Más detalles

Microprocesadores. Introducción al Lenguaje C - Parte IV. Prof. Luis Araujo. Universidad de Los Andes

Microprocesadores. Introducción al Lenguaje C - Parte IV. Prof. Luis Araujo. Universidad de Los Andes Introducción al Lenguaje C - Parte IV Universidad de Los Andes Funciones Las funciones son porciones de código que devuelven un valor y permiten descomponer el programa en módulos que se llaman entre ellos

Más detalles

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Módulos de Comunicación Serie Profesor Ing. Johan Carvajal Godínez Contenido Módulos de comunicación serie sincrónica I2C SPI Módulo de comunicación serie Asincrónico

Más detalles

ITT-327-T Microprocesadores

ITT-327-T Microprocesadores ITT-327-T Microprocesadores Temporizador Programable (PIT) 8254. Temporizador/Contador Programable (PIT) 8254. Es un contador/temporizador programable diseñado para trabajar con los sistemas de microcomputadores.

Más detalles

Diseño de Microcontroladores

Diseño de Microcontroladores Departamento de Electrónica Diseño de Microcontroladores Alumnos: De la Goublaye de Ménorval, Eric Gómez, Rodrigo Pinto, Orlando Salas, Felipe 30/03/04 1. Índice 1. Índice...2 2. Introducción...3 3. Puertas

Más detalles

SALTOS EN FUNCIONDE UN BIT Aquéllas que pueden producir el salto en función del estado de un bit. Son btfsc y

SALTOS EN FUNCIONDE UN BIT Aquéllas que pueden producir el salto en función del estado de un bit. Son btfsc y SISTEMAS ELECTRONICOS DIGITALES SALTO CONDICIONAL El repertorio del PIC16F84 también dispone de instrucciones de salto condicional, que son aquéllas que producen un salto en función de que se cumpla o

Más detalles

Programación y Aplicaciones de los Microcontroladores PIC16FXXX (Nivel Básico) ING. EULER DEZA FIGUEROA

Programación y Aplicaciones de los Microcontroladores PIC16FXXX (Nivel Básico) ING. EULER DEZA FIGUEROA Programación y Aplicaciones de los Microcontroladores PIC16FXXX (Nivel Básico) ING. EULER DEZA FIGUEROA ESTRUCTURA Y CONTENIDO: SESIONES DE CLASE CONTENIDOS PRACTICA PRIMERA (5 horas ) SEGUNDA (5 horas

Más detalles

Características Técnicas del PIC 16F84

Características Técnicas del PIC 16F84 Características Técnicas del PIC 16F84 Repertorio de 35 Instrucciones. Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan dos. Versiones de 4 MHz (PIC16F84-04) y 10

Más detalles

INDICE Capitulo 1. Microcontroladores Programables: La Solución está en un CHIP Capitulo 2. Microcontroladores de 8 BITS: Los <<PIC>>

INDICE Capitulo 1. Microcontroladores Programables: La Solución está en un CHIP Capitulo 2. Microcontroladores de 8 BITS: Los <<PIC>> INDICE Prólogo XIII Capitulo 1. Microcontroladores Programables: La Solución está en un CHIP 1 1.1. Qué es un microcontrolador? 1 1.1.1. Diferencia entre microprocesador y microcontrolador 3 1.4. Arquitectura

Más detalles

Propuesta para la programación básica del Temporizador 1 del microcontrolador PIC18F2550 con el compilador SDCC

Propuesta para la programación básica del Temporizador 1 del microcontrolador PIC18F2550 con el compilador SDCC Propuesta para la programación básica del Temporizador 1 del microcontrolador PIC18F2550 con el compilador SDCC Por: I.I.E. Miguel Montiel Martínez montiel.martinez@gmail.com Resumen Este articulo trata

Más detalles

LOS PIC16F87X. Características Generales. IES Juan de la Cierva (Madrid). Desarrollo de Productos Electrónicos

LOS PIC16F87X. Características Generales. IES Juan de la Cierva (Madrid). Desarrollo de Productos Electrónicos LOS PIC6F87X Características Generales D. de B L O Q U E S Los Pic6F87X Fernando Remiro D. de B L O Q U E S Características () Procesador de arquitectura RISC avanzada Juego de solo 35 instrucciones con

Más detalles

Controladores Lógicos Programables

Controladores Lógicos Programables Inicio Objetivos del Programa Misión y Visión del programa Perfil del admitido Perfil del egresado Plan de Estudios Objetivos de la Acreditación Controladores Lógicos Programables Click to edit Master

Más detalles

SISTEMA MÍNIMO BASADO EN EL PIC16F84

SISTEMA MÍNIMO BASADO EN EL PIC16F84 PRÁCTICA 0 CIRCUITO BASE SISTEMA MÍNIMO BASADO EN EL PIC16F84 1 PRÁCTICA 1_1 COMPUERTA AND DE TRES ENTRADAS Hardware X0 X1 X2 Y 2 Comportamiento esperado INICIO Configurar Puerto A como entradas y Puerto

Más detalles

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 Los Bits de Configuración del PIC16F628 44 PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 OBJETIVOS Identificar cada uno de los bits de configuración que rigen el funcionamiento del PIC16F628. Verificar

Más detalles

Timer s Escuela Superior de Cómputo IPN. Departamento de Posgrado Dr. Julio Cesar Sosa Savedra curso.escom@yahoo.com www.desid.escom.ipn.

Timer s Escuela Superior de Cómputo IPN. Departamento de Posgrado Dr. Julio Cesar Sosa Savedra curso.escom@yahoo.com www.desid.escom.ipn. Interrupciones Timer s Escuela Superior de Cómputo IPN. Departamento de Posgrado Dr. Julio Cesar Sosa Savedra curso.escom@yahoo.com www.desid.escom.ipn.mx Definición Definición: Los TIMER's son contadores

Más detalles

PIC 16F87X TRABAJO EXPLICACIÓN

PIC 16F87X TRABAJO EXPLICACIÓN PIC 16F87X TRABAJO EXPLICACIÓN Sebastián Martín García INDICE DIFERENCIAS ENTRE PIC16F84 Y 16F87X 4 PIC 16F87X 5 DIFERENCIAS ENTRE 16F84 Y 16F87X 5 SENSORES ANALOGICOS MAS UTILIZADOS 6 SENSOR DE LUMINOSIDAD

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC.

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. 1. Introducción... 1 2. Funcionamiento del Timer0... 1 2.1. Estructura general del Timer0...2 2.2. Entrada de reloj del modulo Timer0...2

Más detalles

Periféricos: Timer. Cesáreo Fernández Martínez Álvaro Sánchez Miralles

Periféricos: Timer. Cesáreo Fernández Martínez Álvaro Sánchez Miralles Periféricos: Timer Cesáreo Fernández Martínez Álvaro Sánchez Miralles Periféricos Dispositivo que tiene el microcontrolador para realizar tareas especificas sin consumir tiempo de CPU. Se encuentran mapeados

Más detalles

COMUNICACIÓN SERIE ENTRE MICROCONTROLADORES MEDIANTE UART SW

COMUNICACIÓN SERIE ENTRE MICROCONTROLADORES MEDIANTE UART SW COMUNICACIÓN SERIE ENTRE MICROCONTROLADORES MEDIANTE UART SW En esta práctica se describe la forma de realizar una comunicación serie half-duplex entre dos microcontroladores utilizando UARTs software.

Más detalles

Tema 4. Organización de la memoria

Tema 4. Organización de la memoria Tema 4 Organización de la memoria 1 ARQUITECTURA DEL PIC16F84 Tema 4. Organización de la memoria Memoria de programa tipo ROM Flash de 1024 registros de 14 bits Memoria de datos dividida en dos áreas:

Más detalles

Bach. Pablo Sanabria Campos. Programa de Tecnologías Educativas Avanzadas

Bach. Pablo Sanabria Campos. Programa de Tecnologías Educativas Avanzadas Bach. Pablo Sanabria Campos Programa de Tecnologías Educativas Avanzadas Agenda Arduino. Entradas y salidas. IDE Arduino (instalación y configuración). Programación. Ejemplos. Proyecto. Arduino Es una

Más detalles

Conversores Análogo-Digital

Conversores Análogo-Digital Conversores Análogo-Digital mc PIC Preparado por : jhuircan Depto. Ingeniería Eléctrica Universidad de La Frontera Proceso de Conversión Código Correspondiente a la muestra j S(t) S(k) 0010..0011 ADC t

Más detalles

Cartilla para Microcontrolador PIC16F877. 28/40 Pin 8-Bit CMOS FLASH.

Cartilla para Microcontrolador PIC16F877. 28/40 Pin 8-Bit CMOS FLASH. Cartilla para Microcontrolador PIC16F877 28/40 Pin 8-Bit CMOS FLASH. Características principales CPU RISC de alta performance Set de35 instrucciones Todas las instrucciones son de un ciclo salvo aquellas

Más detalles

PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM

PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM Estructura De La Memoria Ram La memoria de datos RAM está dividida en 4 bancos de registros: BANCO 0, BANCO 1, BANCO 2 y BANCO 3, cada uno posee 128 bytes.

Más detalles

INTRODUCCIÓN. Interrupciones.

INTRODUCCIÓN. Interrupciones. Interrupciones. INTRODUCCIÓN Una interrupción es la ocurrencia de un evento o condición la cuál causa una suspensión temporal del programa mientras la condición es atendida por otro subprograma. Una interrupción

Más detalles

MICROPROCESADORES II LENGUAJE C EN LOS MICROCONTROLADORES PIC

MICROPROCESADORES II LENGUAJE C EN LOS MICROCONTROLADORES PIC MICROPROCESADORES II LENGUAJE C EN LOS MICROCONTROLADORES PIC Tipos de datos en CCS TIPO TAMAÑO RANGO DESCRIPCION int1 short 1 bit 0 a 1 Binario int int8 8 bits 0 a 255 Entero int16 long 16 bits 0 a 65535

Más detalles

C2. Explica que es una MACRO en lenguaje C y para que se emplean. (0.5 puntos).

C2. Explica que es una MACRO en lenguaje C y para que se emplean. (0.5 puntos). UNIVERSIDAD DE HUELVA ÁREA DE SISTEMAS 16-JUN-2008 ESCUELA POLITÉCNICA SUPERIOR PROCESADORES DE PROPÓSITO GENERAL TIEMPO: 2 5 Horas Nota: El examen resuelto puede tener algún error que se haya deslizado.

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC Temporizadores y contadores en tiempo real: El módulo Timer0 y el aler del PIC 1. Introducción...1 2. Estructura del Timer0...1 3. Funcionamiento del Timer0...2 3.1. Entrada de reloj del modulo Timer0...

Más detalles

Display 7 segmentos. Ing. Diego Chacón, Mdhd.

Display 7 segmentos. Ing. Diego Chacón, Mdhd. Display 7 segmentos Ing. Diego Chacón, Mdhd. El displays segmentos, es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos. Cada vez es más frecuente encontrar

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

TEMPORIZADORES Y CONTADORES

TEMPORIZADORES Y CONTADORES Los µc51 tienen dos temporizadores/contadores, TIMER0 y TIMER1 de 16 bits cada uno. Cuando operan como temporizadores, los registros SFR s THx y TLx son incrementados cada ciclo de máquina, desde 0000H

Más detalles

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 ) FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función

Más detalles

Conceptos básicos de Arduino:

Conceptos básicos de Arduino: Conceptos básicos de Arduino: Cosas básicas de C: Siempre que se acabe de escribir una línea, y esta no acabe en }, hay que poner punto y coma (;) 1. Variables: 2. Cómo declarar una variable: a. Se pueden

Más detalles

La familia PIC18 USB posee 4 timers: Timer0, Timer1, Timer2 y Timer3, cada uno de los cuales tiene sus características únicas.

La familia PIC18 USB posee 4 timers: Timer0, Timer1, Timer2 y Timer3, cada uno de los cuales tiene sus características únicas. 59 5 TIMERS Todos los microcontroladores poseen circuitos temporizadores (timers), los cuales son útiles para: Programar tareas con alta precisión. Contar pulsos externos. Medir intervalos de tiempo. etc.

Más detalles

Duración: 2 h MCF52221 PTA[2:0] SCL SDA PQS0 PQS1 PQS2 PQS3 PQS4 PQS5. Figura 1. Diagrama de bloques del sistema.

Duración: 2 h MCF52221 PTA[2:0] SCL SDA PQS0 PQS1 PQS2 PQS3 PQS4 PQS5. Figura 1. Diagrama de bloques del sistema. UNIVERSIDAD DE ALCALÁ ESCUELA POLITÉCNICA SUPERIOR DEPARTAMENTO DE ELECTRÓNICA I. T. Telecomunicación, esp. Sistemas de Telecomunicación I. T. Telecomunicación, esp. Sistemas Electrónicos I. T. Industrial,

Más detalles