NonSoloBolleDiA...
| Inviato il: 14/2/2012,12:00
|
Con questo dispositivo vediamo come memorizzare alcune informazioni sulla EEPROM del PPTEA che vengono mantenute anche in assenza di alimentazione. Il contatore è un dispositivo ( in genere industriale ) che serve per tenere sotto controllo le ore che un apparato lavora. Quindi quando viene alimentato inizia conteggio visualizzando e incrementando le ore lavorate. Con il PPTEA ed un display abbiamo realizzato un contaore che mosta anche i minuti. Nella memoria vengono utilizzati 3 Byte (cella 252,253,254) della eeprom interna...quindi il programma tokenizzato in eabasic deve entrare in 251 TOKEN. Nella memoria vengono coservati i minuti lavorati e vengono aggiornati ogni minuto. E' presente all'inizio del codice (linea 145-148) un sistema per azzerare o modificare le ore lavorate...e tale operazione va effettuata almeno la prima volta per far partire ad Zero le ore...altrimenti si parte dal valore che il PPTEA trova nelle celle. Questo è il codice in eabasic:
CODICE 100 '-------------- PPTEA: CONTA ORE -------------- 110 ' UTILIZZA LA EEPROM INTERNA PER MEMORIZZARE LE ORE LAVORATE 120 '---------- COSTANTI ---------- 130 CONSTANT CELLA_EEPROM_INI = 252 140 CONSTANT CELLA_EEPROM_FIN = 254
145 '---- MODIFICA ORA MEMORIZZATA SULLA EEPROM 146 'MINUTI_LAVORATI=0 147 'GOSUB :SCRIVI_EEPROM 148 'GOTO 148
150 '---- CARICO I MINUTI_LAVORATI DALLA EEPROM --- 160 CLR MINUTI_LAVORATI 170 POS=CELLA_EEPROM_INI 180 CLR AP 190 REPEAT 200 CELL=POS 210 VL=REEPROM 220 MINUTI_LAVORATI+=VL*POW(256,AP) 230 AP++ 240 POS++ 250 UNTIL POS<= CELLA_EEPROM_FIN
260 '---- SETTO LA MODALITA' IN SECONDI DEL REAL TIME CLOCK 270 FDATE=4 ' SECONDI DALL'INIZIO DELLA MEZZANOTTE
280 '--- PRENDO IL TEMPO DI RIFERIMENTO 290 RIF_SECONDI=DATE 300 LCDWRITE="PPTEA- CONTA ORE" 310 GOSUB :VISUALIZZA_ORA_MIN_DISPLAY
320 :MAIN 330 WAITS 1 340 NOW=DATE 350 SECONDI_LAVORATI=NOW-RIF_SECONDI 360 IF SECONDI_LAVORATI > 0 then 370 365 RIF_SECONDI=NOW ' GESTIONE DEL CAVALLO DELLA MEZZANOTTE 370 IF SECONDI_LAVORATI < 60 then :MAIN 375 GOSUB :INCREMENTA_MINUTI 380 GOTO :MAIN
419 '----------------------------- 420 :INCREMENTA_MINUTI 430 RIF_SECONDI+=60 440 MINUTI_LAVORATI++ 450 GOSUB :VISUALIZZA_ORA_MIN_DISPLAY 460 '---SCRIVO I MINUTI SULLA EEPROM 470 :SCRIVI_EEPROM 475 POS=CELLA_EEPROM_INI 480 CLR AP 490 REPEAT 500 CELL=POS 510 vL=(MINUTI_LAVORATI/POW(256,AP)) AND 255 520 WEEPROM=VL 530 AP++ 540 POS++ 550 UNTIL POS<= CELLA_EEPROM_FIN 560 RETURN
569 '----------------------------- 570 :VISUALIZZA_ORA_MIN_DISPLAY 580 MINUTI=MINUTI_LAVORATI mod 60 590 LCDPOS=&H21 600 LCDWRITE="h="& MINUTI_LAVORATI/60 & " m=" & right("0" & MINUTI_LAVORATI mod 60,2) 610 RETURN Per il circuito basta utilizzare il circuito minimale del PPTEA con un display. Un saluto Bolle
Modificato da NonSoloBolleDiAcqua - 15/2/2012, 00:50
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...
| |
| | mauropenna
| Inviato il: 14/2/2012,12:45
|
ciao Bolle grazie, per la pazienza, per il codice che hai postato quando torno questa sera vedo di fare un po di prove. adesso vado al lavoro ciao Grazie Mauro.
| |
| | |
|
Versione Completa!
|