Microcontroladores Sem7 TE
Microcontroladores Sem7 TE
Microcontroladores Sem7 TE
Microcontroladores
Semestre: 2022-1
Profesor: Kalun José Lau Gan
Semana 7: Caso reloj, conversión A/D y Multitarea en microcontroladores
¿Preguntas previas?
• Si el PIC18F4550 esta entrando a la etapa de madurez. ¿Por qué no se
usa el PIC18F45K50?
2
2/05/2022
¿Preguntas previas?
• Si yo consigo el PIC18F45K50, puedo usar los mismos códigos e
información que usé en el PIC18F4550?
• No, son modelos diferentes por lo que tendrán una configuración diferente
para cada modelo. Los aspectos funcionales de los periféricos serán muy
similares.
• ¿Dónde puedo ver acerca de los nuevos modelos de PIC18 que hay?
• https://www.microchip.com/en-us/products/microcontrollers-and-
microprocessors/8-bit-mcus/pic-mcus
Preguntas previas:
4
2/05/2022
Agenda:
• Caso: Reloj con el Timer1 en RTC y display de cuatro dígitos de siete
segmentos
• Conversión A/D
• Multitarea
• Múltiples interrupciones
• Ejemplos de multitarea
6
2/05/2022
8
2/05/2022
Avance del
código:
Repaso de conocimientos:
10
2/05/2022
Conversor A/D
Revisar Capítulo 21 de la hoja técnica del PIC18F4550
• Resolución:
• Cantidad de canales analógicos:
• Tiempo de adquisición:
• Rango de voltaje de entrada:
• ¿Cuáles son los valores límites de Vref+ y Vref-?
• Proceso de adquisición de una señal analógica
• ¿Interviene el teorema de muestreo?
• ¿Hay interrupciones?
11
Conversor A/D
• Resolución: 10bits (ADRESH:ADRESL)
• Posee un bit ADFM (justificación del resultado)
• Cantidad de canales analógicos: 13
• Se lee un canal analógico a la vez
• ¿Interviene el teorema de muestreo? Si.
• Tiempo de adquisición: se configura en reg. ADCON2
• Rango de voltaje de entrada: 0-5V? (Vref+ = VDD, Vref- = VSS)
• Proceso de adquisición de una señal analógica (ver datasheet)
• ¿Hay interrupciones? Si. ADIE, ADIF
12
2/05/2022
13
14
2/05/2022
15
16
2/05/2022
17
18
2/05/2022
19
Código en MPASM
20
2/05/2022
21
Simulación en Proteus
22
2/05/2022
23
24
2/05/2022
25
26
2/05/2022
27
(cont…)
• El resultado del A/D en 7 bits nos da el
valor de la temperatura sin necesidad
de hacer cálculos adicionales si es que
ajustamos el Vref+ a 1.27V
• Se requiere de un algoritmo (digbyte)
que me permita obtener los dígitos
centena, decena y unidad de manera
independiente para que en el proceso
de multiplexación los tome y se
visualice.
• Digbyte.inc deberá ser incluido en la
carpeta Header Files del árbol del proyecto
• Para poder simular el ejemplo en
Proteus:
• Desactivar el T1OSCEN para que el
PIC18F4550 reciba una señal cuadrada en
T13CKI de 32.768KHz y tener así el RTC
28
2/05/2022
29
Circuito en Proteus
30
2/05/2022
¿Multitarea?
31
32
2/05/2022
33
34
2/05/2022
35
36
2/05/2022
37
Código en MPASM:
Nota: Cuentas iniciales de
TMR1 y TMR0
compensadas para
obtener 1.5KHz y 3.5KHz
38
2/05/2022
Simulación:
39
40
2/05/2022
Código en
MPASM:
Configuración
y rutina
principal
41
Código en MPASM:
Rutinas de interrupción
42
2/05/2022
Simulación en Proteus
43
Cuestionario:
• Modificar el ejemplo anterior para que se pueda modificar el duty
cycle de ambas ondas de manera independiente empleando un
teclado matricial para ello.
44
2/05/2022
Fin de la sesión
45