' COLLEGAMENTI ALLA PORTA PARALLELA: ' PIN MAX147 PORTA PARALLELA ' DIN = D5 ' SCLK = D7 ' CS = D6 ' DOUT = BUSY ' ALIMENTAZ. = C2 ' 1 A = 0.546 lpt = 958 ' INDIRIZZO PER LPT1 max usc = 956 ' INDIRIZZO PER LPT1 rele' RITARDO = 1 ' IN FUNZIONE DELLA VELOCITA' DEL PC vref = 2.5 ' VALORE DI VREF SUL PIN 11 DEL MAX147 ' DEFINISCE I PESI DELLE USCITE E DELL'INGRESSO din = 1 cs = 2 DOUT = 128 clk = 8 vcc = 4 rele = 0 CHDIR "c:\piletest\pile" 10 ' AZZERA VARIABILI UTILIZZATE / PROMEMORIA vel = 200 'rallentamento della scrittura vmax = 0 'limite superiore del grafico vmin = 0 'limite inferiore del grafico cel$ = "6" 'numero di celle cosv = 0 'rapporto pixel/volt cost = 0 'rapporto pixel/tempo intt = 0 'scala temporale grafico v$ = "" 'risultante da un input (gosub 1100) a$ = "" 'variabile a cui assegnare qualcosa da scrivere (gosub 1000) acca = 0 'se diverso da 0 non va a capo pacco$ = "" '3 cifre per distinguere i pacchi genpak$ = "" ' generalita' del pacco datao$ = "" 'data ultima operazione datac$ = "" 'data creazione res$ = "" 'resistenza in parallelo al carico res = 0 'resistenza in parallelo al carico corp$ = "" 'capacita' del pacco propac$ = "" 'numero di processi effettuati sul pacco cel$ = "6" 'numero di celle (qui fisso) fil = 0 fil1 = 0 'processo da aprire per primo, secondo... fil2 = 0 fil3 = 0 fil4 = 0 fil5 = 0 fil6 = 0 fil7 = 0 fil$ = "" fil1$ = "" 'processo da aprire per primo, secondo... fil2$ = "" fil3$ = "" fil4$ = "" fil5$ = "" fil6$ = "" fil7$ = "" pacco1$ = "" 'pacco da aprire per primo, secondo... pacco2$ = "" pacco3$ = "" pacco4$ = "" pacco5$ = "" pacco6$ = "" pacco7$ = "" colore1$ = "" 'colore da assegnare al processo da visualizzare per 1ø 2ø... colore2$ = "" colore3$ = "" colore4$ = "" colore5$ = "" colore6$ = "" colore7$ = "" ' LEGGE I DATI DI CONFIGURAZIONE PER IL MAX147 RESTORE FOR I = 0 TO 7: READ CONF(I): NEXT I DATA 142,206,158,222,174,238,190,254 OUT 958, 10 'inizio programma SOUND 5000, .5: SCREEN 12: SOUND 5000, .5 CLS : WIDTH 80, 60: FOR k = 1 TO 30: a$ = INKEY$: NEXT k a$ = "Logger di tensione batterie durante la scarica con forti correnti": GOSUB 1000 a$ = " ": GOSUB 1000: GOSUB 1000 a$ = "Digitare il numero di riferimento del pacco da testare": GOSUB 1000 a$ = "(3 cifre, niente -> invio = menu' visualizza, x = esci):": GOSUB 1100 IF v$ = "x" THEN END IF VAL(v$) = 0 THEN 500 a$ = "Ricerca del pacco in memoria...": GOSUB 1000 pacco$ = v$ + "0000.pil": pac$ = v$ OPEN pacco$ FOR RANDOM AS #1 GET #1, 1, genpak$ IF genpak$ = "" THEN 100 a$ = " ": GOSUB 1000 a$ = "Pacco trovato:": GOSUB 1000 a$ = " ": GOSUB 1000 a$ = "Generalita': " + genpak$: GOSUB 1000 GET #1, 2, datac$ a$ = "Data creazione: " + datac$: GOSUB 1000 GET #1, 3, datao$ a$ = "Data ultima operazione: " + datao$: GOSUB 1000 GET #1, 4, corp$ a$ = "Capacita' del pacco: " + corp$ + " mA": GOSUB 1000 GET #1, 5, propac$ a$ = "Numero processi di scarica effettuati: " + propac$: GOSUB 1000 20 a$ = "lo scarichiamo? ": PRINT : GOSUB 1100 IF v$ = "si" OR v$ = "s" THEN GOTO 200 a$ = "lo cancelliamo? ": PRINT : GOSUB 1100 IF v$ = "si" OR v$ = "s" THEN GOTO 900 a$ = "non sono possibili altre operazioni da svolgere sul pacco selezionato :(": GOSUB 1000 SLEEP 2: CLOSE #1: GOTO 10 100 ' nuovo pacco a$ = " ": GOSUB 1000 a$ = "Il pacco selezionato non e' in memoria, prego inserire i dati relativi": GOSUB 1000 a$ = "nessun inserimento -> invio = errore tuo, torna all'inizio": GOSUB 1000 a$ = " ": GOSUB 1000 a$ = "Generalita': ": GOSUB 1100 IF v$ = "" THEN CLOSE #1: KILL pacco$: GOTO 10 PUT #1, 1, v$: genpak$ = v$ a$ = "Data di creazione (oggi)" + DATE$: GOSUB 1000 datac$ = DATE$: PUT #1, 2, datac$: PUT #1, 3, datac$ a$ = "Capacita' del pacco (mA): ": GOSUB 1100 IF VAL(v$) = 0 THEN CLOSE #1: KILL pacco$: GOTO 10 PUT #1, 4, v$: corp$ = v$ propac$ = "0" PUT #1, 5, propac$: GOTO 20 END 200 ' inizio processo di scarica a$ = " ": GOSUB 1000 a$ = " Mi serve conoscere il valore della resistenza in parallelo": GOSUB 1000 a$ = "al mio ingresso per stimare la corrente di scarica e, quindi,": GOSUB 1000 a$ = "la durata approssimativa della scarica.": GOSUB 1000 a$ = "separa le unita' dai decimali con il . esprimi il valore in ohm (0 = esci)": GOSUB 1000 a$ = " ": GOSUB 1000 a$ = "Valore della resistenza: ": GOSUB 1100 IF VAL(v$) = 0 THEN CLOSE #1: GOTO 10 IF VAL(v$) > 5 THEN PRINT "ridicolo": SLEEP 3: CLOSE #1: GOTO 10 a$ = " ": GOSUB 1000 res = VAL(v$): res$ = v$ a$ = " Collega il convertitore al carico,": GOSUB 1000 a$ = "premi un tasto per continuare (0 per uscire)...": GOSUB 1000 210 a$ = INKEY$ IF a$ = "" THEN 210 IF a$ = "0" THEN CLOSE #1: GOTO 10 propac$ = STR$(VAL(propac$) + 1) datao$ = DATE$ PUT #1, 5, propac$ PUT #1, 3, datao$ CLOSE #1 fil = 0 220 fil = fil + 1: fil$ = MID$(STR$(fil), 2) IF LEN(fil$) = 1 THEN fil$ = "000" + fil$ IF LEN(fil$) = 2 THEN fil$ = "00" + fil$ IF LEN(fil$) = 3 THEN fil$ = "0" + fil$ OPEN pac$ + fil$ + ".sca" FOR RANDOM AS #1 GET #1, 1, data$ IF data$ = "" THEN 230 CLOSE #1 GOTO 220 230 PUT #1, 1, datao$ ora$ = TIME$ PUT #1, 2, ora$ PUT #1, 3, res$ rec = 4 corr$ = STR$(7 / res * 1000) vscar$ = STR$(VAL(cel$) * .9) medvolt = 0 tcar$ = STR$(VAL(corp$) / VAL(corr$) * 3600) tempo = 0 ' vecchia routine GOSUB 1200 a$ = "corrente - uscente: tensione - desiderata:": GOSUB 1000 a$ = " - uscita: - corrente:": GOSUB 1000 a$ = "tempo residuo stimato : tempo trascorso:": GOSUB 1000 a$ = "Collega la pila al circuito per iniziare la scarica.......": GOSUB 1000 OUT usc, 128 240 ingr = 0: GOSUB leggimax volt = dato * vref / 4096 * 5 LOCATE 56, LEN(a$) + 1 PRINT " " LOCATE 56, LEN(a$) + 1 PRINT USING "##.####"; volt IF volt < 4 THEN 240 LOCATE 56, 1 PRINT " " ON TIMER(1) GOSUB 2250 TIMER ON LOCATE 53, 25 PRINT corr$ LOCATE 53, 60 PRINT vscar$ 'inizio scarica inizio = TIMER mvolt = 100 pgrx = 0: pgry = 0 colore = 10 2245 ' routine di scarica ingr = 0: GOSUB leggimax volt = dato * vref / 4095 * 5 TIMER STOP medvolt = medvolt + volt: numvolt = numvolt + 1 TIMER ON LOCATE 54, 25 trascorso = TIMER - inizio totcor = VAL(corr$) * trascorso / 3600 PRINT USING "#####.###"; totcor; PRINT " mAh" LOCATE 54, 60 mv1 = mv2: mv2 = mv3: mv3 = mv4: mv4 = mv5: mv5 = mv6: mv6 = mv7 mv7 = mv8: mv8 = mv9: mv9 = volt mv0 = (mv1 + mv2 + mv3 + mv4 + mv5 + mv6 + mv7 + mv8 + mv9) / 9 PRINT USING "##.####"; mv0; PRINT " V " LOCATE 55, 25 PRINT USING "#######.#"; VAL(tcar$) - TIMER + inizio; PRINT " " LOCATE 55, 60 PRINT USING "#######.#"; TIMER - inizio; PRINT " " IF INKEY$ <> "" THEN 2290 IF mvolt < VAL(vscar$) THEN 2290 GOTO 2245 2250 'subroutine calcolamedia registradati grafico mvolt = medvolt / numvolt medvolt = 0: numvolt = 0 mvolt$ = MID$(STR$(mvolt), 1, 8) PUT #1, rec, mvolt$: rec = rec + 1 ' dato sul file 'grafico IF pgrx = 0 THEN pgrx = 50 IF pgry = 0 THEN pgry = 400 gry = 400 - ((mvolt - vmin) * cosv) grx = 50 + trascorso * cost / intt LINE (pgrx, pgry)-(grx, gry), colore pgrx = grx: pgry = gry IF pmax < mvolt THEN pmax = mvolt: colore = 10 RETURN 2290 ' fine scarica OUT usc, 0 a$ = "fine scarica.": GOSUB 1000: SOUND 5000, .5: TIMER OFF trascorso$ = STR$(trascorso) PUT #1, rec, a$: PUT #1, rec + 1, trascorso$: CLOSE #1 FOR suo = 500 TO 5000 STEP 100: SOUND suo, .8: NEXT suo SLEEP 10 GOTO 10 END 500 ' menu' visualizza CLS a$ = "E' possibile sovrapporre i grafici delle scariche effettuate": GOSUB 1000 a$ = "Inserisci di seguito i numeri di riferimento delle pile da": GOSUB 1000 a$ = "confrontare. Max 7 pile, niente per terminare": GOSUB 1000 a$ = " ": GOSUB 1000 a$ = "Pila 1: ": GOSUB 1100: pacco1$ = v$ IF VAL(pacco1$) = 0 THEN 10 a$ = "Colore: ": GOSUB 1100: cpacco1$ = v$ a$ = "Pila 2: ": GOSUB 1100: pacco2$ = v$ IF VAL(pacco2$) = 0 THEN 600 a$ = "Colore: ": GOSUB 1100: cpacco2$ = v$ a$ = "Pila 3: ": GOSUB 1100: pacco3$ = v$ IF VAL(pacco3$) = 0 THEN 600 a$ = "Colore: ": GOSUB 1100: cpacco3$ = v$ a$ = "Pila 4: ": GOSUB 1100: pacco4$ = v$ IF VAL(pacco4$) = 0 THEN 600 a$ = "Colore: ": GOSUB 1100: cpacco4$ = v$ a$ = "Pila 5: ": GOSUB 1100: pacco5$ = v$ IF VAL(pacco5$) = 0 THEN 600 a$ = "Colore: ": GOSUB 1100: cpacco5$ = v$ a$ = "Pila 6: ": GOSUB 1100: pacco6$ = v$ IF VAL(pacco6$) = 0 THEN 600 a$ = "Colore: ": GOSUB 1100: cpacco6$ = v$ a$ = "Pila 7: ": GOSUB 1100: pacco7$ = v$ IF VAL(pacco7$) = 0 THEN 600 a$ = "Colore: ": GOSUB 1100: cpacco7$ = v$ 600 a$ = "Cerco gli estremi per compilare il grafico...": GOSUB 1000 pac$ = pacco1$ GOSUB 700 IF fil = 0 THEN 720 fil1$ = fil$ pac$ = pacco2$ IF pacco2$ = "" THEN 750 fil = 0 GOSUB 700 IF fil = 0 THEN 720 fil2$ = fil$ pac$ = pacco3$ IF pacco3$ = "" THEN 750 fil = 0 GOSUB 700 IF fil = 0 THEN 720 fil3$ = fil$ pac$ = pacco4$ IF pacco4$ = "" THEN 750 fil = 0 GOSUB 700 IF fil = 0 THEN 720 fil4$ = fil$ pac$ = pacco5$ IF pacco5$ = "" THEN 750 fil = 0 GOSUB 700 IF fil = 0 THEN 720 fil5$ = fil$ pac$ = pacco6$ IF pacco6$ = "" THEN 750 fil = 0 GOSUB 700 IF fil = 0 THEN 720 fil6$ = fil$ pac$ = pacco7$ IF pacco7$ = "" THEN 750 GOSUB 700 IF fil = 0 THEN 720 fil7$ = fil$ 700 fil = fil + 1: fil$ = MID$(STR$(fil), 2) IF LEN(fil$) = 1 THEN fil$ = "000" + fil$ IF LEN(fil$) = 2 THEN fil$ = "00" + fil$ IF LEN(fil$) = 3 THEN fil$ = "0" + fil$ OPEN pac$ + fil$ + ".sca" FOR RANDOM AS #1 GET #1, 1, data$ IF data$ = "" THEN 710 CLOSE #1 GOTO 700 710 CLOSE #1 KILL pac$ + fil$ + ".sca" fil = fil - 1 fil$ = MID$(STR$(fil), 2) IF LEN(fil$) = 1 THEN fil$ = "000" + fil$ IF LEN(fil$) = 2 THEN fil$ = "00" + fil$ IF LEN(fil$) = 3 THEN fil$ = "0" + fil$ RETURN 720 a$ = "Uno dei pacchi selezionati non ha nessuna scarica da analizzare": GOSUB 1000 a$ = "trattasi del pacco: " + pac$: GOSUB 1000 SLEEP 3: GOTO 10 750 a$ = "ricerca del tempo massimo": GOSUB 1000 OPEN pacco1$ + fil1$ + ".sca" FOR RANDOM AS #1 rec = 4 755 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec1 = rec: CLOSE #1: GOTO 760 rec = rec + 1 GOTO 755 760 IF pacco2$ = "" THEN 2000 OPEN pacco2$ + fil2$ + ".sca" FOR RANDOM AS #1 rec = 4 765 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec2 = rec: CLOSE #1: GOTO 770 rec = rec + 1 GOTO 765 770 IF pacco3$ = "" THEN 2000 OPEN pacco3$ + fil3$ + ".sca" FOR RANDOM AS #1 rec = 4 775 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec3 = rec: CLOSE #1: GOTO 780 rec = rec + 1 GOTO 775 780 IF pacco4$ = "" THEN 2000 OPEN pacco4$ + fil4$ + ".sca" FOR RANDOM AS #1 rec = 4 785 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec4 = rec: CLOSE #1: GOTO 790 rec = rec + 1 GOTO 785 790 IF pacco5$ = "" THEN 2000 OPEN pacco5$ + fil5$ + ".sca" FOR RANDOM AS #1 rec = 4 795 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec5 = rec: CLOSE #1: GOTO 800 rec = rec + 1 GOTO 795 800 IF pacco6$ = "" THEN 2000 OPEN pacco6$ + fil6$ + ".sca" FOR RANDOM AS #1 rec = 4 805 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec6 = rec: CLOSE #1: GOTO 810 rec = rec + 1 GOTO 805 810 IF pacco7$ = "" THEN 2000 OPEN pacco7$ + fil7$ + ".sca" FOR RANDOM AS #1 rec = 4 815 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN rec7 = rec: CLOSE #1: GOTO 2000 rec = rec + 1 GOTO 815 END END 900 ' eliminazione pacco a$ = " ": GOSUB 1000 a$ = " ! sto' per eliminare il pacco e tutti i files relativi ad esso !": GOSUB 1000 a$ = " ": GOSUB 1000 a$ = "per confermare scrivi 'si' seguito da invio: ": GOSUB 1100 IF v$ <> "si" THEN CLOSE #1: GOTO 10 a$ = "ok, procedo...": GOSUB 1000 CLOSE #1 KILL pacco$: fil = 0 910 fil = fil + 1: fil$ = MID$(STR$(fil), 2) IF LEN(fil$) = 1 THEN fil$ = "000" + fil$ IF LEN(fil$) = 2 THEN fil$ = "00" + fil$ IF LEN(fil$) = 3 THEN fil$ = "0" + fil$ OPEN pac$ + fil$ + ".sca" FOR RANDOM AS #1 GET #1, 1, data$ CLOSE #1: KILL pac$ + fil$ + ".sca" IF data$ = "" THEN 10 GOTO 910 END 'inizio CLS LOCATE 15, 1 PRINT "PREMERE UN TASTO PER USCIRE" ' lettura FOR ingr = 0 TO 7 CONF = CONF(ingr) ' LEGGE BYTE DI CONFIGURAZIONE GOSUB leggimax ' LEGGE LA TENSIONE volt = dato * (vref / 4095) IF ingr = 0 THEN volt = volt * 5 LOCATE 3 + ingr, 1 PRINT "INGRESSO"; ingr; " "; PRINT USING "#.####"; volt; PRINT " VOLT" FOR I = 1 TO RITARDO: NEXT I ' RITARDO PER PC VELOCI NEXT ingr a$ = INKEY$ IF a$ = "" THEN 10 fine: OUT lpt, din + cs + clk ' TOGLIE VCC END ' E FINISCE 1000 ' subroutine "scrivi" lun = LEN(a$) FOR car = 1 TO lun PRINT MID$(a$, car, 1); CHR$(219); LOCATE CSRLIN, POS(0) - 1 FOR j = 1 TO vel: NEXT j NEXT car IF acca = 0 THEN PRINT " " acca = 0 RETURN 1100 ' subroutine "input" lun = LEN(a$) FOR car = 1 TO lun PRINT MID$(a$, car, 1); CHR$(219); LOCATE CSRLIN, POS(0) - 1 FOR j = 1 TO vel: NEXT j NEXT car v$ = "" 1110 a$ = INKEY$ IF a$ = "" THEN 1110 IF a$ = CHR$(8) AND v$ = "" THEN 1110 IF a$ = CHR$(8) THEN SOUND 1000, .4: v$ = MID$(v$, 1, v - 1): v = LEN(v$) IF a$ = CHR$(8) THEN LOCATE CSRLIN, POS(0) - 1: PRINT " "; IF a$ = CHR$(8) THEN LOCATE CSRLIN, POS(0) - 2: PRINT CHR$(219); IF a$ = CHR$(8) THEN LOCATE CSRLIN, POS(0) - 1: GOTO 1110 IF a$ = CHR$(13) THEN PRINT " ": SOUND 5000, .5: RETURN v$ = v$ + a$: v = LEN(v$): SOUND 5000, .2 PRINT a$; CHR$(219); : LOCATE CSRLIN, POS(0) - 1 GOTO 1110 1200 ' disegna griglia grafico SOUND 5000, .5 CLS LINE (50, 402)-(50, 1), 15: FOR h = 1 TO vel * 30: NEXT h LINE (50, 402)-(631, 402), 15: FOR h = 1 TO vel * 30: NEXT h IF vmax = 0 THEN vmax = VAL(cel$) * 1.4 IF vmin = 0 THEN vmin = VAL(cel$) * .9 IF tempo = 0 THEN tempo = VAL(corp$) / VAL(corr$) * 1.2 * 3600 cosv = 401 / (vmax + .1 - vmin - .1)' pixel per volt dvmin = VAL(MID$(STR$(vmin), 2)) cost = 581 / tempo: intt = 1 IF cost < 2 THEN cost = cost * 10: intt = 10 IF cost < 2 THEN cost = cost * 6: intt = 60 IF cost < 2 THEN cost = cost * 10: intt = 600 FOR k = 51 TO 631 STEP cost LINE (k, 1)-(k, 404), 8: FOR h = 1 TO vel: NEXT h NEXT k FOR k = 1 TO 402 STEP cosv / 10 LINE (47, 402 - k)-(630, 402 - k), 8: FOR h = 1 TO vel: NEXT h NEXT k FOR k = 1 TO 401 STEP cosv IF vmin > .9 THEN j = 402 + ((VAL(MID$(STR$(vmin), 3)) - 1) * cosv) - k IF vmin > 9.9 THEN j = 402 + ((VAL(MID$(STR$(vmin), 4)) - 1) * cosv) - k LINE (44, j)-(630, j), 15: FOR h = 1 TO vel * 10: NEXT h NEXT k FOR k = 51 TO 631 STEP cost * 10 LINE (k, 1)-(k, 407), 15: FOR h = 1 TO vel * 10: NEXT h NEXT k LOCATE 1, 1 PRINT USING "##.#"; vmax LOCATE 51, 1 PRINT USING "##.#"; vmin LOCATE 52, 8 PRINT "0" LOCATE 52, 65 IF tempo > 600 THEN PRINT USING "###.##"; tempo / 60; : PRINT " minuti" IF tempo < 601 THEN PRINT USING "###.##"; tempo; : PRINT " secondi" RETURN 1300 'compila grafico IF pgrx = 0 THEN pgrx = 50 IF pgry = 0 THEN pgry = 400 gry = 400 - ((mvolt - vmin) * cosv) grx = 50 + trascorso * cost / intt LINE (pgrx, pgry)-(grx, gry), colore pgrx = grx: pgry = gry RETURN '******* ROUTINE PER LEGGERE I DATI DAL MAX147 ******** leggimax: CONF = CONF(ingr) ' LEGGE BYTE DI CONFIGURAZIONE OUT lpt, din + cs + clk + vcc ' CS = 0, ATTIVA MAX147 FOR I = 7 TO 0 STEP -1 ' INVIA BYTE DI CONFIGURAZIONE IF (CONF AND 2 ^ I) = (2 ^ I) THEN OUT lpt, cs + clk + vcc ELSE OUT lpt, cs + clk + din + vcc END IF OUT lpt, cs + din + vcc ' IMPULSO DI CLOCK OUT lpt, cs + din + clk + vcc NEXT I dato = 0 FOR I = 11 TO 0 STEP -1 ' RICEVE IL DATO A 12 BIT OUT lpt, cs + din + vcc OUT lpt, cs + din + clk + vcc IF (INP(lpt - 1) AND DOUT) = 0 THEN dato = dato + 2 ^ I NEXT I OUT lpt, din + clk + vcc ' CS A 1, MAX147 IN STANDBY RETURN 2000 ' visualizzazione CLS a$ = "Analisi completata.": GOSUB 1000 a$ = "Le durate delle scariche da te selezionate sono:": GOSUB 1000 a$ = "Pila 1: " + STR$(rec1) + "secondi, Colore: " + cpacco1$: GOSUB 1000 a$ = "Pila 2: " + STR$(rec2) + "secondi, Colore: " + cpacco2$: GOSUB 1000 a$ = "Pila 3: " + STR$(rec3) + "secondi, Colore: " + cpacco3$: GOSUB 1000 a$ = "Pila 4: " + STR$(rec4) + "secondi, Colore: " + cpacco4$: GOSUB 1000 a$ = "Pila 5: " + STR$(rec5) + "secondi, Colore: " + cpacco5$: GOSUB 1000 a$ = "Pila 6: " + STR$(rec6) + "secondi, Colore: " + cpacco6$: GOSUB 1000 a$ = "Pila 7: " + STR$(rec7) + "secondi, Colore: " + cpacco7$: GOSUB 1000 tempo = rec1 IF rec2 > tempo THEN tempo = rec2 IF rec3 > tempo THEN tempo = rec3 IF rec4 > tempo THEN tempo = rec4 IF rec5 > tempo THEN tempo = rec5 IF rec6 > tempo THEN tempo = rec6 IF rec7 > tempo THEN tempo = rec7 a$ = "Il grafico andra' da 0 secondi fino a " + STR$(tempo) + " secondi": GOSUB 1000 a$ = "premi un tasto per visualizzarlo...": GOSUB 1000 2005 IF INKEY$ = "" THEN 2005 vmin = 0 vmax = 0 GOSUB 1200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco1$ + fil1$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco1$) 2010 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2020 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2010 2020 IF pacco2$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco2$ + fil2$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco2$) 2030 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2040 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2030 2040 IF pacco2$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco2$ + fil2$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco2$) 2050 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2060 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2050 2060 IF pacco3$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco3$ + fil3$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco3$) 2070 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2080 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2070 2080 IF pacco4$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco4$ + fil4$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco4$) 2090 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2100 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2090 2100 IF pacco5$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco5$ + fil5$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco5$) 2110 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2120 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2110 2120 IF pacco6$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco6$ + fil6$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco6$) 2130 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2140 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2130 2140 IF pacco7$ = "" THEN 2200 pgrx = 0: pgry = 0 rec = 4 OPEN pacco7$ + fil7$ + ".sca" FOR RANDOM AS #1 colore = VAL(cpacco7$) 2150 GET #1, rec, mvolt$ mvolt = VAL(mvolt$) IF mvolt < 2 THEN CLOSE #1: GOTO 2200 trascorso = rec: GOSUB 1300 rec = rec + 1 GOTO 2150 2200 a$ = " Premi un tasto per tornare all'inizio, 'S' per statistiche": GOSUB 1000 2210 a$ = INKEY$: IF INKEY$ = "" THEN 2210 GOTO 10 END