Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino ad una pressione di un tasto
import jnpout32.*; // interfacciamento alla DLL public class gestioneLED { static short dato; // variabili di classe static short indirizzo; static pPort lpt; public static void main ( String args[] ) { lpt = new pPort(); // istanza di una nuova porta indirizzo=0x378; // indirizzo Data Port LPT1 dato=0x77; // un dato qualsiasi... segue... } Struttura base dellapplicazione
public static void main ( String args[] ) { lpt = new pPort(); // istanza di una nuova porta indirizzo=0x378; // indirizzo Data Port LPT1 dato=0x77; // un dato qualsiasi while(true) { dato = lpt.input((short)(indirizzo+1)); System.out.println("Status Port: " + dato); try { Thread.currentThread().sleep(10); } catch(InterruptedException e) { } } Lettura dei tasti (Status Port)
while(true) { dato = lpt.input((short)(indirizzo+1)); System.out.print("Status Port: " + dato); int bit=0; for (int i=1; i<129; i<<=1) { if ((dato & i) == 0) System.out.print(" S"+bit+"=ON "); else System.out.print(" S"+bit+"=OFF"); bit++; } System.out.println(" "); try { Thread.currentThread().sleep(10); } catch(InterruptedException e) { } } Identificazione dei tasti (Status Port)
public static void main ( String args[] ) { lpt = new pPort(); // istanza di una nuova porta indirizzo=0x378; // indirizzo Data Port LPT1 dato=0x77; // un dato qualsiasi System.out.println("Dato emesso: " + dato); lpt.output(indirizzo,i); } Accensione dei LED (Data Port)
public static void main ( String args[] ) { lpt = new pPort(); // istanza di una nuova porta indirizzo=0x378; // indirizzo Data Port LPT1 dato=0x77; // un dato qualsiasi for (short i=1; i<129; i<<=1) { System.out.println("Dato emesso: " + i); lpt.output(indirizzo,i); try { Thread.currentThread().sleep(1000); } catch(InterruptedException e) { } } Rotazione dei LED (Data Port)
boolean fine = false; while (fine == false) { for (short i=0; i<=7; i++) { System.out.println("Dato emesso: " + i); lpt.output(indirizzo,i); try { Thread.currentThread().sleep(1000); } catch(InterruptedException e) { } dato = lpt.input((short)(indirizzo+1)); if ((dato & 0x40) == 0) // tasto bit S6 premuto { fine = true; break; } lpt.output(indirizzo,(short)0); } Rotazione dei LED fino alla pressione di un tasto