Você está na página 1de 16

UNIVERSIDAD MILITAR NUEVA GRANADA

INFORME COMPLETO DE LABORATORIO


MICROCONTROLADORES
Nikolái Fandiño Cod. 1802874
Cindy Tatiana Marín Espinosa Cod. 1802334

Resumen- En este informe se desarrollarán las aplicando los conocimientos adquiridos en las
prácticas de laboratorio de microcontroladores. prácticas anteriores, para enviar y visualizar
En la primera practica se observa y se guía acerca información.
de la instalación del programa que será necesario
para la programación de la tarjeta Abstract- In this report, the laboratory practices of
STM32F746ZGTx, posterior a esto se microcontrollers are developed. In the first
desarrollará la segunda practica en la que se practice it is observed and approaches the
muestra un programa sencillo de encender LED´s installation of the program that is necessary for
de la STM. En la práctica 3 se pretende afianzar the programming of the STM32F746ZGTx card,
la creación de una clase en C que permite after this the second practice is developed in which
configurar las principales características de a simple LED lighting program of the STM is
cualquier pin del microcontrolador a usar a lo shown. In practice, 3 allows the creation of a
largo del curso, a su vez. En la cuarta práctica se category in C that allows you to configure the main
pretende implementar el timer SysTick al dividir la characteristics of any pin of the microcontroller to
frecuencia del reloj para obtener un periodo de use throughout the course, in turn, allows you to
1ms, de tal manera que al presionar un interruptor consult and adjust the logical state of low and high
cambie la duración de los tiempos entre cada output of the pines; to then implement it in a simple
secuencia que se determine para los LED´s. En la application. In the fourth practice, the SysTick
quinta practica se pretende configurar un teclado timer is applied when dividing the clock frequency
matricial, teniendo en cuenta las 16 posibles to obtain a period of 1 ms, in such a way that when
opciones se visualiza un código binario sobre los a switch is pressed, the duration of the times
LED´s de la tarjeta. En la sexta práctica se between each sequence that determines the LEDs
pretende principalmente implementar el concepto changes. In the fifth practice you want to configure
de visualización dinámica con la creación de una a matrix keyboard arbitrarily and find out the key
clase en C++ para visualizar sobre un display 7 pressed; taking into account the 16 possible
segmentos de cuatro dígitos un contador options, a binary code is displayed on the LEDs of
ascendente o descendente dependiendo de la the card. In the sixth practice practice, it is mainly
interrupción producida. En la séptima práctica se recommended to implement the concept of
pretende principalmente manipular la dynamic visualization with the creation of a class
visualización en una LCD, cuyos pines y cantidad in C ++ to visualize on a display 7 segments of
de bits a usar puedan ser modificados, para four digits to an ascending or descending counter
visualizar determinada información. En la octava depending on the interruption produced. In the
práctica se pretende principalmente implementar seventh time it is mainly an LCD screen, whose
la comunicación serial UART, aplicando los prices and number of bits can be modified, to
conocimientos adquiridos en las prácticas visualize certain information. In the eighth, the
anteriores, para enviar, recibir y visualizar most effective practice is UART serial
información proveniente de un teclado matricial o communication, applying the knowledge acquired
del teclado del computador. En la novena práctica in previous practices, to send, receive and
se pretende principalmente implementar y visualize the information derived from a matrix
configurar los Timers que posee la tarjeta, keyboard or the computer keyboard. In the ninth

1
practice, it is mainly intended to implement and
configure the stamps that have the card, applying  DAC:
the knowledge acquired in the previous Es un dispositivo para convertir un código
applications, to send and view information. digital (generalmente binario, compuesto de
ceros y unos) a una señal analógica (corriente,
voltaje o carga eléctrica). Hay distintos
componentes que pueden intervenir en este
Palabras clave- STM32F4xx núcleo 144, ARM, proceso, como interruptores simples, red de
periféricos, microcontroladores, LCD, timers, resistores, fuentes actuales o condensadores.
comunicación serial, C++.
 TIMMER:
Key words- STM32F4xx core 144, ARM, La mayoría de los microcontroladores tienen
peripherical, microcontrollers, LCD, timers, serial uno o varios timers. Serán muy útiles para medir
communications, C++. el tiempo que ha pasado entre dos eventos,
establecer tareas para ejecutarse a intervalos
regulares, etc. Dependiendo del modelo los PICs
I. INTRODUCCION cuentan con un número variable de timers.

En la actualidad, el uso de microcontroladores es  I2C:


importante ya que cada vez tienen más aplicaciones Significa Circuito Interintegrado (Por sus
y se encuentran en abundancia en las cosas que nos siglas en Inglés Inter-Integrated Circuit) es un
rodean. Con este fin se desarrollan periféricos para protocolo que toma e integra lo mejor de los
diferentes tipos de aplicaciones como los son los protocolos SPI y UART. Con el protocolo I2C
TIMER, UART, I2C, Systick, NVIC, ADC, DAC, podemos tener a varios maestros controlando
GPIO, los cuales serán los que se usaran uno o múltiples esclavos.
principalmente en el desarrollo de este informe, para
la programación de estos periféricos se usara el II. OBJETIVOS
software de µKeil, utilizando los registros que se
explicaran en este trabajo. 1. DSFDSFDF
2. FSDFSDFDS
 GPIO: 3. Desarrollar las habilidades para
General Purpose Input Output es un sistema configurar los pines del sistema
de entrada y salida de propósito general, es decir, microcontrolado, en sus formatos básicos
consta de una serie de pines o conexiones que se IN OUT digital.
pueden usar como entradas o salidas para 4. Desarrollar las habilidades para el manejo
múltiples usos. y configuración del tiempo en las
actividades que realizan los
 Systick: microcontroladores.
Es un periférico que funciona como una 5. Desarrollar las habilidades para la
interrupción con un tiempo constate implementación de teclados matriciales,
programable. como estrategia de adquisición de datos
en interfaz de usuario.
 UART: 6. Desarrollar las habilidades para la
Son las siglas en inglés de Universal implementación de sistemas de
Asynchronous Receiver-Transmitter, en visualización dinámica como displays 7
español: Transmisor-Receptor Asíncrono segmentos o matrices de LEDs.
Universal, es el dispositivo que controla los 7. Desarrollar las habilidades para la
puertos y dispositivos serie. Se encuentra implementación de displays
integrado en la placa base o en la tarjeta alfanuméricos LCD, para la presentación
adaptadora del dispositivo. de información por medio de caracteres
ASCII.
 ADC: 8. Desarrollar las habilidades para la
Es un dispositivo electrónico capaz de implementación de comunicación serial
convertir una señal analógica, ya sea de tensión por medio de el modulo UART, para la
o corriente, en una señal digital mediante un con dispositivos externos.
cuantificador y codificándose en muchos casos
en un código binario en particular.
2
9. Desarrollar las habilidades para la utilizan para la aplicación, además de configurar si
implementación de los módulos ADC y son de entrada o salida, en este caso en GPIOB
PWM, como herramienta de trabajo con salida y GPIOC en entrada.
señales de carácter analógico.

III. MATERIALES Fig. 3: Registro OTYPER

 Software uVision Keil En la figura 4 se muestra el registro OSPEEDR el


 Tarjeta STM32F746ZGT. cual se utiliza para configurar la velocidad del pin.
 Cable mini USB.
 Teclado matricial 4x4.
 Protoboard.
 Cables de conexión.
 Display 7 segmentos dinámico de 4
dígitos de ánodo común. Fig. 4: Registro OSPEEDR
 7 resistencias de 270Ω.
 4 resistencias de 1KΩ. En la figura 5 se muestra el registro PUP-DR el
 Modulo LCD cual se utiliza para configurar el pull-up o el pull-
 Modulo Comunicación Serial down del pin, según el requerimiento de la
aplicación, como en el caso de asegurar el nivel
 Sensor I2C
bajo de la señal de la interrupción, y en el caso del
 Potenciómetro
teclado los pines de las filas.

IV. PROCEDIMIENTO

Fig. 5: Registro PUP-DR

En la figura 1 se muestra el registro AHB1ENR el En la figura 6 se muestra el registro SR el cual se


cual se utiliza para encender el reloj de los puertos utiliza para configurar el estado del timer a
que se requieran e la implementación de los configurar, en este caso para TIM4 y TIM3,
laboratorios. comprobando el estado de la bandera de
interrupción.

