Está en la página 1de 7

Escuela Colombiana de Ingeniería Julio Garavito.

López Samantha, Palomares Sebastián, Piñeros Hillary 1

IMPLEMENTACIÓN DE UN PROTOTIPO
SISTEMA DE SEÑALIZACIÓN EN
MICROCONTROLADOR
López Bejarano Lili Samantha, Piñeros Lourenco Hillary Findler, Palomares Cabrera Sebastián
{lili.lópez, hillary.pineros, sebastian.palomares }@mail.escuelaing.edu.co
Escuela Colombiana de Ingeniería Julio Garavito

El objetivo era implementar visualización


Resumen—Este documento presenta la dinámica a un sistema que diera la impresión, ante el
metodología y desarrollo de un prototipo de ojo humano, de estar constantemente encendido y sin
sistema de señalización, que fue implementado en percibir las conmutaciones entre varios estados
el microprocesador DSPIC33fj128mc802. El alternos, programados para cada dirección. En
principio de la práctica tenía por objetivo mover esencia, el método elegido de desarrollo se basó en
una flecha en 4 direcciones, de acuerdo con 4 un continuo movimiento de estados, a través de
diferentes pulsadores, y gracias a la integración registros de trabajo del microprocesador; quienes
de visualización dinámica El método de solución alternados por diferentes delays,o retardos,
partió del planteamiento del diagrama ASM, permitirían un continuo movimiento de la flecha, a
seguido por el diseño físico del circuito, y diferentes velocidades, y en diferentes espacios de la
finalmente el desarrollo secuencial del código matriz.
ejecutado con el programa MPLAB, en un Explicado el principio de la práctica, este
entorno de desarrollo Assembler. Así pues, se documento ampliará la metodología de la
lograron integrar conceptos del modelo del elaboración del diseño físico y de la programación
microprocesador, manejo de tiempos, modos de aplicada al microprocesador, con el fin de exponer
direccionamiento, entre otros, para permitir el los resultados de un sistema de señalización que
objetivo propuesto. Palabras clave: Assembler, funcione a diferentes velocidades, permita alternar la
diagrama ASM, microprocesador, modos de dirección de la flecha, y detener su visualización, a
direccionamiento, MPLAB, visualización través de diferentes entradas.
dinámica.
II. DISEÑO E IMPLEMENTACIÓN

I. INTRODUCCIÓN
La elaboración de esta práctica se dividió en
La construcción de un prototipo para un sistema de diferentes fases:
señalización fue el principal objetivo de la práctica Reconocimiento del alcance de la práctica,
de laboratorio. Su desarrollo abarcó la aplicación de planteamiento del diagrama ASM, diseño e
diferentes conceptos propios de la conformación y implementación del circuito de trabajo, desarrollo
manejo de un microprocesador, así como también el del código, programación del microprocesador,
modo de planteamiento de un diagrama ASM, el cual detección de las limitaciones.
permitió encontrar la ruta de trabajo y aplicación del Cuando se habla del alcance la práctica, se hace
código de programación del microprocesador. Su referencia a entender y analizar los requerimientos
implementación se llevó acabo con elementos del problema a trabajar. Esto permitió adaptar los
discretos en un montaje sobre protoboard, conocimientos vistos en la materia a la solución del
pulsadores, microprocesador DSPIC33fj128mc802 y proyecto. El método de desarrollo de que exigía la
una matriz de leds 7x5.
Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 2

