Micro Portafolio Tema 5
Micro Portafolio Tema 5
Ingeniería en Mecatrónica
Microcontroladores AGO-DIC 19
SATCA1: 3-2-5
Carrera: Ingeniería Mecatrónica
2. Presentación
Caracterización de la asignatura
Esta asignatura aporta al perfil del Ingeniero Mecatrónico la capacidad para analizar, diseñar, simular y
construir prototipos para sistemas mecatrónicos, con una actitud investigadora, de acuerdo a las
necesidades tecnológicas y sociales actuales y emergentes, impactando positivamente en el entorno
global.
La mecatrónica abarca varias disciplinas, la mecánica para el movimiento, la electrónica para el manejo
de la energía y la computación para ejecutar programas. En la automatización se emplean los
microcontroladores para programar una tarea o un proceso, por lo que el saber programar un
microcontrolador es una capacidad muy importante para un Ingeniero en Mecatrónica.
1
Sistema de Asignación y Transferencia de Créditos Académicos
En el Tema 4, se pretende que el estudiante aprenda a programar los diferentes dispositivos periféricos
con que cuente el microcontrolador seleccionado. Entre ellos se consideran el convertidor analógico
digital, los temporizadores/contadores y las diferentes formas de comunicación serie. Se recomienda
que pueda desarrollar aplicaciones utilizando estos periféricos.
En el Tema 5, se incluye el estudio del módulo CCP con que cuentan muchos modelos de
microcontroladores. Configurando este módulo en sus diferentes usos (como Comparador, o Captura o
Modulación de ancho de pulso) el estudiante puede desarrollar aplicaciones para el manejo de
dispositivos.
Es importante que, durante el desarrollo del curso, en todos los temas, el docente fomente el papel activo de
los estudiantes para desarrollar los temas, resolver ejercicios en el aula y fuera de ella, utilice el software
disponible para simular y comprobar los resultados, así como desarrolle las prácticas acordadas.
4. Competencia(s) a desarrollar
Competencia(s) específica(s) de la asignatura
Programa y aplica sistemas basados en microcontroladores y sus interfaces, en la automatización
y control de procesos.
5. Competencias previas
• Analiza, simula e implementa circuitos eléctricos de corriente directa y alterna con elementos
pasivos y activos lineales (fuentes lineales) para su aplicación en sistemas eléctricos.
• Analiza, diseña, simula e implementa físicamente circuitos con dispositivos semiconductores
básicos para el desarrollo de circuitos electrónicos utilizados en los sistemas mecatrónicos.
• Diseña e implementa circuitos digitales para el control de diferentes sistemas mecatrónicos.
• Construye programas utilizando estructuras condicionales y repetitivas para aumentar su
funcionalidad
6. Temario
No. Temas Subtemas
1 Arquitectura de microcontroladores. 1.1 Diferencia entre microcomputadora,
microprocesador y microcontrolador.
1.2 Características y aplicaciones de los
microcontroladores.
1.3 Tipos de arquitecturas computacionales.
1.4 Tipos de microcontroladoresy sus
fabricantes.
1.5 Componentes del microcontrolador
1.5.1 Registros internos.
1.5.2 Tipos y distribución de las memorias
internas.
1.5.3 Periféricos
1.5.4 Instrucciones del microcontrolador.
1.5.5 Distribución de terminales.
1.5.6 El reset y sus posibles fuentes.
1.6 Características de la fuente de alimentación y
consumo de potencia del microcontrolador.
1.7 Ambiente integrado de desarrollo (IDE)
1.7.1 Ensamblador y compilador.
1.7.2 Simulador, debugger y emulador.
1.7.3 Equipos programadores
(downloaders).
1.8 Herramientas de desarrollo.
interrupciones.
3.2.4 Características de la rutina manejadora de
interrupción.
3.3 Las interrupciones externas.
3.3.1 Características y configuración.
3.3.2 Programación y uso.
3.4 Fuentes internas de interrupción
3.4.1 De los Temporizadores y Contadores.
3.4.2 Del convertidor analógico digital.
3.4.3 De la comunicación serial (USART, SPI,
TWI, etc.)
3.4.4 Del comparador analógico.
3.4.5 De la EEPROM.
3.4.6 De otras fuentes internas de interrupción.
3.5 Desarrollo de aplicaciones con manejo de
interrupciones.
4.1 El convertidor analógico digita (ADC).
4 Programación de periféricos del 4.1.1 Arquitectura interna
microcontrolador. 4.1.2 Configuración y programación.
4.1.3 Desarrollo de aplicaciones con el ADC
4.2 Temporizador/Contador
4.2.1 Configuración y programación como
temporizador.
4.2.2 Configuración y programación como
contador.
4.2.3 Desarrollo de aplicaciones
4.3 Comunicación serie
4.3.1 Configuración y programación como
USART
4.3.2 Configuración y programación como TWI
(I2C)
4.3.3 Configuración y programación como SPI.
4.3.4 Desarrollo de aplicaciones
5 Programación del módulo CCP del 5.1 Descripción del módulo CCP.
microcontrolador. 5.2 Configuración y programación como
Comparador.
5.3 Configuración y programación como Captura.
5.4 Configuración y programación como PWM
5.5 Desarrollo de aplicaciones.
3. Interrupciones en un microcontrolador.
Competencias Actividades de aprendizaje
Especifica: • Investigar el concepto de interrupción, los tipos
Desarrolla aplicaciones de automatización de interrupción y el manejo en general de las
mediante la programación de las interrupciones de interrupciones por parte de los
un microcontrolador para el control de procesos. microcontroladores.
• Investigar las características de las
Genéricas: interrupciones externas, su configuración y
• Habilidad para buscar y analizar utilización.
información proveniente de fuentes • Investigar las características de las diferentes
diversas. interrupciones internas, su configuración y
• Capacidad de aplicar los conocimientos en utilización.
la práctica. • Desarrollar aplicaciones donde se utilicen
• Habilidades básicas de manejo de la interrupciones.
computadora.
• Capacidad para diseñar proyectos
4. Programación de periféricos del microcontrolador.
Competencias Actividades de aprendizaje
Especifica: Desarrolla aplicaciones de • Investigar la arquitectura interna y la
automatización mediante la programación de los configuración del convertidor analógico digital
periféricos de un microcontrolador para el control (ADC) del microcontrolador a utilizar.
de procesos donde se utilicen convertidores ADC, • Desarrollar aplicaciones utilizando la
temporizadores, contadores y protocolos de programación del ADC.
comunicación. • Investigar el funcionamiento de los
temporizadores del microcontrolador a utilizar,
Genéricas: su configuración y aplicaciones posibles.
• Habilidad para buscar y analizar • Desarrolla aplicaciones utilizando
información proveniente de fuentes temporizadores.
diversas. • Investiga el funcionamiento de los contadores
• Capacidad de aplicar los conocimientos en del microcontrolador a utilizar, su
la práctica. configuración y aplicaciones posibles.
• Habilidades básicas de manejo de la • Desarrolla aplicaciones utilizando contadores.
computadora. • Investiga las características de los diferentes
• Capacidad para diseñar proyectos protocolos de comunicación serie (USART,
I2C, SPI) implementados en el
microcontrolador a utilizar, su configuración y
usos.
• Desarrollar aplicaciones donde se utilice
comunicación serie.
8. Práctica(s)
• Programación de un semáforo.
• Programación de un contador BCD con salida a display de 7 segmentos.
• Lectura de datos de un teclado matricial y su visualización en un display LCD.
• Control del sentido de giro de un motor de CD.
• Control del sentido de giro de un motor a pasos.
• Control del sentido de giro de un servomotor.
• Control de velocidad de un motor con PWM.
• Uso de interrupciones para controlar una aplicación.
• Controlar la posición de un motor a través de la retroalimentación con el ADC.
• Control de la velocidad de un motor con encoders.
• Generación de señales de pulsos con frecuencia controlada con el temporizador.
• Configuración y programación de una comunicación serie.
• Control de motores utilizando el módulo CCP como PWM.
• Medición de frecuencias con el módulo CCP.
9. Proyecto de asignatura
El objetivo del proyecto que planteé el docente que imparta esta asignatura, es demostrar el desarrollo y
alcance de la(s) competencia(s) de la asignatura, considerando las siguientes fases:
• Fundamentación: marco referencial (teórico, conceptual, contextual, legal) en el cual se
fundamenta el proyecto de acuerdo con un diagnóstico realizado, mismo que permite a los
estudiantes lograr la comprensión de la realidad o situación objeto de estudio para definir un
proceso de intervención o hacer el diseño de un modelo.
• Planeación: con base en el diagnóstico en esta fase se realiza el diseño del proyecto por parte de los
estudiantes con asesoría del docente; implica planificar un proceso: de intervención empresarial,
social o comunitario, el diseño de un modelo, entre otros, según el tipo de proyecto, las actividades
https://cloud.ionrobotics.mx/s/Eb9D4jBo47WAPHR?path=%2F
5.- PROGRAMACIÓN DEL MÓDULO CCP DEL MICROCONTROLADOR.
5.1 DESCRIPCIÓN DEL MÓDULO CCP.
El PIC16F887 disponen de dos módulos CCP, que se diferencian por su nomenclatura, CCP1 y
CCP2, dado que su funcionamiento prácticamente es igual.
Módulos CCP en modo captura:
En modo captura, una pareja de registros captura el valor que tiene TMR1 cuando ocurre un
evento especial en el pin RC2/CCP1 para el módulo CCP1 y en el pin RC1/T1OSI/CCP2 para
el módulo CCP2. Los eventos posibles que pueden ocurrir sobre dichas pines son:
1° Un flanco ascendente.
2° Un flanco descendente.
3° Cada 4 flancos ascendentes.
4° Cada 16 flancos ascendentes.
Al efectuar la captura se activa el señalizador CCP1F para el módulo CCP1, y si el bit de
permiso está activado también se puede originar una petición de interrupción. Una interesante
aplicación del modo de captura es la medición de los intervalos de tiempo que existen entre los
impulsos que se aplican a un pin del PIC.
5.2 CONFIGURACIÓN Y PROGRAMACIÓN COMO COMPARADOR.
En este modo, el valor almacenado en el registro CCP1 se compara constantemente al valor
almacenado en el registro del temporizador Timer1. Al igualarse los valores, el estado lógico en
el pin de salida puede ser cambiado, lo que depende del estado de bits en el registro de control
(CCP1M3 – CCP1M0). El bit de bandera CCP1IF se pone a uno simultáneamente.
Para poner el módulo CCP1 en este modo de funcionamiento, se deben cumplir dos
condiciones:
El pin RC2/CCP1 debe estar configurado como salida; y
El temporizador Timer1 debe estar sincronizado con el reloj interno.
Si está habilitado por software, puede ocurrir el reinicio del temporizador Timer1 al igualarse
los valores en modo de Comparación. Además, el módulo CCP1 puede generar señales PWM
de frecuencia y de ciclo de trabajo variados.
Los bits del registro CCP1CON están en control del módulo CCP1.
MÓDULO CCP2
Con exclusión de los nombres diferentes de los registros y de los bits, este módulo es una muy
buena copia del módulo CCP1 puesto en modo normal. La única diferencia significativa entre
ellos es el funcionamiento en modo de comparación del módulo CCP2. La diferencia se refiere
a la señal de reinicio del temporizador T1.
Concretamente, si el convertidor A/D está habilitado, al igualarse los valores de los registros
TMR1 y CCPR2, la señal de reinicio del temporizador T1 iniciará automáticamente la
conversión A/D. Similar al módulo anterior, este circuito también está bajo el control de los bits
del registro de control. Esta vez es el registro CCP2CON.
PROGRAMAS CCP
Descripción del módulo comparador del timer1
En ese programa se utiliza el timer1 como comparador, cabe destacar que se compara el valor
introducido para timer1 con el valor introducido a CCPR1 todos registros de 16 bits, se le
asignó a CCPR1: FF FF (máximo valor), y a timer1 00 01 con la finalidad de que tarden en
igualarse en la mayor cantidad de tiempo posible para poderlo visualizar, pues esto ocurre muy
rápido.
La salida de esta igualdad viene dada por el pin CCP1 (de acuerdo a la configuración hecha,
cuando son iguales=1, cuando son distintos=0; esta configuración se hace con CCP1CON,
bits3-0), a este pin (ccp1) conecto un Led (color amarillo) que indica los cambios, (son
iguales=1, son distintos=0) dado que ocurren muy rápido se conectó 4 leds al puerto b, con
retardode 1 seg, los primeros dos led (color rojo) encienden cuando son iguales, y se apagan
cuando son distintos, y los otros dos led (color verde) encienden cuando la comparación es
distinta y se apagan cuando la comparación es igual.
codigo:
;EN ESE PROGRAMA SE UTILIZA EL TIMER1 COMO COMPARADOR,
;CABE DESTACAR QUE COMPARA EL VALOR DEL TIMER1 CON EL VALOR DE
CCPR1
;TODOS REGISTROS DE 16 BITS, SE LE ASIGNO A CCPR1:FF FF (MAXIMO VALOR),
Y A TIMER1 00 01
;CON LA FINALIDAD DE QUE TRATEN EN IGUALARSE EN LA MAYOR CANTIDAD
DE TIEMPO POSIBLE PARA PODERLO VISUALIZAR,
;PUES ESTO OCURRE MUY RAPIDO. LA SALIDA DE ESTA IGUALDAD VIENE DADA
POR EL PIN CCP1 (DE ACUERDO
;A LA CONFIGURACION HECHA, CUANDO SON IGUALES=1, CUANDO SON
DISTINTOS=0), A ESTE SE CONECTO UN
;LED QUE INDICA LOS CAMBIOS, DADO QUE OCURREN MUY RAPIDO SE
CONECTO 4 LEDS AL PUERTO B, CON
;RETARDO DE 1 SE, LOS PRIMEROS DOS ENCIENDEN CUANDO SON IGUALES, Y
LOS OTROS DOS ENCIENDES
;CUANDO LA COMPARACION NO ES IGUAL.
LIST p=16F887
INCLUDE <P16F887.inc>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF &
_CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF &
_INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
ORG 0x00
BANKSEL ANSEL
CLRF ANSEL
CLRF ANSELH
BANKSEL TRISC
CLRF TRISB
CLRF TRISC
BANKSEL PORTB
CLRF PORTB
CLRF PORTC
BANKSEL OPTION_REG
MOVLW 0x80;DESABILITA TIMER0
BANKSEL T1CON
MOVLW 0x01; SELECCION DEL HABILITA TIMER1
MOVWF T1CON
MOVLW 0x01
MOVWF TMR1L;CARGA A LA PARTE BAJA DE TIMER1
MOVLW 0x00
MOVWF TMR1H;CARGA A LA PARTE BAJA DE TIMER1
PRE BTFSS PIR1, CCP1IF; PREGUNTA POR BANDERA, SI SON IGUALES=1 SINO=0
GOTO RETAR1
MOVLW 0x0C
MOVWF PORTB
CALL RETARD
BCF PIR1, CCP1IF
GOTO INICIO
END
Cuando se trabaja con una precisión de 10 bits de mas peso del TMR2 se concatenan con los 8
de CCPR1L y, de la misma forma, los ocho bits de mas peso del TMR2 se concatenan con los
dos bits de menos peso del reloj interno, haciendo que el TMR2 cuente cada Tosc en vez de
cada 4.Tosc.
El tiempo que dura el periodo de la onda depende del valor cargado en PR2, según la formula
siguiente:
1° Se borra el TMR2.
2° La patita RC2/CCP1 se pone a 1.
3° El valor de CCPR1L, que es el que determina la anchura del pulso, se carga en CCPR1H.
El tiempo que la patita de salida esta a nivel alto, que es la anchura del impulso, depende del
contenido cargado en CCPR1L y de los dos bits 5 y 4 del CCP1CON, cuando se trabaja con
una precision de 10 bits.
El valor CCPR1L:CCP1CON <5:4> puede cargarse en cualquier momento, puesto que el ismo
no se traspasa a CCPR1H y se compara hasta que concidan PR2 con TMR2. En el modo PWM
el registro CCPR1L solo puede ser leido.
Los pasos a seguir para realizar la configuración del modo PWM son los siguientes:
2° Asignar la anchura del pulso cargando el registro CCPR1L y los dos bits 5 y 4 del
CCP1CON.
Ejemplo de PWM