Claudio F Inserita: 6 aprile Segnala Share Inserita: 6 aprile Sempre per la sola lettura, ma questa volta tramite Arduino (Uno o Nano) e non manualmente, i collegamenti possono essere questi: Il programma questo: //--------------------------------------------------- // Dati usati nel programma //--------------------------------------------------- const byte ADDR_PIN[] = { A0, A1, A2, A3, A4 }; const byte DATA_PIN[] = { 8, 9, 2, 3, 4, 5, 6, 7 }; #define CS_PIN 10 //--------------------------------------------------- // Programma principale //--------------------------------------------------- void setup(){ Serial.begin(9600); bus_disconnect(); //Lettura e stampa dati Serial.println("Inizio lettura..."); bus_connect_read(); for (byte i=0 ; i<=31 ; i++){ Serial.print(i); Serial.print(" "); Serial.println(bus_read(i)); } bus_disconnect(); Serial.println("OK"); } void loop(){ } //--------------------------------------------------- // Funzioni richiamate //--------------------------------------------------- void bus_connect_read(){ //Connessione pin CS (zero-glitch) digitalWrite(CS_PIN, 1); pinMode(CS_PIN, OUTPUT); digitalWrite(CS_PIN, 1); //Connessione address bus for (byte i=0 ; i<=4 ; i++) pinMode(ADDR_PIN[i], OUTPUT); //Connessione data bus for (byte i=0 ; i<=7 ; i++) pinMode(DATA_PIN[i], INPUT_PULLUP); } //--------------------------------------------------- byte bus_read(byte addr){ byte n; digitalWrite(CS_PIN, 0); for (byte i=0 ; i<=4 ; i++) digitalWrite(ADDR_PIN[i], bitRead(addr, i)); delayMicroseconds(1000); for (byte i=0 ; i<=7 ; i++) bitWrite(n, i, digitalRead(DATA_PIN[i])); digitalWrite(CS_PIN, 1); return n; } //--------------------------------------------------- void bus_disconnect(){ for (byte i=0 ; i<=4 ; i++) pinMode(ADDR_PIN[i], INPUT); for (byte i=0 ; i<=7 ; i++) pinMode(DATA_PIN[i], INPUT); pinMode(CS_PIN, INPUT); } //--------------------------------------------------- Il risultato è la stampa sul monitor seriale dell'IDE delle coppie indirizzo / valore letto (con PROM scollegata si leggono tutti bit 1, quindi byte 255). Inizio lettura... 0 255 1 255 2 255 3 255 4 255 5 255 6 255 7 255 8 255 9 255 10 255 11 255 12 255 13 255 14 255 15 255 16 255 17 255 18 255 19 255 20 255 21 255 22 255 23 255 24 255 25 255 26 255 27 255 28 255 29 255 30 255 31 255 OK Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora