M Microcontroladores ITSE 2023 1
M Microcontroladores ITSE 2023 1
M Microcontroladores ITSE 2023 1
FACULTAD DE ESTUDIOS
SUPERIORES CUAUTITLAN
Departamento: Asignatura:
Ingeniería Microcontroladores
Manual de Laboratorio de
Microcontroladores
Laboratorio de Microcontroladores
Índice
Introducción III
Bibliografía VI
Práctica 3 Temporizadores
5.3. Programación de microcontroladores.
-Microcontrolador PIC 21
Práctica 4 Interrupciones
5.4. Programación de los registros internos.
-Microcontrolador PIC 26
Índice I
Facultad de Estudios Superiores Cuautitlán UNAM
Índice II
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Prólogo
Introducción
Los circuitos digitales permiten la implementación de operaciones lógicas, combinacionales y
secuenciales, mediante la interconexión de circuitos integrados (IC’s) que contienen compuertas
lógicas, flip-flop’s y otros elementos. Sin embargo, conforme crecen las necesidades de diseño y la
complejidad de cada aplicación, esta se vuelve una solución impráctica y costosa.
En la actualidad existe una serie de dispositivos conocidos como microcontroladores; estos reúnen
dentro de un solo chip muchas de las características propias de una computadora, como pueden ser
las memorias RAM y ROM o los puertos, además de otros elementos. El que se encuentren todos los
elementos del microcontrolador dentro de un solo chip indica que son dispositivos de muy alta
densidad de integración. Los microcontroladores suelen ser utilizados en aplicaciones de control
debido a que utilizan de manera más eficiente la memoria de que disponen además de poseer un
conjunto de instrucciones mucho más reducido en comparación con una computadora.
Prólogo III
Facultad de Estudios Superiores Cuautitlán UNAM
Otra característica que ha contribuido para que los microcontroladores hayan tomado la preferencia
de muchos usuarios es su bajo costo pues, aunque varía dependiendo de la capacidad de cada modelo
de microcontrolador, generalmente resultan ser muchas veces más baratos que otros medios de
control como pueden ser las computadoras o los controladores lógicos programables (PLC’s).
Los microcontroladores poseen una gran capacidad de adaptación a las distintas aplicaciones de
control que se presentan en la industria, a pesar de que sus capacidades son limitadas. Esto lo
compensan con la gran cantidad de modelos existentes, de los cuales se puede seleccionar aquel que
cubra las necesidades del sistema a controlar.
Finalmente, el alumno deberá comprender la necesidad de interacción entre las diferentes áreas de
la Ingeniería para llevar a la práctica un sistema de control basado en microcontrolador. Entre estas
áreas se distinguen:
2. Se permite el uso de medios electrónicos y equipo de sonido (celulares, tabletas, computadoras, etc.)
únicamente para la realización de las prácticas.
Prólogo IV
Facultad de Estudios Superiores Cuautitlán UNAM
4. Es responsabilidad del profesor y de los alumnos revisar las condiciones del equipo del laboratorio al inicio
de cada práctica. El profesor reportará cualquier anomalía que pudiera existir (prendido, dañado, sin
funcionar, maltratado, etc.) al encargado de área correspondiente o al jefe de sección.
5. Es requisito indispensable para la realización de las prácticas, que el alumno cuente con su manual
completo y actualizado al semestre en curso, en formato digital o impreso, el cual podrá obtener en:
http://olimpia.cuautitlan2.unam.mx/pagina_ingenieria.
6. El alumno deberá traer su circuito armado para poder realizar la práctica, de no ser así no podrá realizar
dicha práctica (donde aplique) y tendrá una evaluación de cero en la práctica de la sesión
correspondiente.
7. Para desarrollar trabajos, o proyectos en las instalaciones de los laboratorios, es requisito indispensable
que esté presente el profesor responsable, en caso contrario no podrán hacer uso de las instalaciones.
8. Correo electrónico del buzón para quejas y sugerencias para cualquier asunto relacionado con los
laboratorios ([email protected]).
9. La evaluación de cada sesión se realizará en base a los criterios de evaluación de cada laboratorio y, en
caso de que el alumno no asista, tendrá falta y será indicada en el registro de seguimiento y control por
medio de guiones.
A – (Aprobado); Cuando el promedio total de todas las prácticas de laboratorio sea mayor o igual a 6 siempre y
cuando tengan el 90% de asistencia y el 80% de prácticas acreditadas en base a los criterios de evaluación.
NA – (No Aprobado); No se cumplió con los requisitos mínimos establecidos en el punto anterior.
NP – (No Presentó); No se entregó reporte alguno.
11. Los casos no previstos en el presente reglamento serán resueltos por el Jefe de Sección.
NOTA: En caso de incurrir en faltas a las disposiciones anteriores, el alumno será acreedor a las siguientes sanciones
por parte del profesor de laboratorio según sea el caso y la gravedad, baja temporal o baja definitiva del
grupo de laboratorio al que está inscrito.
Para la presentación del reporte se deberá cumplir con los requisitos indicados en cada una de las
prácticas, incluyendo:
• Introducción • Observaciones
• Procedimiento experimental • Esquemas
• Tablas de datos • Diagramas
• Mediciones • Cuestionario
• Gráficas • Conclusiones
• Comentarios • Bibliografía
Prólogo V
Facultad de Estudios Superiores Cuautitlán UNAM
U. N. A. M.
F. E. S. C.
Figura II. Información necesaria para la portada de actividades previas y reportes de prácticas.
Bibliografía
1) Programación de sistemas 4) AVR microcontroladores.
embebidos en C Configuración total de periféricos
Galeano, Gustavo López Chau, Ausdrubal
Alfaomega, 1º Edición Universidad Autónoma del Estado de
México, 2009 México UAEM
2) Compilador C CCS y Simulador México, 2006
Proteus para microcontroladores 5) Atmega8 Data Sheet
PIC Atmel Corporation, 2013
García, Eduardo 6) Embedded C Programming with the
Alfaomega, 1º Edición AVR Microcontroller
México, 2008 R. H. Barnett, S. Cox, y L. O’Cull
3) Microcontroladores, Fundamentos Cengage Learning 2ND Edition
y Aplicaciones con PIC Clifton Park, NY, 2006
Valdes Pérez, Fernando 7) Some Assembly Required:
Alfa Omega Assembly Language Programming
México, 2007 with the AVRMicrocontroller
T. S. Margush
CRC Press, 1ST Edition
Boca Raton, 2011
Prólogo VI
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 0
Herramientas de simulación de microcontroladores
Tema
Objetivos
Introducción
En el caso de los microcontroladores, una vez que el desarrollador ha terminado de realizar el código
con el cual será programado el circuito integrado, existen distintas formas de determinar si el
microcontrolador realizará el funcionamiento deseado por medio del uso de herramientas de
simulación y revisión de código. Cabe aclarar que estas simulaciones no son una garantía de que todo
funcione de manera correcta al realizarse la implementación final, pero son una excelente guía que le
indica al desarrollador si va por el camino correcto.
Lo anterior tiene varias ventajas pues permite la detección temprana de errores de programación,
errores de funcionamiento y errores de conexión con otros dispositivos ahorrando una gran cantidad
de tiempo al realizar las pruebas de manera física y evitando posibles daños a los dispositivos, lo que
también se traduce en menores costos de desarrollo.
Otro ejemplo de error no sintáctico puede ser cuando se definió de manera incorrecta uno de los
puertos del microcontrolador, esto se considera un error de funcionamiento pues no está mal escrito
el código, pero el puerto puede estar definido como salida cuando se requería de entrada. Por último,
Práctica 0 - Introductoria 1
Facultad de Estudios Superiores Cuautitlán UNAM
existen errores de conexión, que no tienen que ver con la programación, sino que simplemente las
líneas que unen al microcontrolador con otros dispositivos están dispuestas de manera incorrecta.
Error de sintaxis
Error corregido
Figura 0.1. Ejemplo de error de sintaxis.
Los primeros dos tipos de errores mencionados pueden ser detectados por medio de herramientas
llamadas debug, estas herramientas se encuentran incluidas dentro del software del compilador o
dentro del programa de simulación de circuitos. El debug no corrige de manera automática los
errores, pero le permite al desarrollador realizar una revisión sistemática del código del programa en
busca de posibles errores al mismo tiempo que observa el comportamiento que presentaría el
microcontrolador para determinar que su funcionamiento es el deseado. En cuanto al error de
conexiones, este se puede observar en el entorno del simulador.
Ciclo no Instrucción
deseado que no llega a
ser realizada
Figura 0.2. Ejemplo de error lógico.
Equipo
Procedimiento experimental
1. Abra el compilador MPLab IDE y seleccione la opción “New Project” para crear un proyecto,
como se muestra en la figura 0.3(a). A continuación, aparecerá una ventana donde se debe
Práctica 0 - Introductoria 2
Facultad de Estudios Superiores Cuautitlán UNAM
(a) (b)
Figura 0.3. Creación de un nuevo proyecto en MPLab IDE.
2. Haga clic en el menú “View” y seleccione la opción “Project” como se indica en la figura 0.4(a),
esto hará que se muestre la ventana de proyecto como la mostrada en la figura 0.4(b).
(a) (b)
Figura 0.4. Ventana de proyecto.
3. A continuación, cree un nuevo archivo usando la opción “New File” como se ve en la figura 0.5,
de esta manera aparecerá la página donde debe ser escrito el programa.
New File
4. Escriba en el nuevo archivo el programa que se muestra en la figura 0.6. Cuando termine
guarde el archivo dándole un nombre y cuidando de que debe de incluir la extensión “.asm”.
5. Haga clic derecho sobre la carpeta “Source Files” de la ventana de proyecto y seleccione la
opción “Add Files...”. Seleccione y agregue el archivo que acaba de escribir, como se muestra
en la figura 0.7.
Práctica 0 - Introductoria 3
Facultad de Estudios Superiores Cuautitlán UNAM
Práctica 0 - Introductoria 4
Facultad de Estudios Superiores Cuautitlán UNAM
10. Una vez que el programa quede compilado de manera exitosa, abra el software de simulación
y arme el circuito mostrado en la figura 0.10 usando los elementos de la lista.
Práctica 0 - Introductoria 5
Facultad de Estudios Superiores Cuautitlán UNAM
12. Haga doble clic en el microcontrolador y en la ventana emergente seleccione el archivo con
extensión “.hex” y complete la información que se muestra en la figura 0.11.
13. Inicie la simulación y compruebe que el funcionamiento del circuito corresponde con lo
descrito previamente. Realice algunas capturas de pantalla para agregarlas a su reporte.
14. Detenga la simulación y nuevamente haga doble clic en el microcontrolador. Cambie el archivo
con extensión “.hex” por el que tiene extensión “.cof”.
15. No inicie la simulación, en esta ocasión abra el menú “Debug” y seleccione la opción “Start
VSM Debugging” como se muestra en la figura 0.12.
Práctica 0 - Introductoria 6
Facultad de Estudios Superiores Cuautitlán UNAM
16. Abra nuevamente en el menú “Debug” y en la opción “PIC CPU” seleccione “Source code” y
“Registers”. En el área de trabajo del simulador deberán aparecer las ventanas que se
muestran en la figura 0.13.
17. La ventana de “Source Code” permite observar la ejecución de cada una de las instrucciones
del programa mientras que la ventana “Registers” muestra cómo se modifica el contenido de
los registros más importantes de la memoria del microcontrolador.
18. Usando la opción “Step Into Source Line”, ver figura 0.14, que se encuentra en la parte superior
de la ventana “Source Code” avance una instrucción a la vez dentro del código del programa y
observe la manera en que se modifica el contenido de los registros dentro de la venta
“Registers”.
19. En la figura 0.15 se observa como al avanzar hasta la línea 0006 del código se modifica
el contenido del registro STATUS.
20. Continúe observando los cambios en los registros internos del microcontrolador
hasta llegar a la rutina REVISA dentro del programa. Note que esta rutina en realidad
es un ciclo que monitorea los botones de entrada y salida de datos del sistema.
21. Coloque un dato en el puerto de entrada y presione el botón de entrada de dato, vuelva
a avanzar en la ejecución de las instrucciones del programa hasta que se encuentre en
la rutina llamada ENTRA. Como se muestra en la figura 0.16.
22. Una vez que termine el proceso para ingresar y guardar el dato el programa regresará
a la rutina REVISA, estando en esta parte presione el botón para extraer el dato de la
memoria del microcontrolador y que se muestre en el puerto de salida.
Práctica 0 - Introductoria 7
Facultad de Estudios Superiores Cuautitlán UNAM
23. Avance la ejecución de las instrucciones del programa hasta alcanzar la rutina SALE.
Observe con cuidado los cambios que ocurrente en los registros internos hasta que el dato
aparece en el puerto del microcontrolador como se observa en la figura 0.17.
24. Finalmente, note que el dato presente en el puerto de salida del microcontrolador no cambiará
hasta que primero se ingrese un nuevo dato y se den las señales de control correspondientes.
Práctica 0 - Introductoria 8
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario.
2) Investigue lo que son los lenguajes de bajo nivel y de alto nivel, explique la diferencia entre
ambos y mencione ejemplos de cada uno.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 0 - Introductoria 9
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 1
Manejo de señales multiplexadas
Tema
Objetivos
Introducción
Los microcontroladores, debido a la gran variedad de opciones especiales y módulos periféricos que
pueden llegar a contener, requerirían de una gran cantidad de terminales dedicadas a cada una de
estas funciones, lo cual los volvería imprácticos, de gran tamaño y costosos. Es por eso que es
necesaria la multiplexación de funciones en cada una de las terminales del microcontrolador. En la
figura 1.1 se muestran ejemplos de microcontroladores cuyas terminales están multiplexadas con
distintos funcionamientos tanto de entrada como de salida.
Práctica 1 10
Facultad de Estudios Superiores Cuautitlán UNAM
2) Investigue y tenga a la mano, ya sea en formato electrónico o impreso, la hoja técnica del
microcontrolador solicitado en la práctica teniendo especial interés en el diagrama de
terminales y las funciones de cada pin de puerto. Muéstresela a su profesor(a) al inicio de la
práctica.
3) En el software MPLAB IDE, escriba el código ensamblador mostrado en la figura 1.3, compile
el código y corrija los posibles errores de sintaxis que aparezcan.
4) Realice la simulación del circuito de la figura 1.4 empleando el archivo .hex obtenido de la
compilación del programa de la figura 1.3. Compruebe que se comporta de acuerdo con la
descripción del punto 2 del procedimiento experimental. Entregue una copia a su profesor
siguiendo las indicaciones que éste haya dado para su entrega.
Práctica 1 11
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
1 PC con software instalado:
• MPLAB IDE
1 Grabador universal o grabador de PICs
1 Fuente de voltaje bipolar de CD
Material
1 Microcontrolador PIC12F615
2 Resistencias de 1 kΩ, ½ watt
2 Resistencias de 0.33 kΩ, ½ watt
2 Botones tipo push
Tableta de Conexiones
Alambres y cables para conexiones
Procedimiento experimental
1. Escriba y compile el código mostrado en lenguaje ensamblador de la figura 1.3. Para crear el
proyecto en el software MPLAB IDE se puede basar en el procedimiento visto en la Práctica 0.
Práctica 1 12
Facultad de Estudios Superiores Cuautitlán UNAM
3. Programe el microcontrolador con el archivo con extensión .hex obtenido como resultado de
la compilación del programa.
4. Arme el circuito mostrado en la figura 1.4 alimentando el circuito en las terminales VDD y VSS.
de acuerdo con lo que indica la hoja técnica del microcontrolador.
5. Note que, durante la ejecución de esta función, la terminal 5 del microcontrolador toma
una sola de las 7 funciones que posee, esto indica que las terminales en el
microcontrolador están multiplexadas.
7. A continuación, en el programa de la figura 1.3, comente la línea que apaga las funciones
analógicas. Compile nuevamente el programa y descárguelo en el microcontrolador.
Práctica 1 13
Facultad de Estudios Superiores Cuautitlán UNAM
10. Escriba un nuevo programa en donde se tenga como un pin de entrada digital a GP2 y como
pin de salida digital a GP0, esto representa otra de las funciones que pueden tomar las
terminales del microcontrolador. El funcionamiento del circuito es el siguiente, siempre que
en el pin de entrada exista un 0Log, en el pin de salida también deberá aparecer un 0Log, si en
el pin de entrada aparece un 1Log, en el pin de salida deberá observarse también un 1Log.
Cuestionario.
2) Para el primer programa de la práctica, indique cuál de las funciones del pin GP2 es la que
esta activa y explique brevemente dicha función.
3) Para el microcontrolador PIC16F688 investigue cuáles son todas las funciones con las que
cuentan cada uno de sus pines del Puerto A, indicando si son de tipo analógico o digital.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 1 14
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 2
Puertos del microcontrolador
Tema
Objetivos
➢ Manipular los puertos del microcontrolador para introducir y sacar datos de este mediante
lenguaje ensamblador.
➢ Configurar los diversos puertos del microcontrolador para que funcionen como puertos de
entrada o puertos de salida.
➢ Utilizar el software MPLAB IDE de Microchip para compilar microcontroladores.
Introducción
Los microprocesadores PIC tienen diversos puertos de entrada/salida paralelos de usos generales
denominados Puerto A, Puerto B, Puerto C, etc. El número de puertos depende del dispositivo que se
tenga. Por ejemplo, el PIC16F84A solo tiene dos puertos A y B; mientras que el PIC 16F887 tiene 5
puertos A, B, C, D y E. Para hacer una analogía, los puertos del microcontrolador son similares al ya
desaparecido puerto paralelo de la PC, en donde la información entra y sale a través de 8 líneas
independientes de datos.
Los puertos del microcontrolador PIC son el medio de comunicación con el mundo exterior, en ellos
se pueden conectar los periféricos o circuitos necesarios como por ejemplo los módulos LCD, motores
eléctricos, etc., pero estas conexiones no se pueden realizar arbitrariamente. Existen unas reglas
básicas que deberán cumplirse para que el microcontrolador no sufra daños o se destruya. Para ello
es necesario conocer los límites de corriente que puede manejar el microcontrolador.
Práctica 2 15
Facultad de Estudios Superiores Cuautitlán UNAM
include <p16fxxx.inc>
ORG 0x05
Inicio
Indica que el origen del programa se encontrará en la ubicación de la memoria indicada por la etiqueta
“Inicio”, es decir, se colocará en la dirección 0x05 de la memoria de programa.
Asigna a la dirección 0x20 de la memoria el identificador “dato”, con esto se puede considerar que
dicha dirección funcionará como un registro de propósito general para el programador.
• END
Es de uso obligatorio y siempre se coloca al final del programa para marcar su finalización. El
compilador MPLAB solo reconoce las líneas de instrucciones que estén escritas previas a la aparición
de la directiva END.
Práctica 2 16
Facultad de Estudios Superiores Cuautitlán UNAM
3) Desarrolle un programa que configure las líneas de un puerto cualquiera “X” como entrada y
las líneas de otro puerto “Y” como salida. El dato de entrada a través del Puerto X será dado
en formato BCDNAT de 4 bits mientras que en el Puerto Y será mostrado en formato Aiken.
Para realizar el programa siga los pasos que se describen a continuación.
Equipo
Práctica 2 17
Facultad de Estudios Superiores Cuautitlán UNAM
Material
Procedimiento experimental
1. Cree un nuevo proyecto en MPLAB IDE y escriba el programa solicitado en las actividades
previas, puede usar como guía el pseudo código mostrado en la figura 2.2 (a) y (b).
;***** Programa que lee un dato del puerto X y lo muestra en el puerto Y *****
list p=16FXXX ;Definir el PIC con el que se va a trabajar.
include "P16FXXX.INC” ;Archivo de direcciones con su respectiva etiqueta
;Definición de variables
dato equ 0x20 ;Asignar una dirección de memoria a la variable.
;Configuración de puertos
Inicio bsf STATUS,RP0 ;Se posiciona en el banco 1 de la memoria.
movlw 0xFF ;Todos los bits de trisX en uno (1Log) configuran
movwf TRISX ;al puerto X como entrada.
movlw 0x00 ;Todos los bits de trisY en cero (0Log) configuran
movwf TRISY ;al puerto Y como salida.
bcf STATUS,RP0 ;Se posiciona en el banco 0 de la memoria.
;Programa principal
ciclo call leer_puerto_X ;Llama a la subrutina de lectura.
call convertir_dato ;Llama a la subrutina de conversión.
call escribir_puerto_Y ;Llama a la subrutina de escritura.
goto ciclo ;Regresa al ciclo principal.
Práctica 2 18
Facultad de Estudios Superiores Cuautitlán UNAM
2. Proceda a armar el circuito en la protoboard de acuerdo con el diagrama de la figura 2.3 y los
puertos elegidos al desarrollar el código, programe el microcontrolador y verifique que
realice la lectura y escritura de puertos correctamente. Anote sus observaciones.
3. Tome algunas fotografías donde se observe el funcionamiento del circuito para distintos
valores en los puertos de entrada y salida.
4. Realice los cambios necesarios al programa principal para que se realice la segunda
conversión. Recuerde que el dato a convertir es el del Puerto X, mismo que se convertirá
simultáneamente a código BCDNAT (que se mostrará en el Puerto Y) y a código Gray (que se
mostrará en el Puerto Z). Recuerde que X, Y y Z hacen referencia a cualquier puerto elegido,
no son puertos “reales” del microcontrolador.
Cuestionario.
Práctica 2 19
Facultad de Estudios Superiores Cuautitlán UNAM
2) ¿Cuáles son los límites máximos de corriente y voltaje que puede soportar un pin de puerto
del PIC16F887? Consulte las características eléctricas en hoja técnica correspondiente.
3) De los distintos puertos con los que cuenta el microcontrolador usado en la práctica, explique
las razones para seleccionar los puertos empleados para realizar el programa de la práctica.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 2 20
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 3
Temporizadores
Tema
Objetivos
➢ Crear retardos a partir del temporizador básico de los microcontroladores PIC, el TIMER 0.
Introducción
Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor
se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo, esto lo hace
hasta que se desborde y llegue a 0, momento en el que se produce un aviso.
Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en
alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o
decrementando al ritmo de dichos impulsos.
El registro TMR0 es un contador de 8 bits, es decir, un tipo particular de registro cuyo contenido es
incrementado con una cadencia regular y programable directamente por el hardware del PIC. Como
es de 8 bits, el máximo de la cuenta está en 255. Este registro puede usarse para contar eventos
externos por medio de un pin de entrada especial (modo contador) o para contar pulsos internos de
reloj de frecuencia constante (modo timer). Además, en cualquiera de los dos modos, se puede
insertar un prescaler, es decir un divisor de frecuencia programable que puede dividir por 2, 4, 8, 16,
32, 64, 128 o 256. Este divisor puede ser utilizado alternativamente como prescaler o del TMR0 o
como postscaler del Watch Dog Timer, según se lo programe.
Una vez alcanzado el valor 255, el registro TMR0 es puesto a cero automáticamente comenzando
entonces a contar desde cero y no desde el valor originalmente cargado. La frecuencia de conteo es
directamente proporcional a la frecuencia de reloj aplicada al chip y puede ser modificada
programando adecuadamente algunos bits de configuración.
Práctica 3 21
Facultad de Estudios Superiores Cuautitlán UNAM
2) Desarrolle un programa que encienda y apague un led de forma intermitente con periodos de
0.7s en cada estado. Puede usar como guía la rutina de tiempo mostrada en la figura 3.1
ajustándola de acuerdo con sus necesidades. Incluya los cálculos realizados para
configurar el módulo del Timer0.
5) Cree un nuevo proyecto en MPLAB IDE y empleando las rutinas anteriores, realizar un
programa que permita, por medio de dos terminales de selección, multiplicar el periodo de
tiempo del programa anterior por 1, por 2, por 3 y por 4.
8) Aprovechando las rutinas de tiempo ya realizadas, cree un programa que controle tres pines
del Puerto X de modo que funcione como un semáforo con una escala de tiempo corta,
considere la secuencia de encendido y que los tiempos no los mismos para cada una de las
tres luces.
Equipo
Práctica 3 22
Facultad de Estudios Superiores Cuautitlán UNAM
Material
1 Microcontrolador PIC12F615
1 Resistencia de 1 kΩ, ½ watt
3 Resistencias de 330 Ω, ½ watt
1 Push button
3 Led’s (1 Amarillo, 1 Verde y 1 Rojo)
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones
Procedimiento experimental
1. Haciendo uso del primer proyecto creado anteriormente en las actividades previas, programe
el microcontrolador, puede basar el programa en la subrutina de retardo que aparece en la
figura 3.1. Recuerde que los valores del número de repeticiones (RR) y el valor de tiempo (TT)
mostrados en el código corresponden a los valores calculados en las actividades previas y que
PX.Y hace referencia al pin Y del puerto X, es decir, la terminal de salida que se eligió al crear
el programa.
;Subrutina de retardo
RETARDO movlw 0xRR
movwf 0x20
call DELAY
return
DELAY bcf INTCON,2
movlw 0xTT
movwf TMR0
DELAY_1 btfss INTCON,2
goto DELAY_1
decfsz 0x20,f
goto DELAY
return
3. Tome una fotografía donde se observe el funcionamiento del circuito indicando el voltaje,
periodo y frecuencia de la señal.
Práctica 3 23
Facultad de Estudios Superiores Cuautitlán UNAM
5. Obtenga fotografías donde se observe el funcionamiento del circuito para las distintas
combinaciones de los selectores indicando en cada una el voltaje, periodo y frecuencia de
la señal.
Figura 3.2. Diagrama representativo del circuito temporizador con selectores de frecuencia.
7. Compruebe el correcto funcionamiento del semáforo. Tenga en cuenta que cada luz debe
de tener un tiempo de encendido distinto.
8. Con ayuda del osciloscopio compruebe que los tiempos asignados a cada luz corresponden
con los del programa que diseño y tome fotografías donde se observe el voltaje, periodo y
frecuencia de la señal en cada luz del semáforo.
Cuestionario
1) ¿Cuál es el valor máximo que puede tener la variable de tiempo “TT” para la subrutina de
retardo?
Práctica 3 24
Facultad de Estudios Superiores Cuautitlán UNAM
3) Determine el tiempo máximo de retardo que se puede lograr con el Timer0 del
microcontrolador empleado en la práctica teniendo en cuenta el valor máximo del prescaler
y la frecuencia de reloj interna máxima y explique cuáles son sus limitaciones de
funcionamiento.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 3 25
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 4
Interrupciones
Tema
Objetivos
➢ Hacer uso del puerto INT para detener un proceso y ejecutar una subrutina por medio de la
interrupción.
Introducción
Una interrupción es un evento que notifica al CPU del microcontrolador sobre la ocurrencia de una
situación excepcional de uno de sus periféricos, es decir, las
interrupciones son señales de alta prioridad que permiten
que, cuando se produzca un evento interno o externo, se
detenga la ejecución del programa principal en cualquier
momento. En el momento de producirse la interrupción, el
Pila
Práctica 4 27
Facultad de Estudios Superiores Cuautitlán UNAM
4) Recuerde que cada vez que se activa la interrupción a través de INT el programa se dirige a
la dirección 0004 de la memoria de programa, como se mostró en la figura 4.1. En lenguaje C
no es necesario direccionar los vectores de interrupción como ocurre en lenguaje
ensamblador, pero es necesario que la función de interrupción se encuentre antes de la
función main( ). La función de interrupción se indica como se muestra en la figura 4.3.
Práctica 4 28
Facultad de Estudios Superiores Cuautitlán UNAM
/*Función de interrupción*/
#INT_EXT //Directiva de interrupción externa.
ext_isr( ){ //Función correspondiente a la interrupción.
}
/*Función principal*/
void main( ){ //La función de interrupción esta antes de main( )
5) Tome en cuenta que para habilitar las interrupciones se debe colocar, dentro de la función
main( ), justo al inicio del programa principal las instrucciones para la configuración de las
interrupciones como se muestra en el ejemplo de la figura 4.4.
/* Función principal */
void main( ){
// Configuración de interrupciones
set_tris_A(0x0C); //Configura el Port A.
enable_interrupts(int_ext); //Habilita interrupción externa INT.
ext_int_edge(H_TO_L); //Interrupción por flanco de bajada.
enable_interrupts(global); //Habilita interrupciones globales.
6) Para obtener los tiempos de encendido en las secuencias del programa principal, puede
basarse en lo visto en la práctica anterior para el uso del Timer0.
Práctica 4 29
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
Material
1 Microcontrolador PIC12F615
2 Resistencias de 1 kΩ, ½ watt
4 Resistencias de 330 Ω, ½ watt
2 Push button
4 Leds
Tableta de Conexiones
Alambres y cables para conexiones
Procedimiento experimental
1. Haciendo uso del proyecto creado anteriormente y siguiendo la lógica del algoritmo de las
actividades previas, programe el microcontrolador.
2. Con el circuito previamente armado, como el mostrado en la figura 4.5, verifique que realice
la secuencia de forma correcta y observe en el osciloscopio las señales de salida del
microcontrolador. Anote sus observaciones.
3. Tome fotografías donde se observe el funcionamiento del circuito e inclúyalas junto con las
imágenes del osciloscopio en su reporte.
Figura 4.5. Diagrama representativo del circuito secuencial con interrupción externa.
4. Cambie de alto a bajo el bit INT, explique lo que sucede con las señales en el puerto de salida.
Active varias veces la interrupción y anote sus observaciones.
Práctica 4 30
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario.
1) De manera general, las interrupciones en un microcontrolador pueden dividirse en dos
grupos, mencione dichos grupos y las características de cada uno.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 4 31
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 5
Conexión con dispositivos de interfaz
Tema
Objetivos
➢ Hacer uso de los dispositivos más comunes que sirven como interfaz con el usuario como
pueden ser el teclado y una pantalla LCD.
Introducción
Existe una gran variedad de aplicaciones en las que el microcontrolador debe proporcionar
información del estado de un proceso al usuario o simplemente, mostrar ciertos datos que se le han
solicitado. Además de lo anterior, también es deseable que exista la posibilidad de insertar datos de
parte del usuario para modificar el comportamiento del programa en curso e incluso cambiar el
programa por otro previamente almacenado en la memoria del microcontrolador.
Dos de los dispositivos más comunes que le permiten al humano interactuar con el
microcontrolador son los teclados y las pantallas. En la figura 5.1b se puede observar un teclado de
tipo “matricial”. Como su nombre lo indica, este tipo de teclado funciona como una matriz de cuatro
filas y tres columnas, al presionar alguno de los botones se cierran un par de interruptores internos
que corresponden con la posición vertical y horizontal que ocupa dicho botón. Al estar conectado
este dispositivo al puerto de un microcontrolador, es posible interpretar las señales que provienen
de éste, de acuerdo con la combinación específica en sus líneas de filas y columnas, y relacionarlas
con el botón que fue presionado. La figura 5.1a muestra las conexiones para cada fila y columna.
Por otro lado, en la figura 5.2, se muestra un ejemplo de una pantalla LCD, mejor conocida como
display LCD. Estas pantallas existen en una gran variedad de tamaños y capacidades, es común que
se cataloguen en función del número de caracteres que pueden contener por fila y el número de filas
o renglones que tienen, por ejemplo, en la figura 5.2 se muestra un display de tamaño16x2, es decir,
dos filas de dieciséis caracteres cada una. Cada display contiene un cierto número de líneas
dedicadas a alimentación, datos y control y comúnmente una línea que controla el contraste de la
pantalla.
Práctica 5 32
Facultad de Estudios Superiores Cuautitlán UNAM
Para facilitar la interacción de los microcontroladores con este tipo de dispositivos externos, se han
desarrollado bibliotecas en el lenguaje C que periten controlarlos sin un mayor esfuerzo de
programación, aunque siempre existe la posibilidad de que las bibliotecas no cumplan
completamente con nuestros requerimientos por lo que puede ser necesario realizar alguna
modificación, lo cual también resulta una tarea sencilla pues la mayoría de las bibliotecas son de
“código libre”.
C1 C2 C3
Color Función F1
Negro Común (GND)
Café Común (GND)
F2
Naranja Columna 1 (C1)
Rojo Columna 2 (C2)
Verde Columna 3 (C3) F3
Gris Fila 1 (F1)
Morado Fila 2 (F2) F4
Azul Fila 3 (F3)
Amarillo Fila 4 (F4)
Figura 5.1a. Conexiones del teclado matricial. Figura 5.1b. Teclado de tipo matricial.
3) Desarrolle un programa que permita que el microcontrolador funcione como una “agenda
electrónica”. Dentro del código del microcontrolador deberán incluirse el nombre y teléfono
ficticio de cada miembro del equipo, un familiar de cada uno, números de emergencia como
bomberos, policía u otro, el número de una pizzería y el de un médico; cada uno de estos
Práctica 5 33
Facultad de Estudios Superiores Cuautitlán UNAM
nombres y números deberán estar asociados a una tecla que al ser presionada mostrará la
información en el display. Además, en el momento del encendido o al presionar la tecla #
deberá mostrarse un mensaje de bienvenida y al presionar la tecla * deberá borrarse por
completo la pantalla. NO USE SUS DATOS PERSONALES REALES.
NOTA1: Para el correcto funcionamiento del sistema se requiere cumplir con una de las siguientes
condiciones, que el driver de control para el teclado (kbd.c) haya sido modificado para
trabajar un puerto distinto al que usa el display LCD o que se emplee el driver flex_lcd.c
para controlar el display LDC y utilizar pines de puerto distintos al del teclado matricial.
NOTA2: En el caso del display LCD deberán de soldarse las terminales llamadas “headers”
previamente a la práctica.
Práctica 5 34
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
Material
1 Microcontrolador PIC16F887
1 Display LCD 16x2
1 Potenciómetro de 2 kΩ
5 Resistencias de 10 kΩ, ½ watt
1 Push button
Tableta de Conexiones (Protoboard)
Alambres y cables para conexiones
Procedimiento experimental
1. Haciendo uso del proyecto creado anteriormente y siguiendo la lógica del algoritmo de las
actividades previas, programe el microcontrolador.
2. Para el circuito representativo mostrado en la figura 5.4, tenga cuidado de que las
conexiones del display y del teclado correspondan con los pines de los puertos de entrada y
salida elegidos en el programa.
2k
Práctica 5 35
Facultad de Estudios Superiores Cuautitlán UNAM
5. Incluya algunas fotografías donde se observe el funcionamiento del circuito para varios
casos indicando la tecla presionada para cada uno.
6. Aplique una señal de reset y compruebe que el circuito continúe funcionando de manera
correcta.
Cuestionario.
1) Investigue la manera de conectar una memoria serial de tipo EEPROM al sistema para
incrementar su capacidad de almacenamiento.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 5 36
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 6
Temporizadores y contadores
Tema
Objetivos
➢ Utilizar uno de los módulos de temporización en modo de contador para identificar eventos
que se produzcan de forma externa al microcontrolador.
Introducción
Los temporizadores son módulos periféricos que se encuentran dentro de los microcontroladores,
tienen la función de crear retardos de tiempo en base a registros que se incrementan de acuerdo con
un oscilador interno asociado a ellos. Típicamente, existen temporizadores de 8 y 16 bits y varía el
número de módulos con cada modelo de microcontrolador. Al tratarse de registros que se van
incrementando en cada evento del oscilador, es decir, con cada pulso de reloj, solo pueden ser
programados con valores de tiempo discretos de dicho oscilador, por lo que el microcontrolador
cuenta con otro dispositivo auxiliar llamado prescaler, el cual actúa como un divisor de frecuencia
para poder reducir la velocidad de cada evento. Hay que recordar que, como el registro del
temporizador cambia su valor en cada nuevo evento, estos temporizadores son de tipo ascendente.
Hay otras consideraciones que deben de tenerse en cuenta al programar el módulo del
temporizador, por ejemplo, el valor que puede tomar el prescaler, que se puede consultar de tablas
incluidas en las hojas técnicas del microcontrolador, la frecuencia del reloj con la que opera el µc, la
fuente del reloj y el lenguaje de programación en que se realiza el código. Es necesario realizar estas
consideraciones para poder obtener un resultado apropiado.
Práctica 6 37
Facultad de Estudios Superiores Cuautitlán UNAM
Existe una función adicional asociada a algunos temporizadores que permite usar señales externas
como la fuente de reloj del temporizador. Cuando se utiliza esta opción, se dice que el temporizador
funciona en modo de contador. Con cada evento externo, el valor del registro del temporizador se
incrementará en uno. Normalmente se destina para este modo de funcionamiento los
temporizadores de 16 bits.
2) Defina los términos: periodo, frecuencia, señal de reloj digital, flanco de subida, flanco de
bajada, tiempo de respuesta en circuitos digitales, niveles de voltaje TTL y efecto de rebote.
4) Desarrolle un programa que permita que el microcontrolador funcione como una “fuente de
reloj digital”. El circuito debe contar con dos entradas de selección que permitan cambiar la
frecuencia de la señal de salida con los valores de “apagado”, 6.2kHz, 15.5 kHz y 24 kHz.
NOTA. Considere que, debido al proceso de traducción del lenguaje C a lenguaje máquina y
los límites de operación del microcontrolador, es posible que en la prueba real en el
laboratorio existan errores dentro de un rango de ±3% en las frecuencias, esto es normal.
Práctica 6 38
Facultad de Estudios Superiores Cuautitlán UNAM
9) Compile el nuevo programa con MPLAB IDE, corrigiendo los posibles errores.
10) Escriba un tercer programa que, usando el temporizador de 16 bits, realice el conteo de una
serie de eventos externos al microcontrolador y muestre el valor del conteo en un display
por cada evento en una línea y en la otra línea un conteo por cada grupo de 8 eventos.
12) Compile el programa con MPLAB IDE, corrigiendo los posibles errores.
13) Realice la simulación del sistema de microcontrolador para los tres programas, guarde las
simulaciones y entregue a su profesor una copia impresa o en formato digital de los
resultados obtenidos, de acuerdo con lo indicado por el profesor, donde se aprecien las
mediciones de voltaje, periodo y frecuencia para los dos programas de temporizador y
ejemplos de distintos valores que indique el contador del tercer programa.
14) Los circuitos deberán ser armados previamente a la realización de la práctica. Si elige
con cuidado las conexiones del microcontrolador se pueden colocar todos los elementos
para los programas solicitados en un mismo circuito sin que haya necesidad de modificarlo
posteriormente.
Práctica 6 39
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
Material
Procedimiento experimental
1. Haciendo uso del primer programa de las actividades previas y siguiendo la lógica de su
algoritmo programe el microcontrolador.
2. Con ayuda del osciloscopio, en acoplo de CD, verifique que el circuito de la figura 6.3 genere
de manera correcta las señales de reloj de salida considerando que, si la frecuencia no es
exacta, será aceptable mientras esté dentro de un rango de error de ±3%.
Práctica 6 40
Facultad de Estudios Superiores Cuautitlán UNAM
5. Incluya una imagen donde se observe el cambio en la frecuencia de salida y acótela por
completo como en se realizó con la señal anterior.
7. Con ayuda del osciloscopio compruebe el correcto funcionamiento del nuevo programa e
incluya una imagen de ambos casos donde estén indicadas todas las acotaciones
necesarias. En caso de existir errores en las frecuencias medidas con el osciloscopio,
procure reducirlos hasta donde sea posible, es decir, la mejor aproximación al valor pedido.
9. Pruebe que, al interrumpir el haz de luz infrarroja, se incremente el valor del conteo
mostrado en la pantalla del display.
12. Coloque uno de los canales del osciloscopio a la salida del fototransistor y el otro a la salida
del circuito Schimth Trigger. Interrumpa el haz infrarrojo y observe ambas señales. Anote
sus observaciones e incluya una imagen.
Figura 6.4. Circuito simbólico del sistema de conteo con sensor infrarrojo.
Práctica 6 41
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario.
1) Explique la diferencia entre generar retardos de tiempo por medio de la directiva delay y el
uso de alguno de los temporizadores del microcontrolador.
3) Si el límite del conteo de un sistema es mayor al que se puede alcanzar con el módulo del
Timer1 de la práctica, ¿cómo solucionaría dicha dificultad sin cambiar por otro circuito?
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 6 42
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 7
Control de motores a pasos
Tema
Objetivos
➢ Controlar el sentido de giro y posición angular de un motor de pasos utilizando los modos de
operación a paso completo y medio paso.
➢ Implementar un sistema con un motor a pasos de tipo bipolar empleando un sistema de control
basado en un microcontrolador.
Introducción
Los motores a pasos son dispositivos electromecánicos que convierten una serie de impulsos
eléctricos en desplazamientos angulares discretos. Un ejemplo de estos motores se puede observar
en la figura 7.1. Estos motores presentan la ventaja de tener alta precisión y repetitividad en cuanto
al posicionamiento por lo que son ideales para la construcción de mecanismos en donde se
requieren movimientos muy precisos.
La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por
cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan
solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso y 200 pasos para el segundo caso,
para completar una rotación de 360°. Para mantener la marcha del motor es necesario cambiar
periódicamente la combinación de pulsos en sus terminales, como se ilustra en la figura 7.2.
Práctica 7 43
Facultad de Estudios Superiores Cuautitlán UNAM
El ángulo de rotación del eje es directamente proporcional a la secuencia de pulsos insertados a las
bobinas y la velocidad de rotación es dependiente de la frecuencia de dichos pulsos. Los motores a
pasos son simples de operar en una configuración de lazo abierto y debido a su tamaño
proporcionan un excelente torque a baja velocidad.
En combinación con circuitos de control, además del movimiento ilustrado en la figura 7.2,
conocido como paso completo (full step), es posible lograr movimientos aún más precisos. Este otro
modo de operación se conoce como movimiento de medio paso (half step). Para lograrlo, se
polarizan las bobinas de a una y de a dos intercaladamente, como se muestra en la figura 7.3. Se
observa que también incluye los 4 pasos del modo full step. Obviamente esos son los momentos en
que hay dos bobinas polarizadas, en los otros 4 pasos, sólo se polariza una bobina. La ventaja de este
mecanismo respecto del modo Full step es que se pueden realizar movimientos de giro más finos.
En los sistemas de control moderno se presentan a menudo movimientos de tipo incremental, por
esto los motores de pasos se han convertido en elementos de acción importantes y en la actualidad
podemos encontrar estos motores en unidades de discos ópticos, unidades de disco duro,
impresoras, en gran variedad de máquinas herramientas además de ser fundamentales para
proporcionar movimiento a los robots.
Práctica 7 44
Facultad de Estudios Superiores Cuautitlán UNAM
3) Desarrolle un programa para que el microcontrolador realice el control del sistema de motor a
pasos de la figura 7.5 con las siguientes funciones:
• A través de una señal de control, se selecciona el modo de funcionamiento entre paso
completo y medio paso.
• Por medio de interruptores de selección, el motor debe girar de manera continua hacia
la derecha o izquierda, con una frecuencia en las señales de cada fase de 50 Hz.
• Al presionar alguno de los botones, el motor debe girar hacia la derecha o izquierda
exactamente 360° (1 vuelta), con una frecuencia en las señales de control de 50 Hz.
• Siempre que el motor esté activo, en el display deberá mostrase un mensaje que indique
el modo de funcionamiento, el sentido de giro y el tipo de paso.
4) Realizar la simulación de todos los puntos del desarrollo experimental usando el archivo con
extensión “.hex” que obtuvo al compilar el código, guarde la simulación y entregue a su profesor
una copia impresa o en formato digital de los resultados obtenidos, de acuerdo con lo indicado
por el profesor, donde se aprecien las señales de cada una de las fases del motor, el periodo y la
frecuencia, además del funcionamiento del display.
Equipo
Material
1 Microcontrolador PIC16F887
1 Controlador dual de puente completo L298N
1 Pantalla LCD de 16x2
1 Resistencia de 10 K a ½ W
5 Resistencias de 1 K a ½ W
1 Potenciómetro de 2 K
2 Capacitores de 0.1 F
Práctica 7 45
Facultad de Estudios Superiores Cuautitlán UNAM
Nota: Puede sustituirse el controlador L289N, los diodos 1N4004 y los capacitores de 0.1F por un
módulo integrado como el mostrado en la figura 7.4.
Procedimiento experimental
1. De acuerdo con lo investigado en las actividades previas, determine la secuencia de las fases
del motor a pasos de la práctica.
2. Haciendo uso del programa desarrollado en las actividades previas, y siguiendo la lógica de
su algoritmo, programe el microcontrolador.
3. Conecte las salidas de las fases del circuito L298 a las conexiones del motor de pasos, figura
7.5, siguiendo la secuencia determinada en el punto 1 del procedimiento.
4. Compruebe que, para el circuito mostrado en la figura 7.6, las conexiones correspondan con
las terminales de los puertos elegidos al realizar el programa, como entrada (Puerto X),
salida (Puerto Y) y para el display (Puerto Z).
5. Pruebe el correcto funcionamiento del circuito, comenzando por las funciones de giro
continuo, tanto para paso completo como medio paso.
Práctica 7 46
Facultad de Estudios Superiores Cuautitlán UNAM
LCD1 LM016L
+5
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
+5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
R5 R4
+5 1k 1k
P1
para vuelta
Vuelta Der.
Botones
50%
2k
R1 R2 R3
1k 1k 1k Vuelta Izq.
Puerto X
Full - 1 / Half - 0
Cont. Der.
Puerto Z
Cont. Izq.
PIC16F887
Puerto Y
MCLR
+5 +7
Interruptores
Selección del
tipo de paso
C1 C2 +7
R6 +5
de giro
1 14
SENSA OUT4
15
SENSB GND
U2 D2 D4 D6 D8
L298 8 1N4004 1N4004 1N4004 1N4004
6. La tabla 7.1 presenta el funcionamiento que debe de tener el motor de acuerdo con el
circuito de control de la figura 7.6, observe que la tabla usa lógica inversa.
Práctica 7 47
Facultad de Estudios Superiores Cuautitlán UNAM
7. Con ayuda de ambos canales del osciloscopio, en acoplo de CD, verifique que el circuito
genere de manera correcta las señales de salida en fases consecutivas que van hacia el
circuito L298 y mida su frecuencia, periodo. Esto debe comprobarse para ambos modos,
paso completo y medio paso.
Cuestionario.
1) ¿Cuáles son las ventajas y desventajas de la operación FULL step con respecto al modo HALF
step?
2) Escriba en lenguaje C una subrutina para controlar el movimiento del motor de modo que, cada
que reciba un pulso proveniente de un nuevo botón agregado al sistema, la posición se
incremente en un solo paso (esto se conoce como Jogging).
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 7 48
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 8
Comparadores de voltaje
Tema
Objetivos
Introducción
En la naturaleza, todos los fenómenos que se producen se presentan de manera analógica, es decir,
son procesos continuos que van cambiando con el tiempo, por ejemplo, los cambios de temperatura,
las ondas de sonido, con su amplitud y frecuencia variables, el flujo del agua, etc.
Los comparadores de voltaje son usados como interfaz entre circuitos analógicos y circuitos
digitales, comparan la magnitud de dos voltajes analógicos proveyendo una indicación de tipo
digital o binaria en su salida, como se observa en la figura 8.1. La salida de voltaje se modifica dentro
de los límites fijados por los voltajes de saturación del amplificador, +𝑉𝑠𝑎𝑡 y −𝑉𝑠𝑎𝑡 . Aunque se debe
de tener en cuenta que la limitante de estos circuitos es que la rapidez de respuesta a su salida es
relativamente lenta comparada con otros circuitos.
Figura 8.1 Ejemplo de un comparador de voltaje Figura 8.2. Ejemplo de una fotorresistencia LDR.
Práctica 8 49
Facultad de Estudios Superiores Cuautitlán UNAM
En el caso de los microcontroladores, los comparadores son muy útiles pues permiten obtener una
funcionalidad analógica independientemente de la ejecución del programa.
Los LDR (Light Dependent Resistors), o fotorresistencias, son ampliamente empleados en circuitos
de detección de luz/oscuridad. Normalmente la resistencia de un LDR es muy alta, llegando a mega
Ohms, pero cuando reciben luz de alguna fuente luminosa, la resistencia cae dramáticamente. Los
LDR están fabricados con un material semiconductor de alta resistencia que, al recibir suficiente luz,
los fotones son absorbidos por el semiconductor permitiendo que los electrones salten a la banda de
conducción del material y creando un efecto de disminución de la resistencia.
7) Incluya junto con las actividades previas, el diagrama de terminales del Led RGB empleado.
Práctica 8 50
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
Material
Procedimiento experimental
1. Haciendo uso del programa de las actividades previas y siguiendo la lógica de su algoritmo
programe el microcontrolador.
2. Para el circuito mostrado en la figura 8.3, compruebe que las conexiones correspondan con
las terminales de las entradas y salidas de los comparadores de voltaje indicadas en las
actividades previas.
3. Ajuste los potenciómetros P1 y P2 para igualar los voltajes de referencia Ref 1 y Ref 2 a los
indicados en las actividades previas.
4. Acerque una fuente luminosa poco a poco a los sensores de luz y, con ayuda del multímetro,
mida el voltaje en el que se produzca un cambio en cada uno de los led’s.
5. Repita el punto 4 del desarrollo con la diferencia de que ahora debe comenzar con la fuente
de luz sobre los sensores y después alejarla poco a poco. Incluya fotografías del
funcionamiento del circuito.
Práctica 8 51
Facultad de Estudios Superiores Cuautitlán UNAM
7. Arme el circuito comparador discreto de la figura 8.4, utilizando como entrada una señal
triangular de 5Vpp y un offset de 2.5VCD, de modo que no tenga parte negativa, y una
frecuencia de 100Hz. La salida del comparador será llamada C3OUT.
8. Desconecte las señales de entrada Vin1 y Vin2 y en su lugar conecte en la terminal común de
referencia la misma señal triangular del comparador discreto. Conecte las salidas C1OUT,
C2OUT del microcontrolador y C3OUT del comparador discreto a las tres terminales de
entrada del LED RGB como se muestra en la figura 8.5.
9. Ajuste los potenciómetros para obtener cada uno de los tres colores independientes que
forman al led RGB, es decir, rojo, verde y azul. Incluya imágenes del circuito donde se
aprecie el funcionamiento del circuito para estos tres casos.
10. Varíe los voltajes de referencia por medio de los tres potenciómetros para obtener al menos
4 colores diferentes en el led RGB (diferentes a los tres ya obtenidos) y con ayuda del
osciloscopio observe y grafique las señales presentes en las terminales de C1OUT, C2OUT y
C3OUT, indicando el ancho de pulso correspondiente, que corresponden a cada pin del
led cuya combinación fue la que proporcionó el color elegido.
Práctica 8 52
Facultad de Estudios Superiores Cuautitlán UNAM
11. Anote sus observaciones acerca del comportamiento del led RGB agregando fotografías y
explique a que se debe.
12. Por último, lleve al máximo el ancho de pulso de las tres de salida que van hacia el
led para obtener el color blanco, que resulta de la combinación de todos los colores
con que cuenta el led e incluya una imagen donde se muestre el resultado.
Cuestionario.
1) Defina el concepto de histéresis en comparadores de voltaje.
4) Revise los módulos periféricos que contiene el PIC16F887 y explique cuál sería capaz de
reproducir las señales observadas en el punto 9 del procedimiento.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Elabore una lista de las referencias bibliográficas consultadas.
Práctica 8 53
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 9
Convertidor Analógico – Digital
Tema
Objetivos
Introducción
En los sistemas digitales, que trabajan únicamente con señales de 1’s y 0’s, cierto y falso, 0V y 5V,
no es posible manejar magnitudes continuas. Para integrar ambos mundos existen dispositivos
conocidos como convertidores analógicos – digitales con la capacidad de interpretar señales
continuas y traducirlas en valores numéricos binarios que pueden ser comprendidos por los
sistemas digitales. El proceso de conversión de una señal se realiza en varias etapas, como se
muestra en la figura 9.1. A partir del sistema físico se obtiene una señal con magnitud continua, por
ejemplo, la temperatura. Esta magnitud puede ser de naturaleza variada por lo que, para ser
compatible con un sistema electrónico, es necesario transformarla a una magnitud eléctrica como
son el voltaje o la corriente. Para realizar esta transformación se utiliza un elemento llamado
transductor. Un transductor convierte la señal del sensor en una señal de voltaje, que también es
analógica.
Práctica 9 54
Facultad de Estudios Superiores Cuautitlán UNAM
La selección del tipo de convertidor A/D depende de muchos factores que se determinan a través
de la naturaleza del sistema físico. Además, se deben tener en cuenta factores como la exactitud, la
resolución deseada (el número de bits), el error de cuantización máximo, el tiempo de conversión y
la linealidad, que representa la desviación de los códigos de salida respecto al trazo de una línea
recta desde cero hasta el valor a plena escala.
2) Investigue las equivalencias entre las escalas Celsius, Farenheit, Kelvin, Rankine y Reaumur.
Práctica 9 55
Facultad de Estudios Superiores Cuautitlán UNAM
𝒎𝑽
𝟓 [𝟏𝟎𝟎℃ (𝟏𝟎 )] = 𝟓𝑽
℃
Equipo
Material
Práctica 9 56
Facultad de Estudios Superiores Cuautitlán UNAM
Procedimiento experimental
1. Haciendo uso del primer programa de las actividades previas y siguiendo la lógica de su
algoritmo programe el microcontrolador.
3. Sin tocar el sensor del termómetro digital, anote los datos obtenidos para todas las escalas
de temperatura programadas, estos corresponden al valor de la temperatura ambiente.
4. Compruebe con ayuda del multímetro que el voltaje analógico mostrado en el display LCD
sea correcto.
5. Modifique el programa para que, empleando el mismo selector, muestre las lecturas de
temperatura en grados Rankine y Reaumur además de en grados Celsius del programa
original.
7. Incluya fotografías del funcionamiento del termómetro digital para las diversas escalas de
temperatura.
Práctica 9 57
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario.
1) Determine el rango de voltaje, la resolución y el error máximo del convertidor A/D
empleado, incluya los cálculos realizados.
2) De acuerdo con los resultados de las preguntas anteriores, ¿cuál sería el valor de
temperatura mostrado en el display en grados Celsius y el valor de conversión si a la salida
del amplificador hay 1.2V? Incluya los cálculos.
4) ¿Qué se tiene que modificar en el programa si se desea usar más de un canal analógico?
Conclusiones
Redacte las conclusiones a las que haya llegado después de realizar todas las actividades de esta
práctica.
Bibliografía
Práctica 9 58
Facultad de Estudios Superiores Cuautitlán UNAM
Laboratorio de Microcontroladores
Práctica 10
Modulación por ancho de pulso
Tema
Objetivos
Introducción
Por lo general, todo sistema que procesa información binaria para controlar un proceso analógico
requiere una etapa de entrada analógica – digital y una etapa de salida digital – analógica
(convertidores ADC y DAC). Para reducir costos en los diseños que no requieren alta resolución en
la etapa de salida, es posible sustituir el DAC por un algoritmo de Modulación por Ancho de Pulsos
(PWM – Pulse Width Modulation). Una unidad PWM permite asignar cierta duración de tiempo en
alto o en bajo a un dato digital de n bits que se considera salida de la etapa de control.
La modulación por ancho de pulsos permite generar señales de frecuencia y ciclo de trabajo
variados. Las principales características de una señal de tipo PWM son su periodo y el ciclo de
trabajo, como se observa en la figura 10.1.
Figura 10.1. Periodo y ciclo de trabajo de la modulación por ancho de pulso (PWM).
El periodo se relaciona con la frecuencia de la señal, lo que indica el número de pulsos generado
por unidad de tiempo, mientras que el ciclo de trabajo, también conocido en inglés como duty cycle,
Práctica 10 59
Facultad de Estudios Superiores Cuautitlán UNAM
determina la anchura de cada pulso. Hay que remarcar que el ancho del pulso es independiente de la
frecuencia de la señal.
El voltaje promedio suministrado por el generador PWM es proporcional a dicha señal, es decir, el
voltaje es directamente proporcional ancho del pulso. Como resultado, también la potencia
entregada es directamente proporcional, de modo que entre más ancho el pulso (mayor ciclo de
trabajo), mayor será la potencia suministrada. Un ejemplo de lo anterior puede observarse en la
figura 10.2.
La modulación por ancho de pulso (PWM) es una técnica para controlar circuitos analógicos con
una salida digital. Se utiliza en múltiples aplicaciones, algunas como controlar la intensidad de una
luz y regular la velocidad de los motores de CD.
Figura 10.2. Relación Voltaje promedio – Ancho de pulso de una señal PWM.
2) Realice los cálculos necesarios y escriba un programa para generar una señal PWM
mediante el módulo CCP1 del PIC16F887 con las siguientes características: Frecuencia de 12
kHz y ciclo de trabajo del 25%.
Práctica 10 60
Facultad de Estudios Superiores Cuautitlán UNAM
setup_timer_2(T2_DIV_BY_x,PR2,TMR2)
donde el valor de PR2 se tiene que calcular de acuerdo con la ecuación de periodo que se
indica en las hojas de datos técnicos.
set_pwm1_duty(valor_ciclo)
donde valor_ciclo se tiene que determinar mediante la ecuación de PWM duty cicle de la
hoja de datos técnicos.
Práctica 10 61
Facultad de Estudios Superiores Cuautitlán UNAM
Equipo
Material
Nota: Puede sustituirse el controlador L289N y los diodos 1N4004 por un módulo integrado como
el que se mostró en la figura 7.4 de la práctica 7.
Procedimiento experimental
1. Haciendo uso del primer programa de las actividades previas y siguiendo la lógica de su
algoritmo programe el microcontrolador.
3. Encienda el circuito y con ayuda del osciloscopio, mida la terminal de salida para comprobar
que la señal tiene la frecuencia y el ciclo de trabajo indicados en las actividades previas y
grafíquela.
Práctica 10 62
Facultad de Estudios Superiores Cuautitlán UNAM
Cuestionario.
1) Para el primer programa de las actividades previas, si se deseara cambiar el ciclo de trabajo
entre el valor original y el 45% por medio de un selector, explique qué modificaciones
tendría que hacer usted al código y por qué e incluya el programa ya modificado.
3) Empleando los datos obtenidos en el punto 7 del desarrollo, calcule la potencia media
suministrada al motor para cada ancho de pulso utilizado.
Conclusiones
Elabore un resumen que muestre las conclusiones a las que haya llegado después de realizar todas
las actividades de esta práctica.
Bibliografía
Práctica 10 63