martes, 1 de septiembre de 2009

ejemplo 3

En este ejemplo usaremos la variable especial %p. Esta variable lee el valor del puerto de control de LPT y se utiliza para saber si alguno de los 5 pines de control han sido activados.
El ejempo inicia con la instruccion bucle que es igual a repetir( con la diferencia que hace iteraciones infinitas hasta que se sale del programa. el programa se quedara leyendo la instruccion si( y comparando el valor de %p, si %p es igual a 112 (pin 1 activado) se ejacutara todas las instrucciones abajo de si( hasta llegar a finsi. Si %p no es igual a 112, se salteara todas las instrucciones y el programa seguira desde finsi.

#----programa de ejemplo---- 

# declarar las variables al inicio del codigo
variables
$tiempo=100
$puerto=1
finvariables


inicio
# poner los pines del puerto a cero y esperar
#
5000 milisegundo
multipuerto(0,5000)
# iniciar un bucle infinito y leer
# el puerto de control
bucle

# si el puerto de control es igual a 119
# repetir 5 veces multipuerto( $puerto,$tiempo)
# y sumar $puerto + 1
si(%p=119)
repetir(5)
multipuerto($puerto,$tiempo)
$puerto=suma($puerto;1)
finrepetir
finsi

# si el puerto de control es igual a 119
# apagar todos los pines y salir del sistema
si(%p=112)
# apagar los pines y salir del programa
multipuerto(0,0)
# cuando se llega a la instruccion "final"
# se sale del sistema
final
finsi

finbucle

final



al iniciarse el programa entra en un bucle infinito, y se queda leyendo todo el tiempo el puerto de control (%p). si %p= 119 envia al puerto de datos el valor de $puerto.
si %p=119 sale del sistema.
En el video se puede ver en la protoboard 2 micro-swichts que al ser presionados ponen en estado alto los pines del puerto de control.

No hay comentarios:

Publicar un comentario en la entrada