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
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 è 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è 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è "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 è stato trapanato. Inizia
una salita rapida della testa "SR" (RB0) nel tempo
in cui il relè "M" (RB1) di giro resta attivato. Quando si raggiunge la fine del
percorso "a" (RA1), si arresta la salita rapida "SR"(RB0), il
relè 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è "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 è 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è "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 è 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à 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à
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
PROGRAMMI PER IL ROBOT MONTY
IN COSTRUZIONE