Bonjour. Je suis nouveau et néophyte alors excusez moi si je fais des bêtises en terme de présentation ^^ . Actuellement élève en terminale S-SI, nous avons décidé dans le cadre de nos PPE de développer en quelque sorte une station météo en nous aidant de l'ouvrage écrit par Guy Isabel "Construisez votre Station météo" . Tout marche à merveille au niveau de la température, du vent et de la pression. Le seul problème est l'heure. En effet, nous nous servons du module RTC board avec un composant DS1302. Le seul problème est que l'heure ou même la date n'avancent pas. En effet, on a beau rester 10 minutes à regarder l'écran, les minutes et les heures restent la même que celle que nous avions implantées dans le programme initialement. Vous comprenez bien que ceci est problématique. Nous nous servons du pic PB-3B pour notre projet et avons utilisé le programme PICBASIC-Studio.
Voici le programme :
'station météo compacte
CONST DEVICE =3B
DIM MIN AS BYTE, HEU AS BYTE, DAT AS BYTE
DIM MOI AS BYTE, JOU AS BYTE
DIM T AS INTEGER, H AS INTEGER, P AS INTEGER
DIM D AS INTEGER, V AS INTEGER, C AS INTEGER
SET PICBUS HIGH : LCDINIT: CSROFF :GOSUB BAT
OUT 12,1
SHIFTOUT 14,13,0,&H8E,8
SHIFTOUT 14,13,0,0,8
OUT 12,0
IF KEYIN (20,25 ) = 0 THEN GOTO CHAR ELSE GOTO LECT
CHAR: OUT 12,1
SHIFTOUT 14,13,0,&H82,8
SHIFTOUT 14,13,0,&H20,8
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H84,8
SHIFTOUT 14,13,0,&H10,8
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H86,8
SHIFTOUT 14,13,0,&H01,8
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H88,8
SHIFTOUT 14,13,0,&H04,8
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H8A,8
SHIFTOUT 14,13,0,&H05,8
OUT 12,0
LECT: OUT 12,1
SHIFTOUT 14,13,0,&H83,8
MIN = SHIFTIN (14,13,2,8)
MIN = (MIN << 1 )OR MIN .7
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H85,8
HEU = SHIFTIN (14,13,2,8)
HEU = (HEU << 1 )OR HEU .7
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H87,8
DAT = SHIFTIN (14,13,2,8)
DAT = (DAT << 1 )OR DAT .7
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H89,8
MOI = SHIFTIN (14,13,2,8)
MOI = (MOI << 1 )OR MOI .7
OUT 12,0
OUT 12,1
SHIFTOUT 14,13,0,&H8B,8
JOU = SHIFTIN (14,13,2,8)
JOU = (JOU << 1 )OR JOU .7
OUT 12,0
AFF: LOCATE 0,0 :PRINT "Bonjour, aujourd'hui "
LOCATE 0,2 : PRINT "il est "
LOCATE 7,2 : PRINT HEX(HEU,2,0), " heure ", HEX (MIN ,2,0)
LOCATE 0,1
IF JOU = 1 THEN PRINT "LUNDI "
IF JOU = 2 THEN PRINT "MARDI "
IF JOU = 3 THEN PRINT "MERCREDI "
IF JOU = 4 THEN PRINT "JEUDI "
IF JOU = 5 THEN PRINT "VENDREDI "
IF JOU = 6 THEN PRINT "SAMEDI "
IF JOU = 7 THEN PRINT "DIMANCHE "
PRINT ""
PRINT HEX(DAT,2,0),"/", HEX(MOI,2,0)
DELAY 5000 : CLS : DELAY 1000
CSROFF
T = ADIN(1)
IF T < 559 THEN GOTO 100 ELSE GOTO 200
100 T =(T *50)/ 102: T = 273 - T
LOCATE 0,3:PRINT"temp. :-": PRINT DEC(T,2,0):PRINT"DEG.C"
200 T =(T *50)/ 102: T = T - 273
LOCATE 0,3:PRINT"Temp. :": PRINT DEC(T,2,0):PRINT"DEG.C"
DELAY 2000 : CLS : DELAY 1000
P=ADIN(2)
P=P *245 : P = P /50
LOCATE 0,3 : PRINT"Pression : " : PRINT DEC(P) : PRINT" hPa"
DELAY 2000 : CLS : DELAY 1000
D = ADIN(0)
D= D * 50 : D = D /102
LOCATE 0,3 :PRINT "Vent : "
IF (D>=336 AND D <22) THEN PRINT"Nord"
IF (D>=22 AND D <67) THEN PRINT"Nord-est"
IF (D>=67 AND D <112) THEN PRINT"Est"
IF (D>=112 AND D <155) THEN PRINT"Sud-Est"
IF (D>=155 AND D <200) THEN PRINT"Sud"
IF (D>=200 AND D <245) THEN PRINT"Sud-Ouest"
IF (D>=245 AND D <290) THEN PRINT"Ouest"
IF (D>=290 AND D <336) THEN PRINT"Nors-Ouest"
DELAY 2000 : CLS : DELAY 1000
V = COUNT(1)
DELAY 1000
V = COUNT(1)
C=251
V = V * C
V = V / 1000
V = V *36 : V = V / 10
LOCATE 0,3:PRINT"Vitesse : "
Locate 8,3:PRINT DEC(V) : PRINT" km/h"
DELAY 2000 : CLS : DELAY 1000
GOTO LECT
BAT: OUT 12,1
SHIFTOUT 14,13,0,&H90,8
SHIFTOUT 14,13,0,&HA5
OUT 12,0
RETURN
Si vous désirez plus de précisions, n'hésitez pas à me demander, je peux vous scanner des pages du livre si vous voulez .
Merci d'avance pour votre aide.
PS : Je ne pourrais peut-être pas répondre avant demain.
-----