Buscar en este blog

miércoles, 22 de diciembre de 2010

Uso de módulos Switch y Led en GPSim

Sigo probando el simulador GPSim. Esta vez los módulos Led y Switch (llave).

En este caso tengo un led conectado al pin 0 del puerto A del PIC y otro al pin 1. A su vez, en el pin0 del puerto B, tengo conectado un switch. Según el estado de este switch, parpadea uno u otro led.

El programa en assembler es más sencillo que el del post anterior y lo pueden encontrar acá.

Lo bajan y lo compilan como en el post anterior con el comando:

gpasm -p 16F628A leds.asm

El archivo "leds.conf", donde se cargan e interconectan los módulos entre sí, tiene ahora el siguiente contenido:

#cargar la libreria con los modulos
module lib /usr/lib/libgpsim_modules.so.0

#crear led0, led1, switch y resistencias de pullup y pulldown
module load led led0
module load led led1
module load switch switch0
module load pullup pullup0
module load pulldown pulldown0

#crear 4 nodos para conectar los leds, el switch, la resistencia de pullup y el PIC entre si
node nl0 nl1 nl2 nl3

#usar los nodos para conectar el display y el PIC entre si

#conexion de leds al PIC
attach nl0 porta0 led0.in
attach nl1 porta1 led1.in

#conexion de pin 0 del puerto B a una de las patas del switch y a resitencia de pulldown
# switch tiene pines A y B
attach nl2 portb0 switch0.B
attach nl2 pulldown0.pin switch0.B

#conexion de la otra pata del switch a una resistencia de pullup
attach nl3 pullup0.pin switch0.A

Con todo esto, en una línea de comandos ejecuto:

gpsim -c leds.conf -s leds.cod

La simulación la hago con la opción de delay de 100ms ya que, tal como en el post anterior, el código escrito es totalmente inservible en la práctica pues no tiene delays.

Switch abierto (pin 0 del puerto B a 0Volts) - Led0 parpadeando

Switch cerrado (pin 0 del puerto B a 5Volts) - Led1 parpadeando

Respecto a los módulos "pullup" y "pulldown", estos representan una resistencia unida a Vcc (usualmente +5Volts) o GND respectivamente.

3 comentarios:

  1. Fantástico, gracias. Yo tengo algunos proyectos con gpsim:
    github.com/vomv1988

    ResponderEliminar