|
|
||||||||||
Un sistema a microprocessore controlla il flusso di oggetti all'uscita di una catena di montaggio industriale. La catena possiede quattro separati percorsi di uscita. Ogni 200 mS comunica alla sala di controllo, inviando un rapporto a riguardo del numero di oggetti prodotti nell'ultimo intervallo di 200 mS, per ciascun percorso di uscita. Scrivere e testare il programma di controllo di tutto il sistema, secondo le seguenti specifiche. Un timer, collegato al processore DMC8, invia una richiesta di interrupt !INT ogni 0,5 mS: il segnale di conferma di esecuzione dell'interrupt !INTA, da parte del processore, cancella automaticamente la richiesta di interruzione quando inizia la sequenza di interrupt. Specifiche del firmware Il microprocessore, nel programma principale, controlla continuamente il porto SENSORS. Confronta il loro stato attuale con il precedente, rilevando il passaggio da '0' a '1' delle uscite dei sensori e incrementando, per ciascun percorso di uscita, il corrispondente conteggio degli oggetti. Supponiamo che, durante l'intervallo di 200 mS, passino attraverso un singolo percorso molto meno di 255 oggetti. La routine di gestione degli interrupt, eseguita ad ogni "timer tick", conta il numero di volte che è chiamata (in modo da valutare il tempo trascorso, a passi di 0,5 mS). Quando i 200 mS di intervallo sono trascorsi, il conteggio del tempo viene riazzerato e la variabile SEND è attivata. SEND segnala al programma principale di inviare le informazioni di conteggio alla sala di controllo, per ogni percorso di uscita.
Si noti che la sala di controllo terrà conto della transizione negativa della linea Strobe per leggere le informazioni CODE e COUNT. Dopo che il programma principale avrà completato l'invio dei dati, la variabile SEND è ri-azzerata. Proponiamo qui tre modelli di soluzione, in codice assembly DMC8, in ordine decrescente di difficoltà:
Chi volesse eseguire solo un'analisi di codice già scritto, e simularne il comportamento, trova qui disponibile una soluzione completa. Una volta terminato di scrivere e testare il programma nel d-McE, occorre caricarlo nella ROM del microcomputer e simulare l'intero circuito. Un click sulla figura seguente aprirà lo schema nel d-DcS. Notare che, per testare il ricevitore, la sequenza di ingresso "TestSequence" è disponibile nella finestra del diagramma temporale. |