ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 30 Linguaggio ASSEMBLER per AVR Diagramma di flusso Esempio 1 Esempio 2 A.S.E.
Richiami Architettura del “AT90S8515” (ATMEL) Set di istruzioni A.S.E.
Instuction Set Manuale AVR Istruzioni Dispositivo A.S.E.
Diagramma di flusso Etichetta Funzione Subroutine Scelta A.S.E. PROGRAM Etichetta Funzione Subroutine Scelta R6 = R6 + R3 BCD Y A = B N A.S.E.
Esempio LED Si accende il LED corrispondente al pulsante premuto A.S.E.
Esempio LED-SHIFT Si accendono in sequenza i LED in corrispondenza di un qualunque pulsante premuto A.S.E.
Esempio 1 Realizzazione di una rete sequenziale sincrona A.S.E.
Pulsanti di sicurezza Descrizione del ciclo L’operatore deve avere le due mani impegnate quando la macchina si avvia inizialmente nessun pulsante è premuto deve essere premuto il pulsante destro (R), o Sinistro (L) si attende che sia premuto l’altro pulsante e si da lo start (U) quando si rilascia un pulsante si interrompe lo start per poter iniziare nuovamente il ciclo è necessari che entrambi i pulsanti siano rilasciati A.S.E.
Definizioni Ingressi Uscita Registri R16 = IN = ingressi PORT-D bit-0 = Sinistro (L) bit-7 = Destro (R) n.b. I pulsanti sono attivi bassi (normalmente a 1) Uscita PORT-B bit-2 = Start (S) n.b. L’uscita è attiva bassa (normalmente a 1) Registri R16 = IN = ingressi R17 = OUT = uscita A.S.E.
Diagramma di Flusso IN = PIND•81 PORB = FB PORTB = FF IN=00 D - PULS IN = PIND•81 PORB = FB PORTB = FF Y IN=00 IN = PIND•81 DDRB = FF Y Y IN=81 IN=00 PORTD = FF PORB = FF IN = PIND•81 DDRD = 00 Y IN=01 IN = PIND•81 N Y IN=80 IN=81 Y IN=00 A.S.E. n
Utilizzo della maschera Degli 8 bit di ingresso ci interessano solo il primo e l’ultimo Per mettere a “0” i bit 6 – 1 si può utilizzare una “maschera” e quindi fare l’AND A.S.E.
Confronto U 0,0 1,1 0,1 1,0 A.S.E. a 00 y b 01 d 10 c 11 n IN=00 Y PORTB = FF D - PULS DDRB = FF PORTD = FF DDRD = 00 IN = PIND•81 IN=81 IN=01 IN=80 PORB = FB PORB = FF N 0,0 1,1 U 0,1 1,0 a 00 y b 01 d 10 c 11 A.S.E. n
Ambiente di sviluppo Collegamento ad AVR STUDIO A.S.E.
Misuratore di riflessi Esempio 2 Misuratore di riflessi Caratteristiche Funzionamento Descrizione del codice A.S.E.
Misuratore di riflessi Caratteristiche Attivato dal tasto D0 Accende tutti i led per qualche secondo Spegne e inizia la misura Accende un led ogni 25 ms (92250 cicli) Si blocca se viene premuto nuovamente il tasto Valore medio del tempo di reazione: 0,1 s Circa 5 led accesi Aspetta una nuova attivazione Indicazioni per la scrittura del codice Clock scheda: 3.69 MHz Risolubile senza l’uso di interrup A.S.E.
Misuratore di riflessi Funzionamento Tasto On Off On 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Led 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 25 ms A.S.E.
Ambiente di sviluppo Collegamento ad AVR STUDIO A.S.E.
Conclusioni Linguaggio ASSEMBLER per AVR Set di istruzioni Diagramma di flusso Esempi A.S.E.