miércoles, 10 de octubre de 2018

LABORATORIO N° 07

MANEJO DE TIMER E INTERRUPCIONES


1. COMPETENCIA ESPECIFICA DE LA SESIÓN
  • Conocer el funcionamiento y la configuración de las Interrupciones
  • Conocer el funcionamiento y la configuración del Timer cero
  • Aplicar estos conocimientos en la realización de un cronómetro



2. MARCO TEÓRICO

2.1. INTERRUPCIÓN TIMER0 PIC
Interrupción timer0 PIC, mediante la interrupción timer0 PIC se puede detener el programa  principal con el cual este trabajando el microcontrolador PIC, para indicarle al microcontrolador que se dedique a realizar otras tareas, al finalizar la interrupción timer0 PIC, se seguirá con el programa principal desde donde fue interrumpido.

En esta sección que es una secuencia del tema tratado en este enlace, se tratará sobre la interrupción timer0 PIC por desborde, por lo que es muy importante que se sepa utilizar el timer0 PIC, sobre la utilización del timer0 PIC ya se ha tratado y se puede ver aquí, para lo que se va a comentar a continuación se utilizará como base el microcontrolador PIC16F84A.

La interrupción timer0 PIC por desborde ocurre cuando el registro TMR0 del timer0 llega a su valor máximo de 255 tras lo que se reinicia a 0, a este paso de 255 a 0 se le llama desborde, y es en ese momento que se puede habilitar que ocurra una interrupción.

2.2. INTERRUPCIÓN TIMER0 PIC POR DESBORDE
Del registro INTCON se pondrá su bit7 GIE a 1 para habilitar el uso de las interrupciones, su bit5 TMR0IE se pondrá a 1 para habilitar el uso de la interrupción timer0 PIC por desborde, su bit2 TMR0IF es la bandera que detecta que se ha producido la interrupción del  timer0 por desborde y se tendrá que poner a 0 para que haga la detección, cuando ocurre la interrupción este bit se pone automáticamente a 1, y para seguir detectando mas interrupciones externas en al rutina de atención a las interrupciones se tendrá que poner nuevamente a 0 este bit.
interrupción timer 0 pic intcon

Del registro OPTION_REG se pone a 0 su bit5 T0CS para indicarle al PIC que se utilizará el timer0 como temporizador, el bit4 se pone a 0 ya que este se usa cuando el timer0 es utilizado como contador, mediante su bit3 PSA=0 se indica a quien será asignado el prescaler, y con sus bits PS2:PS0 se indica de cuanto será el prescaler.
interrupción timer0 pic option_reg
interrupción timer0 pic registro option_reg2


3. EVIDENCIA DE TAREAS EN LABORATORIO

3.1. DIAGRAMA DE SIMULACIÓN DEL ENTRENADOR DE PICS, EN PROTEUS



3.2. VÍDEOS EXPLICATIVOS MOSTRANDO LAS TAREAS A SER EVALUADAS Y SIMULACIÓN DEL PROGRAMA SOLICITADO

3.2.1. VIDEO: PARICAHUA CRUZ, MAYCOL REINILDO

JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES (último nivel)


3.2.2. VIDEO: SEJJE YUCRA, FERNANDO 

JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.3. VIDEO: CHAVEZ CHENEAU, DAVID ALONSO
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.4. VIDEO: BALLENAS ZÚÑIGA, MARVIN ROODWELL
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.5. VIDEO: MENDEZU NINA, ELIZABETH YULISSA
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.6. VIDEO: CARRANZA CAVANI, JEAN PIERRE
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES





lunes, 1 de octubre de 2018

LABORATORIO N° 06

LECTURA DE ENTRADAS ANALÓGICAS Y SENSOR DE TEMPERATURA


1. COMPETENCIA ESPECIFICA DE LA SESIÓN
  • Lecturas analógicas de un canal del PIC
  • Configuración de un Sensor de Temperatura
  • Lectura analógica en una pantalla LCD


2. MARCO TEÓRICO

2.1. ENTRADAS ANALÓGICAS

2.1.1. DESCRIPCIÓN
adc
El PIC 16F877a, entre sus varios periféricos, posee un conversor análogo a digital con una resolución de 10 bits que puede leer los voltajes presentes en los pines marcados como AN0 hasta AN7
pines

