1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
| DECLARE SUB affichage (nummes&, mesures%,
yorig%)
DECLARE SUB enregistrement (nummes&,
mesure%)
DECLARE SUB axes (nomdefichier AS STRING)
DECLARE SUB aquisit (mesure AS INTEGER)
DECLARE SUB initempo (n AS LONG)
DECLARE SUB nomfich (nomdefichier AS
STRING)
DECLARE SUB tempo (nlim AS LONG)
10 CLS : SCREEN 9
PALETTE 1, 30
20 REM entete nummes&=rang de la
mesure,mesure%=valeur de la mesure
30 REM xorig%= origine de l'axe x pour le trac
40 REM vit variable tempo,dpend du pc!!!
nummes& = 1
xorig% = 1
yorig% = 17
mesure% = 0
PRINT " PROGRAMME
D'ACQUISITION DE DONNEES" PRINT "
par le port parallele ,avec un max 187"
PRINT " --------------------------------------"
PRINT
PRINT
initempo n&
nomfich nomdefichier$
PRINT
PRINT
100 REM boucle principale
REM INPUT "DEMARRER LA MESURE ? < O /
N > ", rep$
REM IF rep$ = "o" OR rep$ = "O" THEN GOTO
130 ELSE GOTO 120
130
101 axes nomdefichier$
WHILE com$ <> "q"
IF DATE$ = dateini$ THEN
tempo 10 * n&
aquisit mesure%
enregistrement nummes&, mesure%
affichage nummes&, mesure%, yorig%
yorig% = INT(mesure% / 17)
nummes& = nummes& + 1
com$ = INKEY$
ELSE
CLOSE #1
nomfich nomdefichier$
REM OPEN nomdefichier$ FOR OUTPUT AS 1
dateini$ = DATE$
nummes& = 0
END IF
WEND
120
CLOSE #1: END
500 u = 1
RESUME 50
SUB affichage (nummes&, mesure%, yorig%)
xorig% = nummes& - (550 * (INT(nummes& /
550)))
IF xorig% = 439 THEN axes nomdefichier$
LOCATE 3, 10: PRINT "MES:"; nummes&;
"VAL:"; mesure%; "mv ", TIME$
PALETTE 1, 60
LINE (xorig% + 50, 350 - yorig%)-(xorig% + 50,
350 - INT(mesure% / 17)), 9
PALETTE 1, 30
END SUB
SUB aquisit (mesure%)
accum% = 0
OUT 888, 1
OUT 888, 0
OUT 888, 2
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% = 2048
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 1024
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 512
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 256
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 128
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 64
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 32
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 16
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 8
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 4
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 2
OUT 888, 0
OUT 888, 2
IF (INP(889) AND 32) > 0 THEN accum% =
accum% + 1
OUT 888, 2
OUT 888, 0
OUT 888, 2
OUT 888, 0
OUT 888, 1
mesure% = accum%
50 dateini$ = DATE$
ON ERROR GOTO 0
OPEN nomdefichier$ FOR OUTPUT AS 1
END SUB
SUB axes (nomdefichier$)
CLS
LOCATE 1, 1: PRINT "Appuyer sur <q> pour
stopper."
LOCATE 2, 1: PRINT "MESURE du :", DATE$,
"Mesures sauves dans ", nomdefichier$
LOCATE 11, 77: PRINT "4v"
LOCATE 25, 77: PRINT "ov"
LOCATE 11, 2: PRINT "V"
LOCATE 13, 2: PRINT "O"
LOCATE 15, 2: PRINT "L"
LOCATE 17, 2: PRINT "T"
LOCATE 19, 2: PRINT "S"
LOCATE 25, 1: PRINT "TEMPS>"
xorig% = 50
END SUB |
Partager