Fig. 6: Registro SR
Fig. 1: Registro AHB1ENR
En la figura 7 se muestra el registro ARR el cual se
En la figura 2 se muestra el registro MORDER el utiliza para configurar el valor de auto recarga del
cual se utiliza para encender los puertos que se van timer, en este caso se configura para 1mS.
a utilizar en este caso GPIOB y GPIOC.

Fig. 7: Registro ARR


Fig. 2: Registro MORDER
En la figura 8 se muestra el registro CNT el cual se
utiliza para configurar encender el contador del
En la figura 3 se muestra el registro OTYPER el timer en este caso de configura el CR1.
cual se utiliza para declarar los pines que se

3
Fig. 8: Registro CNT

En la figura 9 se muestra el registro Cr1 el cual se


utiliza para configurar la comunicación I2C que se
encarga de reestablecer la configuración cuando se
declara que la comunicación termina

Imagen 1. (Tipo de tarjeta)

Librerías y Drivers; en el proceso de instalación,


Fig. 9: Registro CR1 se descargaron algunas librerías y drivers de la
tarjeta a usar, en esta sección se especifica qué tipo
En la figura 10 se muestra el registro Cr2 el cual se de tarjeta se va a programar (Img.1).
encarga de habilitar la configuración

Fig. 10: Registro CR2

1. Entorno de desarrollo:
Se descargar e instalar el compilador, con el fin de Imagen 2. (Tipo de tarjeta)
que se pueda realizar las actividades adicionales e
independientes fuera de los laboratorios asignados.
El aplicativo puede ser descargado de,
www.keil.com donde se encontrará el link MDK- Archivo de programa: en la imagen anterior
ARM (Keil, 2015). Una vez instalado el aplicativo, (Img.2), se selecciona el tipo de archivo en el que
se debe crear un nuevo proyecto, se realizara la programación de la tarjeta
previamente seleccionada.
[1]. Entorno de desarrollo; Los
microcontroladores requieren de un entorno de
desarrollo a nivel de software, este se relaciona 2. Tarjeta de desarrollo
como una herramienta que permite programar las
instrucciones del procesador en un lenguaje de Se descargar e instalar el compilador, con el fin de
bajo nivel como el ensamblador, o de alto nivel que se pueda realizar las actividades adicionales e
como C, C++, Basic, C#, Java, etc. independientes fuera de los laboratorios asignados.
El aplicativo puede ser descargado de,
[2]. Entorno de desarrollo: a continuación, se www.keil.com donde se encontrará el link MDK-
mostrará la imagen del entorno de desarrollo en él ARM (Keil, 2015). Una vez instalado el aplicativo,
computador. se debe crear un nuevo proyecto.

[1]Se realizarán prácticas sobre la tarjeta de


desarrollo STM32FXX , La tarjeta STM32F4
Discovery cuenta con un sistema implícito para la

4
programación del microcontrolador, este funciona Compilación: Se compila el programa y se carag a
con la interfaz ST-Link V2 (ST Microelectronics, la tarjeta para ejecutar la acción programada
2015). (Parpadeo de Led).
Conexión de la tarjeta: A continuación, se deben
hacer las conexiones pertinentes para garantizar la
comunicación entre el ordenador y la tarjeta 3. Dominio de pines
STM32FXX, simplemente se debe conectar por
medio de un cable mini USB [1] Se debe desarrollar una clase en C++
(Ceballos, 2009), que permita configurar cualquier
Entorno de desarrollo: Se realiza la configuración pin del microcontrolador, para este fin se deben
del sistema de comunicación y depuración de la hacer definiciones de pines, y nuevos archivos de
tarjeta STM32F4 Discovery, para este fin se pulsa librería y fuente, *.h, *.cpp. Se propone que estos
el botón Options for target del software uVision documentos se llamen Pines.cpp y Pines.h. Para
(Keil, 2015) realizar esta acción se hace necesario que se
estudie la estructura GPIO_TypeDef, definida en
el archivo stm32f4xx.h. La clase debe permitir por
medio de sus métodos y las definiciones realizadas
por el estudiante, que el pin se pueda configurar
como entrada o salida digital, con las opciones de
push pull u open drain, con o sin resistencias pull
up, y pull down, y por último velocidades de reloj.