práctica era la visualización de flechas en una matriz a partir del dato que tengan podrá o no pasar corriente
de leds 7x5 en diferentes direcciones, según un y así determinar si se habilita la columna. Para definir
pulsador de dirección. En la figura 1, se puede ver la que flecha se mostrará en la matriz, se utiliza la
secuencia que debe seguir la flecha. instrucción BTSC donde pregunta si el bit del
registro (botón) está en 1, dependiendo del botón que
se haya presionado se dirige a una configuración de
números en hexa para cada columna, la cual se
guardara en un registro para posteriormente moverla
al PORT y lograr visualizar la flecha seleccionada en
la matriz. Para que se puedan observar más de una
columna al mismo tiempo se hizo un delay de 3ms el
Figura 1. Desplazamiento de la flecha hacia arriba cual logra que la alternación entre columnas no
[1]. pueda ser detectado por el ojo humano creando así la
idea de ver una flecha completa. (El anexo 2,
También se requería que la flecha fuera capaz de contiene lo previamente explicado)
pararse con un pulsador de pausa, y reiniciarse con Por otro lado, las limitaciones del sistema vienen
uno de reset. Finalmente, poder variar la velocidad presentadas por la parte física del circuito. Los
de desplazamiento a partir de un selector el cual era montajes que contengan varios elementos circuitales
capaz de modificar a cuatro diferentes velocidades. conectados entre sí, requieren de pericia y orden para
Como consecuencia, en principio lo que se buscó fue garantizar tanto el entendimiento del circuito a
diseñar el funcionamiento del microcontrolador para personas externas, como también para asegurar que
cumplir los requerimientos pedidos por la práctica. los voltajes de alimentación llegarán a cada
Para esto se realizó un diagrama ASM, el cual componente sin falla alguna. La figura 2 muestra el
permite tener un panorama más claro de lo que montaje sin pulsadores.
llevaría el algoritmo a implementar. El anexo 1, Es de vital importancia conocer las características de
contiene el diagrama ASM utilizado. los elementos, y estar seguros del voltaje máximo de
Para la asignación de puertos de entrada y salida se alimentación que toleran, así como también de ser
siguieron las instrucciones proporcionadas por la cuidados a la hora de manejar tantas conexiones no
práctica. La siguiente tabla muestra de forma poner en riesgo los elementos; especialmente
ordenada las entradas y salidas: aquellos que poseen un alto valor económico.

Tabla 1. Reconocimientos de entrada y salida.


ELEMENTOS ¿ENTRADA/SALIDA?
Pulsadores Direcciones Entrada
Pulsadores Reset y Pausa Entrada
Selectores de velocidad Entrada
Matriz Leds 7x5 Salida

Por otro lado, fue necesario realizar el diseño del


circuito de trabajo, el cual se comenta más adelante.

Con respecto a la justificación del código, lo primero


que se hace es definir los puertos de entrada y salida Figura 2. Circuito de trabajo.
donde TRISA tendrá 5 salidas y TRISB 7 salidas. Por
lo tanto, para TRISA se definirán las columnas y para
TRISB las filas, obteniendo así la matriz de 5X7.
Para poder habilitar y deshabilitar las columnas se
utilizan transistores conectadas a las columnas donde
Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 3

III. ESQUEMÁTICOS
• Circuito de trabajo.
Para el diseño del retardo presente en la visualización
Este circuito se hizo en un montaje sobre protoboard, dinámica se tomó en cuenta la explicación disponible
teniendo en cuenta la respectiva polarización de cada en SEDA acerca del tema en cuestión. Para lograr
uno de los diodos. Para asegurar el paso o no de una óptima visualización recomiendan tomar delay's
corriente por cada columna de la matriz, se pusieron entre 1 ms y 16,7 ms; esto representa una frecuencia
transistores BJT. La figura 3, muestra el esquemático entre 60 Hz y 1 KHz aproximadamente. Entonces,
de la matriz con sus respectivas polarizaciones y teniendo en cuenta estos valores se escogió un valor
conexiones al microcontrolador. intermedio de retardo de 5 ms. La constante
resultante para el retardo fue de PONER EL
NÚMERO DE LA CONSTANTE, el cual asegura en
milisegundos un tiempo de aproximadamente 5,02
ms. Es importante mencionar que este delay está
presenta en cada rutina de activación para las
respectivas columnas de la matriz.

IV. RESULTADOS Y ANÁLISIS


