Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microcontroladores
Docente: Dr. Héctor Gilberto Barrón González
Actividad Fundamental 1: 3 en 1.
1
Contenido
Actividad Fundamental 1.- 3 en 1 ....................................................................................................... 3
1.- Descripción del Problema .............................................................................................................. 3
2.- Objetivo .......................................................................................................................................... 3
3.- Diagrama de Flujo Propuesto......................................................................................................... 4
4.- Diagrama de la Implementación del Circuito................................................................................. 7
5.- Evidencia Grafica (Si existe un circuito) ......................................................................................... 7
6.- Prototipos de funciones principales .............................................................................................. 9
2
Actividad Fundamental 1.- 3 en 1
01 contador en Binario
02 auto Increíble
03 contador RGB
1. Visualizar en un grupo de 8 leds el efecto producido por una cuenta natural ascendente en
código binario.
2. Lograr la visualización de una cuenta ascendente dentro de los rangos del 1 al 7 en un led
RGB de Cátodo Común.
3. Se requiere establecer un Loop infinito de lectura entre un puerto paralelo de 2 bits
configurado como entradas y la función a desarrollar.
4. Solo se deberá efectuar una operación a la vez, es decir si el contador ascendente es
seleccionado se incrementará en una posición ejemplo de 0000 0001 a 00000010, y
posteriormente regresara a leer las entradas, si es seleccionado el contador RGB el valor
del contador binario deberá guardarse y continuar cuando sea seleccionado de nuevo. De
la misma forma esto debe suceder para las otras opciones (un desplazamiento en el auto
increíble o un incremento en la cuenta RGB).
2.- Objetivo
1. Desarrollar un Código que permita manipular el puerto para leer las entradas.
2. Que el código a desarrollar pueda en función de las entradas pueda determinar la función
correspondiente
3. Que si se genera una entrada 0 en binario quede en un estado inactivo por default
4. Que ante una entrada de 1 en binario ejecute un contador binario mediante una salida de
8 leds
5. Que ante una entrada de 2 en binario ejecute la función del auto increíble
6. Que ante una entrada de 3 en binario ejecute un contador RGB
7. Que si se cambia de valor almacene el progreso de cada estado
3
3.- Diagrama de Flujo Propuesto
Se plantean 4 diagramas de flujo 1 general del Código y 3 para cada función a realizar
4
Diagrama de flujo de caso 1 (contador Binario)
5
Diagrama de flujo de caso 2 Auto increíble
6
4.- Diagrama de la Implementación del Circuito
7
8
6.- Prototipos de funciones principales
Agregue las prototipos y llamadas utilizadas para:
• La configuración de periféricos.
• El loop de control principal y las subrutinas que dé él se derivan.
Configuración de periféricos
9
Los periféricos del microcontrolador de modelo Núcleo 64 STM32F401RE ubicado en el software
de programación STM32CUBE bajo el nombre de Núcleo-401RE se programo basado en las
configuraciones instruidas en clase y las entradas y salidas necesarias según el enunciado y
objetivo de la actividad.
Se configuraron las salidas de PC= a PC7 para que fueran consecutivas al pertenecer al mismo
grupo de respuesta. Mismo principio se aplico a las salidas PB13 a PB15 para las salidas RGB. Todas
estas configuraciones al procesador se tradujeron en un código el cual consiste en lo siguiente:
La primera etapa consiste en la indicación de variables y subrutinas que afectarán o tendrán lugar
y uso en el microcontrolador:
10
• Las líneas iniciales de 1 a 3 son espacios creados en el código basado en el diseño de
periféricos. Las líneas en blanco son para separar las agrupaciones de código y darle un
aspecto más legible al código.
• las líneas 4 5 y 6 definen las compuertas de salidas bajo los nombres de “RED, GREEN,
BLUE” esto se hace con el fin de darle uso en la programación del contador RGB.
• Las líneas 8, 9 y 10 corresponden a la declaración de variables de conteo de cada subrutina
de los 3 casos, se declaran en este punto para que sean de tipo universal, y por lo tanto
cumplan con el objetivo de almacenar el valor y condicion de cada caso ante un cambio de
uno a otro
• Las líneas 12 y 13 son periféricos de los sistemas de puertas y tiempo programados en el
código en función de la configuración del código inicial.
• Las líneas 14, 15, 16 con periféricos de las subrutinas que se llevan a cabo en el programa,
cada una representa a uno de los casos a ejecutar por el programa.
• Las líneas 17 y 19 son comandos de agrupación de variables y le indicaran al programa
secuencias a seguir de una serie de salidas en determinado proceso.
• Las líneas 21 y 22 se detallan las variables de comandos de entrada y el medio de lectura
de estas en el caso de Inputs. Así mismo el comando Outputs funciona como medio de
salida de la condicion inicial 0 o los posibles estados de default sin afectar el
funcionamiento de los otros casos
• La línea 26 indica el comienzo del programa donde estarán las instrucciones y programas a
ejecutar, así como enlaces a subrutinas que se detallan luego de este
• Las líneas 29, 31 y 33 son periféricos creados por el programa a partir del chip y representa
donde se ejecutan las subrutinas y partes dentro del programa general
• Al llegar al While en la línea 36 inicia el proceso de periféricos y variables
11
El loop de control principal y las subrutinas que dé él se derivan
• El loop de control principal inicia en el While que estable que mientras este se ejecute se
encontrara ciclando sobre sus procedimientos.
• Las líneas 38, 39 y 40 dentro del loop del While señalan que las salidas y entradas estarán
limpias, así como la configuración de los valores de entrada y que de estos solo se leerá un
limite de 3 en binario es decir 00, 01, 10, 11.
• La línea 42 es el inicio Del proceso de cambio como su nombre indica en función de las
entradas previamente configuradas y dónde se hará uso del manejo de los casos.
• La línea 44 refleja el inicio de las condiciones del estado inicial es decir el caso 0.
• En la línea 46 podemos apreciar como este representa una salida completamente apagado
aparatos componentes mientras
• finalizan en la línea 48 con un break que representa el final de los comandos y rutinas de dicho
caso y el final del ciclo que lo hace volver al While
12
• La línea 50 refleja en inicio del caso número 1 del contador binario
• La línea 52 El comando que relaciona este caso con la subrutina del contador binario que se
detallarán más adelante en el apartado de subrutinas
• el mismo finalizando con la línea 54 que cierra el caso número 1
• La línea 56 establece el inicio del caso 2 El del auto increíble
• La línea 58 hace el enlace de su rutina con el programa ejecutar en este caso
• La línea 60 establece el final del caso 2
• La subrutina del contador binario inicia en la línea 81 que responde a las declaraciones de
la parte superior correspondiente a la línea 14 declarada en el Código.
13
• La línea de comando 85 establece la impresión del valor en el pin correspondiente
• La línea 86 establece la duración de dicha impresión de valor binario
• La línea 87 establece el borrado del valor previo tras cumplir el tiempo previamente
señalado
• La línea 88 indica un incremento de +1 en el contador de esta subrutina en concreto
• Las líneas de 90 a 96 establecen que si dicho contador llega a ser mayor de 255 debe
volver a cero y en caso de no serlo terminar el ciclo de la subrutina que como vimos hace
volver al While del loop principal
• La subrutina del Auto increíble inicia en la línea 101 que responde a las declaraciones de la
parte superior correspondiente a la línea 15 declarada en el Código.
• La línea de comando 105 establece el reset del valor en el pin correspondiente
• La línea 106 relaciona el valor a imprimir con el correspondiente en la secuencia indicada
en la línea 19 del Código
• La línea 107 establece la duración de dicha impresión de valor binario
• La línea 108 establece el borrado del valor previo tras cumplir el tiempo previamente
señalado
• La línea 109 indica un incremento de +1 en el contador de esta subrutina en concreto
• Las líneas de 111 a 117 establecen que si dicho contador llega a ser mayor o igual a 14
debe volver a cero y en caso de no serlo terminar el ciclo de la subrutina que como vimos
hace volver al While del loop principal
14
subrutina caso 3 contador RGB:
• La subrutina del Auto increíble inicia en la línea 122 que responde a las declaraciones de la
parte superior correspondiente a la línea 16 declarada en el Código.
• La línea de comando 125 establece el reset del valor en el pin correspondiente
• La línea 126 relaciona el valor a imprimir con el correspondiente en la secuencia indicada
en la línea 18 del Código
• La línea 127 establece la duración de dicha impresión de valor binario
• La línea 128 establece el borrado del valor previo tras cumplir el tiempo previamente
señalado
• La línea 130 indica un incremento de +1 en el contador de esta subrutina en concreto
• Las líneas de 132 a 138 establecen que si dicho contador llega a ser mayor o igual a 7 debe
volver a cero y en caso de no serlo terminar el ciclo de la subrutina que como vimos hace
volver al While del loop principal
15