La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Registro a scorrimento

Presentazioni simili


Presentazione sul tema: "Registro a scorrimento"— Transcript della presentazione:

1 Registro a scorrimento
Sistema discreto. Con memoria in cui il dato scorre da sinistra verso destra comandato da un impulso di clock

2 Registro a scorrimento (shift register)
Serial In Serial Out (SISO) a 4 bit In Ck Out D Q Ck In t Out

3

4 programma Per simulare il registro di 8 bit uso un vettore di 8 elementi Il vettore è inizializzato a 0 int r[8]={0,0,0,0,0,0,0,0};

5 Ingresso e clock Si preme il pulsante 1 per scrivere 1
il pulsante 2 per il clock 2 Input dato clock

6 Supponiamo di aver inserito un 1 questo deve accendere il primo led
clock Supponiamo di aver inserito un 1 questo deve accendere il primo led

7 E poi ad ogni colpo di clock scorre in alto

8 E poi ad ogni colpo di clock scorre in alto

9 E poi ad ogni colpo di clock scorre in alto

10 5° clock E poi ad ogni colpo di clock scorre in alto e se si inserisce un altro 1 questo entrerà dal primo

11 Fase di lettura in ingresso
int dato=0; // aspetto finchè non premo il clock (canale 2 in input) do{ if (ReadDigitalChannel(1)) dato=1; } while(!ReadDigitalChannel(2)); Notare il not !

12 Fase di scorrimento // fase di scorrimento for(int i=7;i>0;i--)
r[i]=r[i-1]; r[0]=dato; dato r[0] r[1] r[2] r[3] r[4] r[5] r[6] r[7]

13 Conversione e accensione led
// conversione da binario in decimale int val=r[0]*1+r[1]*2+r[2]*4+r[3]*8+r[4]*16+r[5]*32+r[6]*64+r[7]*128; // un po' di effetti scenografici!! for(int i=1;i<5;i++) {WriteAllDigital(0); Sleep(100*i); WriteAllDigital(val); }

14 Proposta aggiungere un pulsante 3 di reset che liberi la memoria in qualsiasi fase


Scaricare ppt "Registro a scorrimento"

Presentazioni simili


Annunci Google