Para observar el sistema de señalización en la matriz
de leds 7x5 se implementó el concepto de
visualización dinámica. El proceso consistió en la
activación secuencial de cada una de las columnas a
una frecuencia muy rápida, de tal forma que se
pudiera observar la geometría de cada flecha. A
partir de dos registros de trabajo (W0 y W1), dentro
de cinco rutinas diferentes, se iban guardando
Figura 3. Esquemático del circuito de trabajo.
direcciones de acuerdo con los leds que se
necesitaran encender. Las cinco rutinas son porque
El esquema de la figura 3, fue realizado de acuerdo
existen 5 columnas, por ello, al realizar una variación
con el manual de la matriz 7x5 sz431257k (ver figura
de encendido-apagado muy rápida, se logra observar
4).
las formas de cada flecha. (Ver figura 5).
Para llevar a cabo el desplazamiento de cada una de
las flechas en su respectiva dirección, se hizo uso de
casi la totalidad de todos los bits disponibles en los
registros de trabajo. Entonces, en un principio, se
buscó poder obtener la visualización estática de la
flecha, la cual ocupa una totalidad de 2 Bytes.
Luego, cada flecha se guardó en una posición del
registro en donde no fuese posible observarse cuando
no exista un estímulo que accione su desplazamiento
(pulsador). Finalmente, cuando existiera un
accionamiento del pulsador, la respectiva dirección
que formaba la flecha se iba rotando entre cada
posición del registro y así, observar un
desplazamiento. (Ver figura 6).

Figura 4. Conexiones en la matriz 7x5 sz431257k


Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 4

Figura 5. Flechas con direcciones hacia arriba,


derecha, abajo e izquierda.

VI. REFERENCIAS

[1] Tomado de la guía de laboratorio. FACULTAD DE


INGENIERÍA ELECTRÓNICA.
MICROPROCESADORES E INTERFACES (MPEI).
LABORATORIO NO 1, 2018-2. GRUPOS 1, 2 Y 80.
PROFESORES: JAVIER SOTO, NICOLAS
MOSQUERA.
Figura 6. Flechas con un desfase en su [2] Matriz z431257k, disponible en:
posicionamiento en el registro de trabajo. https://www.alldatasheet.com/view.jsp?Searchword=LM
324&gclid=Cj0KCQjwz93cBRCrARIsAEFbWshrdqLU
xKkho8yXbuNxFKZn0p8dFOrN-
V. CONCLUSIONES jWQbAFTgtoKIzLYq7VcORsaAjCpEALw_wcB

Para la implementación de este tipo de sistemas con


microcontrolador es importante siempre tener en
cuenta detalles mínimos para asegurar un óptimo
funcionamiento del circuito. El cableado de este es
parte fundamental a la hora de realizar un montaje,
puesto que, por un simple error de conexión, toda la
lógica de programación puede fallar y los resultados
no ser los esperados. Es importante ser ordenados a
la hora de realizar el montaje, ya que, si se practica
el orden, buscar un posible error dentro de todo los
puentes y cables existentes dentro del circuito
resultará mucho más fácil de encontrar.
Para la implementación del sistema de señalización
mediante el lenguaje ASM es importante tener claros
los conceptos de puertos de entrada salida, la lectura,
escritura y manejo de registros. Además de entender
las características del microcontrolador que se esté
usando, como el rango de voltaje que se maneja, la
configuración de los pines y las instrucciones que
maneja para así llegar a tener un óptimo rendimiento
a la hora de programar.
Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 5

Anexo 1. Diagrama ASM


Idle

Se asume un
Iniciar delay entre
secuencia S las columnas

BU Se define el valor del registro para cada fila y columna


Ru

B Se define el valor del registro para cada fila y columna


D

B Se define el valor del registro para cada fila y columna


R

Se define el valor del registro para cada fila y columna


BL

Encender Se rota el valor del registro


led y P que coordina la fila para así
mantener simular que se desplaza la
la flecha flecha
estática

F
Determinar frecuencia
Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 6

call retardo ; llamar al delay


SETM W2 ; deshabilitar primera columna
MOV W2, LATA

