Está en la página 1de 4

Cronometro Digital 1

Dispositivos Digitales Programables

Informe de Laboratorio 1: Cronometro Digital mediante


Psoc 5LP.

Sebastián Pintor, 20162007013.


sebasdav31@gmail.com,

I. OBJETIVOS

• Conocer el funcionamiento básico de uno de los


periféricos internos del PSoC5LP específicamente las
líneas GPIO.
• Desarrollar e implementar un cronometro digital bajo
el impedimento del uso de temporizadores e
interrupciones ya establecidos.

II. INTRODUCCIÓN
Figura 1. Psoc 5LP Prototyping Kit – Pines Especificados [2]
Esta práctica tiene como objetivo el diseño y desarrollo de un
cronometro digital implementado el microcontrolador PsoC B. Bloque” LED Driver “
5LP bajo la restricción del uso de temporizadores internos y
además interrupciones programables , de esta forma se verán El “LED Segment and Matrix Driver”(LED_Driver) es un
afianzaran y conocerán conceptos sobre el uso de este controlador multiplexado que puede manejar hasta 24 señales
dispositivo y su entorno de programación. de segmento y 8 señales de común, dentro de las funciones que
podemos declarar asociadas a este controlador están:
III. MATERIALES
• Psoc 5LP
LED_Driver_Start () : Activa e inicia el componente
• Software Psoc 5LP LED_Driver.
• Pulsadores
• Display 7 segmentos
LED_Driver_Write7SegNumberDec (): Esta función permite
IV. MARCO TEÓRICO mostrar números en base 10 en el display 7 segmentos, tiene
A. Psoc 5LP como entrada 4 parámetros los cuales en orden como van son:
Numero/Variable que quiero imprimir, posición en la que se
La tarjeta PSoC 5LP es una plataforma de desarrollo integrado imprimirá, numero dígitos a mostrar, orientación de los dígitos/
por un procesador CY8C5888LTI-LP097, con una CPU impresión (LED_Driver_ZERO_PAD).
ARM® Cortex®-M3 en un solo chip.

Esta tarjeta proporciona acceso a todo el dispositivo PSoC 5LP LED_Driver_PutDecimalPoint (): Establece el punto decimal
en un formato compatible con protoboard. Cuenta con conector en una posición específica, tiene como entrada 2 parámetros los
micro-USB para la creación de prototipos con conectividad Full cuales son: mostrar punto decimal si es necesario (TRUE=1,
Speed USB 2.0. El kit también está diseñado con un factor de FALSE=0]), posición en la que se mostrara. [2]
forma divisible conveniente, permitiendo a los usuarios separar
el conector USB con el programador KitProg y depurador de la
placa destino para utilizarlos de forma independiente. [1]

Este informe se presenta el (13/05/2020), como primer informe de laboratorio de la asignatura Dispositivos Digitales Programables . Sebastián David Pintor
Ahumada , Universidad Distrital Francisco José de Caldas, Facultad de Ingeniería, Ingeniería Eléctrica.
Cronometro Digital 2
Dispositivos Digitales Programables
V. DESCRIPCIÓN FUNCIONAL
A. Problemática propuesta

Se pretende dar solución al siguiente ejercicio “Implementar un


cronómetro digital que visualice en 4 displays de 7 segmentos
la información del tiempo transcurrido. La visualización en los
displays de 7 segmentos debe ser dinámica, deberá mostrar dos
dígitos para los minutos (hasta 59) y dos dígitos para segundos
(hasta 59). Se utilizará un pulsador N.A. que tendrá como
función detener o hacer que continué la temporización, y un
segundo pulsador para tomar tiempo parcial, es decir, en la
visualización se pausará el tiempo, pero el cronómetro seguirá
temporizando, al oprimirlo nuevamente seguirá la
temporización normal. Para reiniciar el cronómetro se hará uso
de la señal de reset del PSoC.”
Figura 4. Configuración de pines digitales

