PROGRAMMI TEST

In questa pagina troverete dei programmi test per il microrobot Monty suddivisi in due categorie, per la scheda di controllo e per il robot. I programmi sono scaricati dalla rete o realizzati da me.


PROGRAMMI PRESENTI NEI FASCICOLI


Esempio pagina PL41
EsempioPL41.asm
Esempio pagina PL43
EsempioPL43.asm
Esempio pagina PL45
EsempioPL45.asm

PROGRAMMI PER LA SCHEDA DI CONTROLLO O PER IL MICROPIC TRAINER


Programma che accende e spegna un diodo led in funzione dello stato dell'interruttore numero 2 della porta A.
DIODOLED.ASM
Sommare due valori immediati (p.e. 5+7) il risultato va depositato nella posizione 0x10
ESEM1_1.ASM
Tre valori A,B e C supponiamo siano stati precedentemente memorizzati. Si desidera risolvere la seguente equazione: (A+B)-C
ESEM1_2.ASM
Sommare due numeri, A e B, di 16 bit ciascuno.
ESEM1_3.ASM
Sottrarre due numeri, A - B, di 16 bit ciascuno.
Anche se questo esercizio &grave simile al precedente, è da notare che, il contenuto dell' accumulatore agisce come sottraendo e, l'operando, come minuendo. Ugualmente è da notare che il flag CARRY va interpretato in modo opposto a come va fatto con la somma (a "0" c'è trasporto).
ESEM1_4.ASM
Memorizzare il modello 33 in 15 posizioni contigue della memoria di dati, iniziando dall'indirizzo 0x10
ESEM1_5.ASM
Il programma paragona due numeri A e B. Se A=B, il risultato è 0. Se A > B, il risultato è A-B. Se A < B il risultato è A+B
Si noti che, non avendo istruzioni di paragone, questo è realizzato mediante sottrazioni.
ESEM1_6.ASM
Il programma realizza una temporizzazione di 0.5 secondi. Si presume una frequenza di lavoro del PIC di 4 MHz, per cui il TMR0 cambia ogni 1 uS (4Tosc=1uS ).
ESEM1_7.ASM
Questo esempio realizza il prodotto di due numeri di 8 bit generando un risultato di 16 bit.
Il programma impiega lo stesso meccanismo di realizzazione di un prodotto su carta.
Si noti che il programma viene eseguito sempre nello stesso intervallo di tempo, qualunque siano gli operandi.
ESEM1_8.ASM
Converti il valore binario presente in posizione 0x10 in BCD. Il risultato va depositato nelle variabili Buffer_H e Buffer_L.
ESEM1_9.ASM
Converti il valore binario presente in posizione 0x10, compreso tra 0 e 9, nel suo equivalente in codice GRAY
Questo esempio cerca di abituare l'utente all'utilizzo di tabelle
ESEM1_10.ASM
Leggere lo stato dei 5 interruttori del Trainer (RA4-RA0) e portare il livello logico degli stessi ai led RB4-RB7 connessi alla porta B
ESEM2_1.ASM
Controllo dei led RB0 e RB1 dall'interruttore RA0. RB0 riflette lo stato di RA0, RB1 il complemento di RA0
ESEM2_2.ASM
Programma combinazionale, secondo lo stato degli interruttori RA0 e RA1, attivare i led RB0-RB7 connessi alla porta B, seguendo la tabella della verità inserita nel codice.
ESEM2_3.ASM
Programma combinazionale, al valore che si introduce dagli interruttori RA0-RA4 della porta A, si somma la costante 5. Il risultato viene visualizzato nei led RB0-RB7 connessi alla porta B.
ESEM2_4.ASM
Programma combinazionale. Simulazione del controllo di una macchina di tornitura.
La sequenza viene avviata premendo "I" (RA0) che attiva il cilindro "V" (RB0). Questo avanzando spinge il pezzo a tornire e aziona il sensore "b" (RA2) attivando il relèd del motore "M" (RB1). Inizia la tornitura. Durante l'avanzamento si raggiunge il sensore "c" (RA3) che disattiva il cilindro "V" (RB0) attivando la retrocessione dello stesso. Ripassando per "b" (RA2), si disconnette "M" (RB1). Quando si raggiunge la fine del percorso "a" (RA1) si attiva un segnale acustico "A" RB2) affinchè l'operatore ritiri il pezzo, ne collochi uno nuovo e, inizi un nuovo ciclo, premendo "I" (RA0).
ESEM2_5.ASM
Macchina per trapanatura. Azionando il tasto "I" (RA0) la testa inizia un abbassamento rapido di avvicinamento,
attivando il motore di discesa rapida "BR"(RB3).
Arrivando al sensore "b" (RA2), si attiva il relèd "M" (RB1) che fa girare il motore della punta del trapano e avviene un abbassamento lento per la trapanatura del pezzo "BL" (RB4). Quando si attiva il sensore "c" (RA3) si constata che il pezzo èd stato trapanato.
Inizia una salita rapida della testa "SR" (RB0) nel tempo
in cui il relèd "M" (RB1) di giro resta attivato.
Quando si raggiunge la fine del percorso "a" (RA1), si arresta la salita rapida "SR"(RB0), il relèd di giro "M" (RB1) e si attiva un segnale acustico "A" (RA2) di avviso.
Il ciclo inizia premendo un'altra volta "I" (RA0).
ESEM2_6.ASM
Macchina di inscatolamento.
Due relèd "M1" (RB0) e "M2" (RB1) comandano due motori che trascinano due nastri trasportatori.
"M1" (RB0) trasporta pezzi e "M2" (RB1) imballaggi.
Un sensore "DP" (RA1) rileva il passaggio di pezzi e, l'altro "DE" (RA2), rileva il corretto posizionamento di un contenitore. Rilevando il passaggio di 10 pezzi, il contenitore èd considerato pieno, si attiva un segnale acustico "A" (RB2) e, il nastro che trasporta imballaggi, si sposta fino a collocare un nuovo contenitore vuoto.
In questo momento si disattiva il segnale acustico "A"(RB2) e nuovamente avanza il nastro di pezzi ripetendo così il ciclo.
Un interruttore "I" (RA0) attiva o no tutto il sistema.
ESEM2_7.ASM
Macchina di inscatolamento, eliminazione di rimbalzi mediante una temporizzazione.
Due relèd "M1" (RB0) e "M2" (RB1) comandano due motori che trascinano due nastri trasportatori.
"M1" (RB0) trasporta pezzi e "M2" (RB1) imballaggi.
Un sensore "DP" (RA1) rileva il passaggio di pezzi e, l'altro "DE" (RA2), rileva il corretto posizionamento di un contenitore.
Rilevando il passaggio di 10 pezzi, il contenitore èd considerato pieno, si attiva un segnale acustico "A" (RB2) e, il nastro che trasporta imballaggi, si sposta fino a collocare un nuovo contenitore vuoto.
In questo momento si disattiva il segnale acustico "A"(RB2) e nuovamente avanza il nastro di pezzi ripetendo così il ciclo.
Un interruttore "I" (RA0) attiva o no tutto il sistema.
ESEM2_8.ASM
Gioco di luci, altra temporizzazione.
Si vuole eseguire una rotazione sequenziale nell'accensione di ogni led connesso alla porta B nel Trainer.
Se RA0 = 0, la rotazione saràd da destra a sinistra e viceversa.
Ogni led rimane acceso 0.25 secondi (250 mS)
ESEM2_9.ASM
L'interruzione del TMR0. Si tratta di verificare l'interruzione provocata dal TMR0.
Il programma legge lo stato degli interruttori connessi a RA0 e RA4 per portarlo ai led collegati rispettivamente a RB0 e RB4.
Nello stesso tempo il TMR0 genera un'interrupt ogni 0.05 sec. (50 mS) che si ripeteràd 5 volte con lo scopo di creare un'intermittenza di 250 mS sul led collegato a RB7.
ESEM2_10.ASM
Il Display a 7 segmenti del MicroPIC Trainer.
Sul display a catodo comune connesso alla porta B, si vuole visualizzare lo stato logico "0" o "1" dell'interruttore RA0.
Mediante l'interruttore RA1 si attiva o no il punto decimale.
ESEM2_11.ASM
Il Display a 7 segmenti del MicroPIC Trainer. Decodificatore hex a 7 segmenti. Mediante i quattro interruttori RA0-RA3 si introduce un valore esadecimale di 4 bit che deve essere visualizzato sul display del MicroPIC Trainer
ESEM2_12.ASM