return
segunda:
; MOV #0xFF01,W1
call def2
MOV #0X0002,W2 ; habilitar segunda columna
MOV W2, LATA
MOV W1, LATB
Anexo 2. Código MPLAB. call retardo ; llamar al delay
CLR W2 ; deshabilitar columna
equ __33FJ128MC802,1 MOV W2, LATA
.include "xc.inc" return
CONFIG __FOSC, OSCIOFNC_ON ; tercera:
CONFIG __FWDT, FWDTEN_OFF ; MOV #0xFFFF,W1
call def3
.equ k1, 3702 MOV #0X0004,W2 ; habilitar tercera columna
.global _main MOV W2, LATA
MOV W1, LATB
.text call retardo ; llamar al delay
CLR W2 ; deshabilitar columna
_main: MOV W2, LATA
CALL Config_ return
bra loop cuarta:
;MOV #0xFF01,W1
Config_: call def4
MOV #0X0008,W2 ; habilitar cuarta columna
MOV.B #0XE0,W0 MOV W2, LATA
MOV W0,TRISA MOV W1, LATB
call retardo ; llamar al delay
MOV.B #0X80,W0 CLR W2 ; deshabilitar columna
MOV W0,TRISB MOV W2, LATA
return
MOV #0XFFFF,W2 ; dejarlo en digital quinta:
MOV W2,AD1PCFGL ; pasar analogo digital, el otro coso ;MOV #0xFF04,W1
tambien es un registro call def5
; MOV #0XFFFF,W1 ; dejarlo en digital MOV #0X00010,W2 ; habilitar quinta columna
; MOV W1,AD1PCFGL ; pasar analogo digital, el otro coso MOV W2, LATA
tambien es un registro MOV W1, LATB
CLR W2 call retardo ; llamar al delay
CLR W1 CLR W2 ; deshabilitar columna
return MOV W2, LATA
loop: return

CALL primera def1:


CALL segunda ;BTSC PORTB,#RB9
CALL tercera ;GOTO arriba1 ;SE REALIZA ESTA TAREA SI EL BIT
CALL cuarta RB9 ESTA EN 1
CALL quinta ;BTSC PORTB,#RB8 ;SE REALIZA ESTA TAREA SI EL
bra loop BIT RB8 ESTA EN 0
primera: ;GOTO arriba1 ;SE REALIZA ESTA TAREA SI EL BIT
;MOV #0xFF04,W1 RB9 ESTA EN 1
call def1 ; mirar a quien llamo
MOV #0X0001,W2 ; habilitar primera columna ; arriba1:
MOV W2, LATA ; retlw #0x0004,W1
MOV W1, LATB ;abajo1:
Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 7

; retlw #0x0010,W1
;izquierda1:
; retlw #0x0008,W1
;derecha1:
retlw #0x0020,W1

def2:
;BTSC PORTB,#RB9
;GOTO arriba2 ;SE REALIZA ESTA TAREA SI EL BIT
RB9 ESTA EN 1
;arriba2: RB9 ESTA EN 1
; retlw #0x0001,W1 ;arriba4:
;abajo2: ;retlw #0x0001,W1
;retlw #0x0020,W1 ;abajo4:
;izquierda2: ;retlw #0x0020,W1
; retlw #0x001C,W1 ;izquierda4:
;derecha2: ; retlw #0x0008,W1
retlw #0x0010,W1 ;derecha4:
retlw #0x0010,W1
def3: def5:
;BTSC PORTB,#RB9 ;BTSC PORTB,#RB9
;GOTO arriba3 ;SE REALIZA ESTA TAREA SI EL BIT ;GOTO arriba5 ;SE REALIZA ESTA TAREA SI EL BIT
RB9 ESTA EN 1 RB9 ESTA EN 1
;arriba3: ;arriba5:
;retlw #0x00FF,W1 ;retlw #0x0004,W1
;abajo3: ;abajo5:
;retlw #0x00FF,W1 ;retlw #0x0010,W1
;izquierda3: ;izquierda5:
; retlw #0x0029,W1 ;retlw #0x0008,W1
;derecha3: ;derecha5:
retlw #0x00F8,W1 retlw #0x0020,W1
def4:
;BTSC PORTB,#RB9 retardo:
;GOTO arriba4 ;SE REALIZA ESTA TAREA SI EL BIT MOV #k1,W14
wait_3ms:
dec W14,W14
bra nz, wait_3ms
return

.end

También podría gustarte