;MISCELATORE
;
;ENUNCIATO: Un sistema automatico provvede alla miscelazione di due liquidi e,
;           con la miscela ottenuta al riempimento di 10 recipienti.A tal fine 
;           il sistema deve azionare 3 elettrovalvole e leggere 3 sensori di 
;           livello e attivare un motorino in modo da produrre le seguenti azioni:          
;         A-a miscelazione vuoto immetere il liquido 1 fino al livello A;
;         B-aggiungere il liquido 2 fino a livello B;
;         C-azionare un motorino che provvede a miscelare gli ingredienti;
;         D-scaricare la miscela nel recipiente destinato a raccoglierlo;
;         E-ripetere l'azione finch non finiscono i recipienti;
;
;FINALITA': Imparare a codificare iterazioni definite e indefinite,gestire l'acquisizione 
;           e la trasmissione di dati a singoli bit; 
;
;OBBIETTIVI: A-codifica del programma attraverso diagrammi di flusso; 
;            B-uso di istruzioni di assegnazione,di salto condizionato semplice e 
;              con decremento;
;
;Tabella di assegnazione dei pin:
;P1.0 --> SENSORE V
;P1.1 --> SENSORE A
;P1.2 --> SENSORE B
;P1.3 --> MOTORE
;P1.4 --> ELETTROVALVOLA E1
;P1.5 --> ELETTROVALVOLA E2
;P1.6 --> ELETTROVALVOLA E3

       $MOD51		 ;DIRETTIVA CODIFICA LINGUAGGIO 8051
       ORG 1000H	 ;DIRETTIVA INIZIO CODIFICA ALL'INDIRIZO 1000H


INIZIO: SETB P1.4                         ;INIZIALIZZAZIONE
        SETB P1.5                         ;INIZIALIZZAZIONE
        SETB P1.3                         ;INIZIALIZZAZIONE
        CLR P1.6                          ;INIZIALIZZAZIONE
        MOV 50H,#10                       ;INIZIALIZZAZIONE
RIPETI: JNB P1.0,OLTRE                    ;SALTA SE IL SENSORE V  DISATTIVATO
        SETB P1.6                         ;DISATTIVA ELETTROVALVOLA E3
        CLR P1.4                          ;ATTIVA ELETTROVALVOLA E3
OLTRE: JB P1.1,PROSEGUI                   ;SALTA SE IL SENSORE A  ATTIVATO
       SETB P1.4                          ;DISATTIVA ELETTROVALVOLA E1
       CLR P1.5                           ;ATTIVA ELETTROVALVOLA E2
PROSEGUI: JB P1.2,SUCCES                  ;SALTA SE IL SENSORE B  ATTIVATO
          SETB P1.5                       ;DISATTIVA ELETTROVALVOLA E2
          CLR P1.3                        ;ATTIVA IL MOTORE 
SUCCES: DJNZ 50H,RIPETI                   ;SALTA ALL'INDIRIZZO RIPETI
FINE: SETB P1.6                           ;DISATTIVA ELETTROVALVOLA E3
      END                                 ;FINE