La lectura de estos se hace de forma multiplexada, una a la vez. Como buen sistema digital, las lecturas son tratadas como muestras tomadas a intervalos regulares de tiempo, las que son retenidas por un capacitor interno. La cantidad de muestras por segundo o velocidad de lectura son un submultiplo de la velocidad de oscilación del PIC por lo cual se debe cuidar que esta no resulte ser mayor que el tiempo que el capacitor interno demora en cargarse.

Una mala elección de velocidad de lectura, puede resultar en mediciones erróneas, por debajo de las magnitudes que se pretenden medir. Según Microchip, el tiempo de adquisición de los datos debe ser mayor a 19.72us.


2.1.2. REGISTROS INVOLUCRADOS EN LA CONVERSIÓN A/D
La conversión analogo-digital, se configura y controla con los registros ADCON0 y ADCON1, donde es posible configurar aspectos como el canal (pin del PIC) en que se hará la lectura, velocidad de muestreo, estado de la conversión, pines análogos o digitales, entre otros. Por otro lado la conversión resultante se alberga en los registros ADRESH y ADRESL La gráfica lo explica de mejor manera.
registrosAcon


2.1.3. VELOCIDAD DE CONVERSIÓN
La velocidad de muestreo con que se tomarán lecturas en el pin indicado, viene dada por el binario formado por los bits ADCS2-ADCS1-ADCS0, donde cada combinación corresponderá  a lo mostrado en la tabla. (extraída del datasheet).
osc

2.1.4. CANAL DEL LECTURA
El binario formado por CHS2-CHS1-CH0 corresponde al equivalente decimal del canal a leer. Por ejemplo 0b111 corresponde a leer el acanal AN7, mientras que el binario 0b011 corresponderá a AN3.


2.1.5. BIT DE ESTADO DE LA CONVERSIÓN
Este bit permanecerá en 1 mientras se esté ejecutando la conversión análogo-digital. Obviamente se debe esperar a que este esté en 0 antes de poder leer el resultado de la conversión.


2.1.6. CANALES USADOS COMO ENTRADA ANALÓGICA
En el binario formado por los bits PGF3-PGF2-PGF1-PGF0, se debe ingersar la combinación correspondiente a los canales digitales o analógicos que se quieran usar, vease la siguiente tabla para más detalle.
pinesad
En este caso cabe notar la simplicidad de utlizar 0000 para tener todos los pines analógicos de 0 a 5 volts o 0110 para desactivar la conversión AD y usar esos pines como digitales.


2.1.6. EL BIT ADFM Y COMO LEER EL RESULTADO.
El resultado de la conversión, finalmente será un numero de 0 a 1023 correspondiente a los 0 a 5 volts, tal como se muestra  en la primera Imagen bajo el título principal. Este número al ser de 10 bits no cabe en un solo registro y es por eso que se utilizan dos (ADRESH y ADRESL) en binario puede parecer dificil de entender pero en en el lenguaje C de XC8 basta con sumar ambos registros y almacenar el reslutado en un INT para tener el número entre 0 y 1023 correspondiente a la conversión.


3. EVIDENCIA DE TAREAS EN LABORATORIO

3.1. DIAGRAMA DE SIMULACIÓN DEL ENTRENADOR DE PICS, EN PROTEUS


3.2. VÍDEOS EXPLICATIVOS MOSTRANDO LAS TAREAS A SER EVALUADAS Y SIMULACIÓN DEL PROGRAMA SOLICITADO

3.2.1. VIDEO: PARICAHUA CRUZ, MAYCOL REINILDO

JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.2. VIDEO: MENDEZU NINA, ELIZABETH YULISSA

JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.3. VIDEO: CARRANZA CAVANI, JEAN PIERRE

JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.4. VIDEO: SEJJE YUCRA, FERNANDO 
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.5. VIDEO: CHAVEZ CHENEAU, DAVID ALONSO
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES


3.2.6. VIDEO: BALLENAS ZÚÑIGA, MARVIN ROODWELL
JUEGO PARA APRENDER A PROGRAMAR: BLOCKLY GAMES