B. Solución aproximada Tal como se menciona en la problemática, es necesario la


visualización de los datos de conteo que tenemos, por lo cual la
Debido a limitaciones de la practica el uso de temporizadores implementación de un decodificador para el uso de un display
internos, además de interrupciones del “Psoc” no se pueden 7 Segmentos es indispensable; Teniendo presente el uso de un
implementar en el desarrollo de este ejercicio, por lo cual se visualizador de 4 dígitos 7 segmentos, se agregara el bloque de
procede a establecer la lógica y flujo de información para el psoc por defecto con el fin de solucionar el decodificado de los
desarrollo del ejercicio obteniendo el siguiente diagrama datos binarios (Véase Figura 5, 6). Este se manejará bajo
(Véase Figura 2.) comandos en el “main” asociado al proyecto.

Figura 2. Diagrama de Flujo con el cual se pretende realizar el desarrollo del Figura 5. Bloque decodificador predispuesto por el software “Psoc Creator”
ejercicio

Considerando que al entrar en un estado de “pausa” no puede


entrar al estado “parar” debido a que este dominaría sobre
“pausa”

VI. DESCRIPCIÓN ESTRUCTURAL

A. Esquemático

Partiendo de la implementación de pines de lectura para obtener


información de los pulsadores externos se usan “Digital Inputs”
configuradas de forma que su manejo se bajó código y no en
una sintaxis estructural (Véase Figura 3, 4.)

Figura 6. Características del Driver/Bloque para visualización en el 7


segmentos

Figura 3. Pines digitales asociados a los pulsadores externos


Este informe se presenta el (13/05/2020), como primer informe de laboratorio de la asignatura Dispositivos Digitales Programables . Sebastián David Pintor
Ahumada , Universidad Distrital Francisco José de Caldas, Facultad de Ingeniería, Ingeniería Eléctrica.
Cronometro Digital 3
Dispositivos Digitales Programables
B. Código El programa se correrá bajo un ciclo “while” el cual me
Iniciando en el código con la declaración del inicio de nuestro permitirá agregar un condicional permanente y un análogo de
bloque decodificador ubicado en el “TopDesign” con interrupción asociado a la variable “temporal” dentro de este
Display_Start (); Posteriormente se declaran variables de las ciclo se realizará el conteo y visualización ; Además para el
cuales podremos ver información predispuesta sobre su función conteo se realiza mediante la suma de 1 a la variable “
en el código en la siguiente tabla segundos” cada 1000 milisegundos por medio un Delay ,
cuando el segundo alcance la equivalencia de un minuto una
Función de las variables declaradas en el código
unidad será sumada a la variable “minutos” y segundos sera
reseteada, este cronometro esta pensando con una limitante
Variable Tipo Función de tiempo menor de una hora asi que al llegar el contador de
Segundos Entero Contar segundos minutos a su máximo el programa finalizara.
Minutos Entero Contar minutos while(temporal==1){
CyDelay(1000);
Memoria donde guardo el segundos++;
valor de la variable segundos
Auxs Entero if(segundos==60){
dependiendo del estado de la
segundos=0;
variable pausa minutos++;
Memoria donde guardo el }
valor de la variable minutos if(minutos==60){
Auxm Entero break;
dependiendo del estado de la }
variable pausa
if(pausa==0){
Indicador de estado para auxs=segundos;
parar el funcionamiento auxm=minutos;
Temporal Entero/Bolean }
dependiendo del pulsador
externo Display_Write7SegNumberDec(auxs,0,2,Display_ZERO_PAD
);
Indicador de estado para
pausar la visualización Display_Write7SegNumberDec(auxm,2,2,Display_ZERO_PAD
Pausa Entero/Bolean );
dependiendo del pulsador
externo Display_PutDecimalPoint(1,3);
}

Para la visualización es necesario tener en cuenta un


