"Aquí nadie está loco, solo vive un realidad distinta"
Jim Morrison.

" ¿De qué serviría hablar de aquello? Nadie me creería"
Napoleón Bonaparte.

lunes, 24 de noviembre de 2014

Multiplexado de displays de 7 segmentos, utilizando un PIC16F84A programado en ensamblador con el MPLABX

Hace unos meses atrás, uno de mis amigos me pidió apoyo para hacer un pequeño obsequio para su novia. Yo le dije: "Trata de portarte bien con ella y e intenta cumplir la mayoría de sus deseos o antojos, ése es un buen regalo"; después de conversar y bromear un rato mi amigo y yo, optamos por hacer un circuito que mostrara la muy famosa frase: "I love you". 

El diseño inicial que le propuse a mi compañero, consistía en utilizar un contador BCD, un circuito integrado NE555 como temporizador astable y circuitos lógicos combinacionales, para que mediante minitérminos y mapas de Karnaugh, controlar el encendido/apagado de displays de 7 segmentos y mostrar la frase antes mencionada, desplazándose en modo marquesina. Años atrás, en el 2002, me había tocado diseñar y armar un circuito similar para la materia de Circuitos Lógicos II en el bachillerato; de dicho circuito sólo encontré una fotografía entre el acervo de imágenes que tengo, el procedimiento de diseño plasmado en papel lo deseché a finales del 2013. El circuito de aquel entonces se muestra a continuación:


(Para expandir, clic en la imagen).

En éste documento en formato PDF, se muestra parte del diseño inicial del circuito para la novia de mi compañero (puede tardar un poco en cargar el documento, ya que pesa 3 MB):


Después, le hice la observación a mi compañero, de que el circuito quedaría un poco extenso, que lo mejor era tratar de hacerlo compacto y portable. Y opté por cambiar el diseño y armar dicho circuito con un microcotrolador (le sugerí el PIC16F84A), enviando datos a través de un BUS de 7 bits conectado a los displays de 7 segmentos, y multiplexando éstos últimos para mostrar datos diferentes en cada uno.

Después de un par de días programando en lenguaje ensamblador y alambrando el circuito en una tablilla de experimentación, se obtuvo un diagrama final, que se muestra a continuación:



En éste video, se muestra el circuito armado de manera física y funcionando, en una tablilla de experimentación (protoboard):


Por último, para aquell@s que deseen armar éste circuito, pueden descargar el diagrama y el código en lenguaje ensamblador (se compila con el MPLABX de Microchip), en el siguiente link:
¡Muchas gracias por leer ésta entrada del blog!

ALF

jueves, 6 de noviembre de 2014

Conectando 2 puertos serie virtuales (COM), utilizando Virtual Serial Ports Emulator

Hace un tiempo, recibí la llamada de uno de mis amigos estudiante de Ingeniería en Sistemas Computacionales, él se encontraba con un pequeño problema: Intentaba construir un circuito con un microcontrolador PIC18F2550, que se conectase a la PC, usando comunicación serial (RS232), y que respondiera a una serie de caracteres, enviados desde la PC hacia el circuito usando el software Hyperterminal, para que el PIC hiciera encender/apagar LED's

Mi camarada contaba con todo lo necesario para implementar el circuito, pero no sabía muy bien por donde empezar el programa del microcontrolador. Por otra parte, yo, al encontrarme momentáneamente fuera de mi lugar de trabajo y de mi casa, sólo contaba con mi computadora portátil, conexión a internet y con unos cuantos programas de simulación de circuitos, así como del compilador de C CCS para microcontroladores PIC.

Entre los programas que tenía de simulación, se encontraba el ISIS de la paquetería Proteus (que para este caso usé la versión 8 SP0) de Labcenter Electronics; recordé entonces que podía programar el microcontrolador de manera virtual, posteriormente usar un emulador de puerto COM que trae el ISIS y enviar caracteres por el Hyperterminal. Pero el dilema era ¿Cómo voy a interconectar mi circuito virtual con el Hyperterminal?, si al abrir el puerto COM virtual en ISIS, no iba a permitirme abrirlo también en Hyperterminal de manera simultánea, además, tampoco contaba con cables convertidores de USB a Serial.

Después de buscar un poco en internet, encontré la solución: El Virtual Serial Ports Emulator (VSPE).

El cual pueden descargar del siguiente link:


Éste software, además de simular la interconexión de 2 puertos serie virtuales, permite crear otras conexiones, como las que se muestran en las siguientes imágenes:

Connector

(Para expandir, dar clic sobre la imagen).

Splitter

(Para expandir, dar clic sobre la imagen).

Pair

(Para expandir, dar clic sobre la imagen).

Mapper

(Para expandir, dar clic sobre la imagen).

Tcp Server

(Para expandir, dar clic sobre la imagen).

Tcp Client

(Para expandir, dar clic sobre la imagen).

Serial Redirector

(Para expandir, dar clic sobre la imagen).

UDP Manager

(Para expandir, dar clic sobre la imagen).

Bridge

(Para expandir, dar clic sobre la imagen).

Spy

(Para expandir, dar clic sobre la imagen).

A continuación se muestra un video, de cómo instalar y configurar el VSPE para intercambiar caracteres entre 2 ventanas del Hyperterminal:




Por último, se muestra el video de la simulación del circuito en ISIS, que comenté en las líneas de arriba (en alguna entrada posterior detallaré el diagrama y el código del circuito):




¡Muchas gracias por leer esta nueva entrada!

ALF