;0123456789012345678901234567890123456789012345678901234567890123456789012
;TITOLO: Termometro temporizzato
;ENUNCIATO: Un sistema deve rilevare la temperatura di un liquido. Se esso
;supera i 100 gradi si deve attivare un dispositivo di raffreddamento. Nel
;momento in cui la temperatura rientra nei limiti consentiti, il
;raffreddamento si deve disattivare. Il programma deve continuare
;ciclicamente regolato da un tempo di ritardo finche non viene premuto il
;pulsante di fine.
;OBIETTIVI: A	Codifica del programma attraverso diagramma di flusso.
;	    B	Uso delle istruzioni di assegnazione,
;               salti condizionati incondizionati,
;		tempi di ritardo
;FINALITA': Gestire l'aquisizione di un dato a 8 bit e il blocco di
;           selezione e i tempi di ritardo.
;TABELLA ASSEGNAZIONE VARIABILI: P1.0/P1.7 = sensore di temperatura
;                                (se > 100 = T>100; se <= 100 = T<=100)
;                                P3.0 = sistema di raffreddamento
;                                (se 0 = attivo; se 1 = non attivo)


	  $MOD51
          ORG 0000H
	  SETB P3.0
RETURN:	  MOV A,P1
	  CJNE A,#0,CONTINUA
	  JMP FINE
CONTINUA: CJNE A,#100,RAFFRED
	  SETB P3.0
	  JMP TIME
RAFFRED:  JNC ON
	  SETB P3.0
	  JMP TIME
ON:	  CLR P3.0
TIME:	  MOV R2,#250
RIT2:	  MOV R1,#100
RIT:	  MOV R0,#100
          DJNZ R0,$
	  DJNZ R1,RIT
	  DJNZ R2,RIT2
          JMP RETURN
FINE:     NOP
          END
