Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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.
VI. REFERENCIAS
Se asume un
Iniciar delay entre
secuencia S las columnas
F
Determinar frecuencia
Escuela Colombiana de Ingeniería Julio Garavito. López Samantha, Palomares Sebastián, Piñeros Hillary 6
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
; 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