Como un pulsador tal como su nombre lo indica envía una señal condicional según el estado de la variable pausa es allí donde
de tipo pulso, por lo cual la lectura por medio de los pines se realiza el uso de las memorias o variables auxiliares para la
igualmente también será un pulso debemos acondicionar una cantidad de minutos y segundos ( auxs , auxm ) ya que en
forma de indicar ese pulso como cambio de estado y no como cambio de condicionar los parámetros de la función de
un estado por lo cual se usa una variable que tenga dos estados visualización , simplemente mantengo los parámetros los
( encendido/TRUE, apagado/FALSE) y al detectar el pulso del cuales serán las memorias/auxiliares y acondiciono el registro
pin de entrada el estado actual será cambiado , el como se en las mismas según el estado de la variable pausa ; La función
realizo para este ejercicio ha sido de la siguiente forma de visualización asociada al decodificador se en cuenta en el
marco teórico.
if(Parar_Read()==1){
switch(temporal){
case 0:temporal=1; if(pausa==0){
break; auxs=segundos;
case 1: temporal=0. auxm=minutos;
Break;} }
}
Display_Write7SegNumberDec(auxs,0,2,Display_ZERO_PAD);
Display_Write7SegNumberDec(auxm,2,2,Display_ZERO_PAD);
Donde el pin “Parar” esta en pull down por lo cual cualquier Display_PutDecimalPoint(1,3);

pulso será de tipo HIGH la variable temporal se inicio en 1


debido a que este estado se usa como condicional para correr el VII. CONCLUSIONES
conteo y visualización El problema tuvo solución bajo las restricciones de no uso de
interrupciones en un campo de programación secuencial
Para el pulsador que indica pausa “Pausar “se realizó lo mismo estructurada por lo tanto el programa se ira ejecutando
solo que esta vez el estado de pausa en condiciones de no secuencialmente e ira comprobando variables de esta forma y
pulsación trabaja en LOW. no en paralelo al ciclo , por lo cual presenta inconveniente ya
que las condiciónales programadas no son interrupciones
if( Pausar_Read()==1){
switch(pausa){ inmediatas sino que toman un tiempo de respuesta asociado a
case 0:pausa=1; la duración de un ciclo en el caso de la función while.
break;
case 1:pausa=0;
break; }
}

Este informe se presenta el (13/05/2020), como primer informe de laboratorio de la asignatura Dispositivos Digitales Programables . Sebastián David Pintor
Ahumada , Universidad Distrital Francisco José de Caldas, Facultad de Ingeniería, Ingeniería Eléctrica.
Cronometro Digital 4
Dispositivos Digitales Programables

El uso de Psoc en el proceso de realización de los circuitos


digitales reduce considerablemente costos y espacio físico
dentro de nuestra Protoboard. Además, el software de
programación dentro de nuestro kit resulta fácil de programar y
con la gran posibilidad de hacer cuantos cambios sean posibles
a nuestro circuito sin la necesidad de adquirir circuitos
integrados o realizar grandes cambios dentro de nuestro
montaje.

La construcción de un proyecto en PsoC facilita la tarea de


programar un montaje dado a su relación entre seudocódigo y
formato esquemático , los cuales pueden ser mezclados por lo
cual es más intuitivo y versátil

VIII. BIBLIOGRAFÍA

[1] Moviltronics SAS, «Moviltronics,» 2018. [En línea]. Available:


https://moviltronics.com.co/plataformas-de-desarrollo/277-tarjeta-psoc-
5lp-prototyping-kit-cy8ckit-059.html. [Último acceso: 12 Mayo 2019].

[2] LED Sement and Matrix Driver – PsoC Creator Component Datasheet
«Cypress Embeded in Tomorrow» [Último acceso: 12 Mayo 2020].

Este informe se presenta el (13/05/2020), como primer informe de laboratorio de la asignatura Dispositivos Digitales Programables . Sebastián David Pintor
Ahumada , Universidad Distrital Francisco José de Caldas, Facultad de Ingeniería, Ingeniería Eléctrica.

También podría gustarte