Está en la página 1de 7

Instituto Tecnológico de Culiacán

Evaluación de Microcontroladores
3 Unidad

1. Mencione dos ventajas y dos desventajas de programar un microcontrolador con


ensamblador y con lenguaje C. Explique sus respuestas. (10 Puntos)
Entre las ventajas de programar con ensamblador se encuentran lo que es un buen
manejo del código, quiero decir que programar en este lenguaje permite un fácil acceso
a lo que es trabajar con el código lo cual es eficiente considerando los recursos
limitados del microcontrolador. Otra ventaja sería el control que se tiene del hardware
ya que ensamblador nos da un control que es preciso en el hardware del micro y esto es
útil cuando se necesitan manipular registros para optimizar el rendimiento del pic. Entre
las desventajas se encuentran si comparamos el lenguaje de ensamblador con otros
lenguajes es verdad que este puede reducir en gran escala muchos códigos, pero también
puede que no llegue a ser tan intuitivo como algunos otros lenguajes. Otra desventaja es
que por ejemplo cuando se realiza un código para cierto pic, el cambiar de hardware
podría significar reescribir todo el código por completo lo que hace difícil la
portabilidad de este.

Ahora entre las ventajas de programar en C se encuentran que por ejemplo los códigos
hechos en C pueden ser ejecutados en diferentes microcontroladores cambiando solo un
poco el código en estos. Otra ventaja es que este lenguaje permite una programación
más rápida sin estar propensos a algún error en el código. Entre las desventajas se
encuentran que si lo comparamos con ensamblador el lenguaje C no tiene un control tan
directo con el hardware lo que puede ser un problema se requiere manipular a este. Otro
problema sería que este lenguaje podría llegar a ser ineficiente en los recursos que es lo
que comente anteriormente ya que a veces para hacer la misma tarea en este lenguaje
podría hacer un código de 50 líneas mientras que en ensamblador se podrían reducir a
15.

2. Al manejar los puertos con lenguaje C de un microcontrolador PIC se tienen dos


formas de hacerlo:
• Por RAM
• Por directivas
o #USE FAST_IO o
#USE FIXED_IO o #USE
STANDARD_IO
Si se requiere utilizar el puerto C cuando se maneja el puerto por RAM se tiene
que definir:

PORTC = 0x07 y después se puede utilizar como bit_clear(PORTC,1);

Y al utilizar directivas no se tiene que hacer esto.

#use fast_oi(C) y después se puede utilizar como output_low(PIN_C1);

¿Explique por qué es posible hacerlo así de manera diferente?

Para empezar en el manejo por RAM la manipulación directa de la memoria nos da un


control más preciso sobre el hardware al igual que también puede hacer que el condigo
sea mas especifico en la arquitectura del microcontrolador. Ahora en el manejo de
directivas nos facilita la portabilidad del código entre diferentes microcontroladores
debido a que el compilador se encarga de generar el código especifico en la arquitectura
del hardware de destino lo que hace al código más mantenible, portátil y legible.

Dejando eso en claro la elección entre dichas formas dependerá de lo que requiera el
proyecto ya que el manejo por RAM ofrecerá mayor control, pero tal vez no sea tan
portátil mientras que las directivas ofrecerán portabilidad, pero no habrá un control tan
preciso sobre el hardware.

¿Por qué al usar gestión por RAM se tiene que poner PORTC = 0x07? Explique (20
Puntos) No es que sea obligatorio usarlo, puede llegar a ser opcional dependiendo de
los requisitos que se necesiten para la aplicación, por ejemplo, si solo se necesitaran
modificar o leer bits específicos se puede hacer directamente sin tener que inicializar
todo el puerto, a fin de cuentas, todo dependerá de lo que se quiera realizar, pero si es
para casos sencillos no hace falta inicializar todo el puerto.

3.- Diseñe un programa para el PIC16F877A que realice la medición de


temperatura y la muestre en una pantalla LCD. Para la medición utilice un
sensor analógico de temperatura LM35.
Utilice las conexiones mostradas en el circuito siguiente:
Entregable:
Archivo .c del código implementado e imágenes de la simulación en proteus con el
valor de temperatura en la pantalla LCD. (35 Puntos)
4. Los microcontroladores incorporan puertos con entradas que incluyen
convertidores analógicos a digital (ADC) que permiten lectura de señales de
este tipo. Una de las características de dichas entradas es el número de bits que
maneja el ADC, normalmente de 10 bits. Cuando se utiliza un ADC de 10 bits
se tiene una resolución de 4.88 mV y si se utiliza un ADC de 8 bits se tiene una
resolución de 19.6 mV. ¿A qué se debe esto? ¿Qué ventaja da el hecho de
disponer de más bits en el ADC? Explique cada una de ellas. (15 Puntos)

Se debe a que el hecho de tener más bits en el ADC nos proporcionará una
representación más precisa de la señal de entrada analógica, lo que nos permitirá
mediciones más precisas además de una mayor fidelidad en la conversión analógica
digital.

Entre las ventajas se encontraría que tendríamos mayor precisión por lo que
mencione anteriormente además de una reducción en los errores de cuantificación
que vendrían siendo la diferencia entre la señal analógica real y la representación
digital.

5. El timer1 del microcontrolador PIC16F877A tiene 4 divisores de frecuencia por


1, por 2, por 4 y por 8. ¿Qué función tienen estos divisores y porqué son
necesarios para el funcionamiento del temporizador? Explique a detalle sus
respuestas. (10 puntos)

En el divisor 1 no se reduce la frecuencia de entrada y es útil cuando se necesita la


máxima resolución y velocidad de conteo del temporizador.
En el divisor 2 reduce la velocidad de conteo del temporizador a la mitad en
comparación con el modo sin división.
En el divisor 4 se reduce la velocidad de conteo aun más lo que proporciona una
mayor duración entre interrupciones del temporizador.
En el divisor 8 se proporciona la velocidad de conteo más baja de todos los
divisores, lo que nos da la mayor duración entre interrupciones del temporizador.

Estos divisores son necesarios en el funcionamiento del temporizador ya que al


ajustar la velocidad de conteo con los divisores se pueden adaptar las interrupciones
del temporizador a las necesidades específicas de la aplicación. También en algunas
aplicaciones se requerirá una temporización más rápida junto con una resolución
mas alta mientras que también habrá otras donde se necesite lo opuesto, una
temporización mas lenta para reducir la carga del procesador y así mismo poder
ahorrar energía.

6. Si al realizar una lectura de un puerto con entrada de ADC del


microcontrolador PIC16F877A se tiene la lectura de 534, ¿Qué valor de voltaje
hay en la entrada de la terminal? Explique (10 puntos)

534
Voltaje real = ∗5 V
1023
Esto da igual a 2.60V
Se llega a este valor porque el 1023 sale de máximo valor del ADC que es 2 10-1
porque se cuenta desde 0 hasta 1023 y los 5V solo es una referencia de voltaje.

También podría gustarte