Con la clase desarrollada se deben configurar


como salida los pines utilizados por la tarjeta de
desarrollo para Leds. Por medio del estado lógico
del pulsador, los cuatro Leds deben reproducir dos
secuencias diferentes de un mínimo de 5 tiempos.
Las secuencias quedan a libre creatividad del
estudiante.
Imagen 3. (Programa parpadeo de Led)
El pin se pueda configurar como entrada o salida
digital, con las opciones de push pull u open drain,
con o sin resistencias pull up, y pull down, y por
Programa: Para verificar el funcionamiento del último velocidades de reloj. Estas características
sistema se configura el pin de conexión a este de los pines se ilustran en la siguiente vista.
LED, y posteriormente se realiza una rutina que
permita hacer un parpadeo sobre el LED.

Imagen 5. (Configuración de pines)


Imagen 4. (Programa parpadeo de Led)

Dependiendo de cada tarjeta de desarrollo el


número de Leds disponibles puede variar, si es
5
necesario deberán usar un pin adicional y conectar [1] Definir un periodo de interrupción del SysTick
un LED externo para cumplir con los de 1m segundo, esto realiza por medio de siguiente
requerimientos de un mínimo de 4 Leds) y se debe código:
configurar como entrada el pin del pulsador.

Librerías: Se añade librería (#include <stdio.h>),


para realizar operaciones y asignaciones

Imagen 6. (Librerías)

Tipos de Variables: Se añade dos enteros (tiempo


y dato ) y una variable tipo Booleana (Bandera)
que actúa como un indicador.

Imagen 6. Programa parpadeo leds.

4. Manejo de tiempos
Se descargar e instalar el compilador, con el fin de
que se pueda realizar las actividades adicionales e Imagen 7. (variables)
independientes fuera de los laboratorios asignados.
El aplicativo puede ser descargado de,
www.keil.com donde se encontrará el link MDK- Interrupciones: Se configura una interrupción (
ARM (Keil, 2015). Una vez instalado el aplicativo, void SysTick_Handler), con el propósito de
se debe crear un nuevo proyecto. interrumpir una acción por un tiempo.

6
Fig. 1. Variables volátiles

Después como se ve en la Figura 2, se crean las


variables que se usarán para determinar el tiempo
que dura cada secuencia. Estas son de tipo
estático(static) tal y como recomienda el libro de
como programar en C++ [4] debido a que durante
la ejecución de la rutina nunca cambiarán su valor.
Imagen 8. (Interrupciones)
Fig 2. Variables estáticas

Como se ve en la Figura 3, se declaran los pines


que van conectados al teclado matricial
Programa: Se configura una Switch, donde su
parámetro va cambiando en el tiempo, para que el Figura 3. Declaración de pines
proceso sea repetitivo, de esta manera se obtiene
una Frecuencia de encendido y apagado.
Posteriormente, se crea AuxLectura, una variable
que retorna el método leer, esto se ve en la Figura
4; posteriormente mediante una estructura switch-
case, se establece la secuencia que ejecutarán los
LEDs dependiendo la tecla oprimida en el teclado.

Figura 4. AuxLectura

En la Figura 5 se observa cómo se asigna la


posición de los caracteres del teclado a usar.

Imagen 9. (Programa) Figura 5. Definición del orden de teclado.

5. Teclado matricial
Como primer paso se realiza la creación de un En la Figura 6 observamos la clase teclado que
nuevo proyecto de acuerdo con lo establecido en la tiene 6 parámetros y dos métodos, los cuales son
guía de laboratorio 1, 2, y 3. leer y configurar.

Se crea un Delay con una variable Time, y una Figura 6. Clase teclado.
variable TimingDelay, las cuales al ser declaradas
como __IO no requieren ser optimizadas ya que
pueden cambiar fuera del compilador. [6] El
unit32_t significa unsigned int de 32 bits.[4] Esto
se observa en la Figura 1.
7
Programa:
Como se ve en la Figura 1, en esta parte del
programa se hace la declaración de las diferentes
variables que se usan en el programa, por ejemplo
VPortD1 es un vector que acoge los puertos a los
que van conectado los diodos del display, luego
VNPinD1 es un vector que acoge los pines de los
respectivos puertos que se conectan a los diodos
del display, el vNPinControl habilita los diferentes
Como se ve en la Figura 7, el método configurar pines de los transistores que habilitan los displays.
recibe dos vectores los cuales tienen la posición de numero_display es la variable global que se
la conexión física del teclado ocupando 8 pines y modifica cuando se llama a la función
se configuran como entrada o salida “pasa_a_lenguaje_pin”. También se declaran las
respectivamente. funciones que se usan más adelante.
Figura 7. Definición de pines. Figura 1. Declaración de variables

En la figura 8 Método leer del objeto teclado recibe


las posiciones reales de los pines.

Figura 8. Método leer del objeto teclado

Se configura la clase Display que se observa en la


En la figura 9 El segmento de código que usamos figura 2, donde se tienen sus atributos, como los
convierte el valor binario del lectura a decimal pines, el puerto de los mismos, el número que se
porque nuestro método pin.report funciona en quiere mostrar, la frecuencia de conteo y muestreo.
decimal Luego aparecen los métodos respectivos al objeto
que se crea, los cuales configuran los pines que
Figura 9. Comparar si el pin está en alto llegan a los diodos del display, la impresión de los
dígitos en el display y configura los habilitadores
del display.

Figura 2. Clase Display

6. Visualización dinámica
Como primer paso se realiza la creación de un
nuevo proyecto de acuerdo con lo establecido en la
guía de laboratorio 1, 2 y 3.
Posteriormente se crea la clase que permite
configurar los pines y la visualización de cada
dígito.

8
Para la figura 3, los dos métodos configuran los
pines según su uso ya sea como habilitadores del
display o como los on/off de los diodos del display.

Figura 3. Métodos de la clase Display

El método de la figura 4, recibe la frecuencia


convirtiéndola en el tiempo de espera, diviendolo
en 4 para asignar el tiempo a cada display, además
habilita los pines de control o transistores de cada
display. En la figura 7 se hace un switch, tal que se activen
los pines del display para que se muestren el
Figura 4. Método ImprimeEnDisplay determinado número apropiadamente.

Figura 7. Función pasa_a_lenguaje_pin

En el método de interrupción de la figura 5, se hace


la función dentro de una declaración de una
variable externa “C” que hace funcionar en
paralelo la función gracias a la interrupción. luego
dentro de la función se activa la bandera para la
interrupción y se ponen las instrucciones que se
quieren seguir al activar la interrupción externa.

Figura 5. Interrupción
7. LCD
Como primer paso se realiza la creación de un
nuevo proyecto de acuerdo a lo establecido en la
guía de laboratorio 1, 2 y 3.

Inicialmente se crea la definición de constantes al


inicio del programa, cómo se ve en la Figura 2.

Figura 2. Definición de pines


En la figura 5 el main, es que el que llama las
funciones de declaración y tiene la variable que
incrementa y decrementa el contador de números
en los displays.

Figura 6. Función principal

9
enviar la instrucción, y en el intermedio de esta se
envía al puerto de datos las instrucciones de
memoria de la DDRAM donde se desea escribir.
Posteriormente, cómo se ve en la Figura 3, se crea
la clase llamada lcd, con los métodos configurar,
instrucciones, escribir y cursor, que serán Figura 5. Función instrucciones de control
explicados más adelante.

Figura 3. Creación de la clase lcd

En el método escribir, de la Figura 6, se usa un


En seguida, mediante el método configurar, se apuntador, puesto que permite obtener cada dato
establecen los datos de control iniciales que están bit a bit, por ello se crea un vector de 16
determinados según el datasheet [10]. En decir, se posiciones, que van siendo recorridas una a una
activa la función para 8 bits, ON/OFF Pantalla, para poner la cadena de texto deseado en pantalla,
Borrar la pantalla, dejar los datos fijos en el display para esta operación, el bit RS se pone en 1, puesto
e incrementar el cursor en una posición hacia la que lo que se está enviando es un dato, y el bit E
derecha, correspondientemente. está encendido y apagado.

Figura 6. Función escribir cadena de texto

Figura 4. Función de configuración inicial de la


LCD

Por otra parte, la función caracter permite escribir


caracteres individuales.

Cómo se ve en la Figura 5, mediante el método


Figura 7. Función caracter
instrucciones, se configuran las instrucciones a
entregar a los pines de control RS y E, de la
siguiente manera: El pin RS, se pone en 0 para
enviar una instrucción de control, posteriormente
el bit E debe estar encendiendo y apagando para

10
Para configurar la posición del cursor deseada, se
crea el método cursor, que se observa en la Figura
7, el cual, devuelve un valor hexadecimal de la
posición de la memoria DDRAM que equivale a la
posición de cada celda del display.

Figura 8. Función configurar posición del cursor

La función de la Figura 3 especifica las


instrucciones que se ejecutan en la
interrupción de transmisión y recepción

Figura 3. UART_IRQHandler

8. UART
Como primer paso se realiza la creación de un
nuevo proyecto de acuerdo a lo establecido en
las guías de laboratorio desarrolladas hasta el
momento.

En la función nn, que se observa en la Figura


2, se declara e inicializa la comunicación
UART.

Figura 2. Funcion nn

Cómo se ve en la Figura 4, en la declaración


del main se hacen las instrucciones principales
en diferentes condicionales para mostrar lo
que se escribe desde el computador en la lcd,
y lo que se oprime en el teclado.

Figura 4. Función main


11
Figura 1. Funciones

Luego, como se observa en la Figura 2, se


crean las acciones a realizar dentro de las
interrupciones de los timer, las cuales
consisten en hacer el conteo para displays 7
segmentos y para LCD.

Figura 2. Interrupción del Timer

A continuación, se crea la Función DeclaTim,


que se ve en la Figura 3, dentro de la cual se
inicializan los pines de los Timers, y se
establece el valor de ARR y PSC, los cuales
son quienes determinan el tiempo para cada
uno de los Timers.

Figura 3. Función DeclaTim


9. TIMMER
Inicialmente, como se observa en la Figura 1,
se incluyen las librerías necesarias, entre ellas
la que permite visualización en periféricos.
También se inicializan las variables a usar, y
se nombran la funciones que contiene el
programa.

12
De acuerdo a lo visto en clase, y al programa de
guía dado por el docente, se buscaron los registros
pertinentes para la programación del acelerómetro
y el módulo USART para poderlos usar de manera
correcta para lograr el objetivo del proyecto.

Inicialmente, con la función I2C2_Config, que se


ve en la Figura 3, se hace la configuración de pines
teniendo en cuenta el tipo de pin que debíamos
usar para la brújula y la comunicación I2C.

Figura 3. Función I2C2_Config

Como se ve en la Figura 4, dentro de la


función main se llaman las anteriores
funciones creadas, entre ellas el PLL, la
configuración del LCD y la configuración de
los Timers, también se hace la configuración
de los pines de los 7 segmentos.

Figura 4. Función main Posteriormente, teniendo en cuenta el datasheet del


sensor, se hace uso de los registros necesarios para
la comunicación maestro - esclavo, por lo tanto se
envian instrucciones, las cuales se observan en la
Figura 4.

Figura 4. Función I2C2_Write

Por último, como se ve en la Figura 5, dentro


del bucle infinito se muestra en cada
dispositivo de visualización el respectivo
conteo.

Figura 5 . Bucle infinito

Para realizar la lectura, se envían las instrucciones


dadas en la Figura 5.

Figura 5. Función I2C2_Read

10. COMUNICACIÓN I2C

13
Por último, cómo se observa en la Figura 8, en la
función main se realiza la llamada de las funciones
anteriormente creadas, además en esta función
también se realiza el ciclo infinito con lo que se
desea en este caso la toma de datos que se requiere
Para la lectura de cada uno de los ejes, se hace uso medir y el envió de estos al puerto serial.
de la función leer, que se ve en la Figura 6. Cuyos
valores a escribir en el registro ya están ya
establecidos en el datasheet. Figura 8. Función main

Figura 6. Función leer

V. CONCLUSIONES
Se configura el sistema de interrupciones de la
STM, como herramienta para aprender a utilizar el
manejo de tiempos, en múltiples aplicaciones más
complejas, que requieran un manejo del tiempo
más preciso, que el utilizado genéricamente en las
anteriores prácticas, generados con la estructura
Mediante la función que se ve en la Figura 7, for, Además de comprender el funcionamiento de
las interrupciones, como herramienta de control de
Data_Prompt, es posible visualizar en el puerto
procesos que el microcontrolador está llevando a
serial los valores obtenidos.
cabo, al darle el estímulo correcto, en este caso el
pulsador.

Figura 7. Función Data_Prompt Para la decodificación del teclado matricial se


envía un estado lógico alto a todas las columnas
intermitentemente cada 2 ms, cuando se pulse
alguno de los botones del teclado, la información
será leída mediante las filas, configuradas con
pull- down, para asegurar una correcta lectura
cuando ocurra alguna pulsación en el teclado.

Como se indicaba anteriormente, aplicaciones


donde se requiere un uso más estricto del tiempo,
como fue el caso de la multiplexacion del display
7 segmentos, el cual debe estar activando y
desactivando de forma muy rápida cada uno de los
dígitos de este para una correcta visualización al
ojo humano, que es a una frecuencia bastante alta,
el otro caso es en el caso de la configuración del
módulo LCD el cual requiere un majeo muy
preciso al enviar los comando de control que se

14
deben mantener por un periodo determinado y pantalla, adquirir información de movimiento y
luego dar un tiempo de espera para que ese vibración del dispositivo, y para el gran mercado
comando sea tomado como uno valido, al igual que de aplicación y juegos que estos dispositivos
para el envió de datos; todo este manejo estricto brindan, las cuales hacen uso de este tipo de
del tiempo se logra gracias a la herramienta sensores adecuado con micro controladores.
Systick, que se ya se había implementado en los
primeros laboratorios. Finalmente el desarrollo de cada uno de los
El uso del tiempo, como ya se ha mencionado, algo laboratorio y el cumplimiento de cada uno de los
de alta importancia, la STM brinda otra objetivos planteado, permiten al estudiante
herramienta, para dicho fin que son los timers, los adquirir capacidades para desarrollar código para
cuales le permiten al usuario manejar la frecuencia la configuración de múltiples herramientas, y
del reloj de cada uno de estos simultáneamente, de otorgando al estudiando la habilidad para integrar
forma muy precisa, dividiendo la frecuencia del el uso de todos aquellas herramientas en
reloj a la deseada para la aplicación requerida, en aplicaciones más completas y complejas, bastante
este caso ele de dos contadores visualizados útiles para para su uso en otras materias y
gracias a las herramientas anteriormente proyectos, en el campo de microcontroladores,
configuradas en laboratorios anteriores. dado que es un campo gigante de aplicación en
muchos ámbitos.
Uno de las aplicaciones más interesantes de los
laboratorios propuesto fue realizar un piano VI. REFERENCIAS
estableciendo las frecuencias de las notas,
haciendo el uso del módulo Timmers de la STM, [1] Keil. (20 de febrero de 2017). uVision Sofware
además de la reproducción de una melodía
de desarrollo. Obtenido de Keil tools by ARM
realizada previamente por software y siendo
Web site: www.keil.com
posible escucharlas por un pequeño parlante,
según el pulsador del teclado matricial donde en [2] Ceballos, J. (2009). Enciclopedia del lenguaje
cada uno de los casos se programó una nota y en el C++. Mexico: Alfaomega. Pags.19- 123
resto melodías.
[3]ST Microelectronics. (20 de febrero de 2017).
El uso de los Modulo ADC y DAC tiene bastante Manual de referencia RM0385. Obtenido de ST
impacto ya que hace posible la implementación de Microelectronics. Sitio Web:
múltiples sensores si importar del tipo que sean www.st.com/web/en/resource/technical/document
análogo o digitales, controlados por un
/reference_manual.pdf. Págs.: 195-214
microcontrolador el cual es capaz de procesar toda
l información recibida en tiempo real con el lapso
de tiempo que el diseñador lo desee y poder tomar
decisiones respecto a la información otorgada por
los sensores, lo cual ya es visible en múltiples
dispositivos como Smartphones o Tablets donde
un acelerómetro es el encargado de girar la

15
16

Você também pode gostar