'*****************************************' ' jeudi premier septembre 2005 ' ' Fichier meteo-7.bas ' ' mise au point nouvelle station meteo ' ' reglage pression ' ' temperature negatives ' '*****************************************' 5 set picbus high 6 dim plu as byte 'variable pluviometre 7 dim i as byte 'caractere du RS232 10 dim compt as byte 'variable anemometre 11 dim th as integer 'variable temperature 12 dim decim as byte 'variable decimale temperature 13 dim pr as integer 14 dim hy as integer 15 dim lu as integer 16 dim se as integer 17 dim result as integer 18 dim q as integer 19 dim sign as integer 'programme principal 61 cls 62 lcdinit 63 locate 0,0 64 print "Pas de caractere" 65 serin 19,103,0,100,61, [i] 'prise RS232 a 9600 bauds 70 cls 75 lcdinit 80 locate 0,0 85 print "Carac =",i 100 delay 1000 105 i= i - 48 'transforme le caractere en valeur 110 on i goto 210,290,320,350,380,500,619,61 '0 pluviometrie '1 pression '2 humidite '3 luminosite '4 sens du vent '5 temperature '6 vitesse du vent 'autre -> retour a ligne 61 120 goto 61 'capture des sorties des compteurs du pluviometre 210 plu = bytein(1) 215 cls 216 lcdinit 220 locate 0,0 230 print "Pluv =" , dec(plu) 231 result = plu 232 gosub 1000 240 delay 1000 241 goto 61 'pression 290 pr = adin(0) 291 q = pr 292 q = q / 10 293 q = 2 * q 294 pr = pr + q 295 q = q / 100 297 pr = pr - q 298 pr = pr + 30 'reglage 1,199 + 30 299 cls 300 lcdinit 205 locate 0,0 310 print "Pres =",dec(pr), " millibar" 311 result = pr 312 gosub 1000 315 delay 1000 316 goto 61 'humidite 320 hy = adin(1) 321 hy = hy - 164 322 hy = hy * 100 323 hy = hy / 634 325 cls 330 lcdinit 335 locate 0,0 340 print "Hyg =",dec(hy,2), " %" 341 result = hy 342 gosub 1000 345 delay 1000 346 goto 61 'luminosite 350 lu = adin(2) 351 lu = lu * 100 352 lu = lu / 1023 355 cls 360 lcdinit 365 locate 0,0 370 print "Lum =",dec(lu,2), " %" 371 result = lu 372 gosub 1000 375 delay 1000 386 goto 61 'sens du vent 380 se = adin(3) 381 se = se - 31 382 se = se * 36 383 se = se / 97 385 cls 390 lcdinit 395 locate 0,0 400 print "Sens =",dec(se,3), " deg" 401 result = se 402 gosub 1000 405 delay 1000 406 goto 61 'pour la temperature -> DS1620 500 out 22,1 'CS du DS1620 505 shiftout 20,21,0,&HEE 510 out 22,0 515 delay 100 520 out 22,1 525 shiftout 20,21,0,&HAA 530 th = shiftin(20,21,0,9) 540 out 22,0 545 cls 546 lcdinit 550 locate 0,0 560 sign = th AND 256 570 if sign =&H100 then 580 gosub 800 else 590 gosub 850 591 end if 592 gosub 1000 595 delay 1000 596 goto 61 'pour compter les impulsions de l'anemometre 619 lcdinit 620 compt = count(1) 630 cls 635 lcdinit 640 locate 0,0 650 print "Anemo =", dec (compt) 655 delay 1000 656 goto 61 'temperatures negatives 800 th = 255 AND th th = 255 - th decim = th AND 1 decim = decim * 5 th=(th>>1) locate 0,0 print "T= -",dec(th,2),",",dec(decim,1)," C" result = th return 'temperatures positives 850 locate 0,0 decim=th AND 1 decim=decim * 5 th=(th>>1) print "T= ",dec(th,2),",",dec(decim,1)," C" delay 20 result = th return 'sous programme de reponse de la station 1000 serout 18,103,0,10, [result,13,10] 1050 return