Domanda:
È possibile pilotare un display LCD 2 X 16 utilizzando porte logiche? (Senza computer)
Jardel B.
2018-02-08 20:32:04 UTC
view on stackexchange narkive permalink

Voglio creare un circuito utilizzando porte logiche che stampi un messaggio sul display LCD (2 X 16).Qualche idea?Voglio sapere come farlo "a mano".come ai vecchi tempi.

Posso costruire un circuito da porte logiche collegate a una tastiera che quando premo un tasto il carattere viene visualizzato sul display LCD?

Se stai parlando di display basati su HD44780, non sono mai stati pilotati "a mano", sono stati progettati per il bus MCU Motorola.Ovviamente non è impossibile, ma nemmeno lo è l'allevamento di gatti.
Posso costruire un circuito con porte logiche agganciate a una tastiera che quando premo un tasto il carattere viene visualizzato sul display LCD?
Come ho detto, sì, è possibile.
Puoi costruire una CPU con porte logiche.Vedi [big mess o'wires] (https://www.bigmessowires.com/bmow1/) per un folle esempio.Quindi, sì, puoi anche guidare un LCD 2x16.Tieni presente, però, che probabilmente ci vorranno alcune settimane.E probabilmente ci sono cose più interessanti da fare con questo periodo (non sto giudicando, ma ancora un po 'giudicare ...).
Re, "Senza computer".Immagino che dipenda da cosa pensi significhi "computer".In passato ho lavorato con più di un "computer" privo di microprocessore.Nella scatola non c'era nient'altro che un vecchio mucchio di porte logiche che erano collegate insieme in modo tale da recuperare istruzioni e operandi dalla memoria, decodificare le istruzioni, eseguirle, riscrivere i risultati in memoria --- proprio come quelloun _real_ computer andrebbe bene.https://c1.staticflickr.com/9/8278/8942466121_db0327bc2e_b.jpg
Puoi farlo in Minecraft: https://www.youtube.com/watch?v=aQqWorbrAaY
Ai "vecchi tempi" non esisteva un LCD 2x16 con controller, driver e pratico bus a 8 bit integrati.Quello che stai proponendo è un po 'come provare a costruire un computer per automobile per un motore a iniezione di carburante con relè e tubi a vuoto.Nessuno lo ha mai fatto in quel modo: le vecchie auto avevano carburatori e nessun computer.Un pannello LCD 2x16 è ** progettato ** per essere azionato tramite un microcontrollore.Se vuoi un progetto oldschool, prendi alcuni indicatori BCD a 7 segmenti e inizia da lì.
Penso che il collegamento a una tastiera PS / 2 o USB sarebbe più impegnativo rispetto alla guida di un LCD 2x16.Se dovessi farlo con una logica diversa da un micro, guarderei prima alcuni chip ROM paralleli (Flash) e verrei contatori per costruire alcune macchine a stati.GAL e FPGA potrebbero aiutare, potrebbe essere necessaria una tastiera a matrice x.y.La logica discreta richiederà molto lavoro ma non impossibile.
Cinque risposte:
Michael Karas
2018-02-08 21:12:55 UTC
view on stackexchange narkive permalink

È possibile creare un circuito con porte logiche in grado di inizializzare e visualizzare i caratteri su un modulo in modalità caratteri LCD 16x2. È anche possibile creare un circuito con porte logiche che possa prendere l'output di una tastiera a matrice standard o anche una tastiera di tipo PS2 e instradare i dati della tastiera al modulo LCD.

La cosa importante a cui pensare, però, è che nel solo porre la domanda implichi che sei all'inizio della curva di apprendimento di come realizzare un progetto come questo. Suggerisco che se vuoi costruire qualcosa fuori dalle porte logiche di iniziare con qualcosa di molto più semplice finché non hai l'idea di cosa è coinvolto nel mettere insieme le cose per fare questo tipo di cosa. Solo allora inizierai a essere in grado di rispondere alla tua domanda sul perché potrebbe non avere molto senso collegare una tastiera e un modulo LCD con porte logiche dedicate. Ci vorrebbe una buona quantità di porte logiche per raggiungere questo obiettivo e sicuramente molto tempo e impegno per arrivare a un buon risultato. Una volta completato tutto, inizieresti quasi immediatamente a pensare a come far sì che il display mostri una stringa di caratteri e forse anche la capacità di "modificare" la stringa visualizzata. Ora l'implementazione della porta logica diventa l'incubo di un progetto completamente nuovo.

Quindi c'è una ragione per cui tutto il mondo è passato a fare cose del genere con un microcontrollore.Interfacce molto semplici vengono utilizzate per collegare cose come tastiere a matrice e moduli LCD 16x2 alle interfacce GPIO del microcontrollore.Queste semplici interfacce sono facili da costruire e testare per assicurarsi che funzionino.Una volta installato, diventa un semplice lavoro software fornire la connettività logica tra la tastiera e il modulo LCD.E quel software può essere semplice come lo scenario di progettazione originale a cui hai chiesto di prendere un singolo input dalla tastiera e mostrarlo sul display oppure può essere adattato per mostrare quasi tutto sul display ... ad esempio mostrando unconta se quante volte un tasto è stato premuto ... o mostra per quanto tempo un tasto è stato premuto ... o mostra un'intera interfaccia utente che gestisce il tuo dispositivo.

È possibile creare un circuito con porte logiche che sia un computer, se è per questo :-)
@JardelB.sulla rete StackExchange, se una risposta ti ha aiutato di più, _accettala_ facendo clic su un segno di spunta a sinistra di essa.Questo atto ringrazia automaticamente l'autore aggiungendogli una reputazione positiva.
Adam Davis
2018-02-08 22:35:53 UTC
view on stackexchange narkive permalink

Sì. Avrai bisogno di diversi blocchi per farlo funzionare:

  1. Hai bisogno di un blocco guida LCD. L'LCD è progettato per essere scritto in modalità 4 bit o 8 bit, consiglio 8 bit per questa applicazione. Ogni scrittura implica l'inserimento dei dati sul bus e la manipolazione della linea E. Per questo sistema è sufficiente scrivere sul display LCD in modo che le linee RD / WR possano essere cablate in alto o in basso per mettere il display in modalità di scrittura.
  2. È necessario inizializzare il display LCD una volta acceso, il che implica l'invio di una serie di byte. Ciò comporterà una memoria di qualche tipo, che sia una matrice di diodi o una rom. All'accensione un contatore dovrà inviare indirizzi sequenziali alla "memoria" la cui uscita sarà indirizzata al blocco di pilotaggio LCD.
  3. Hai bisogno di un blocco di lettura della tastiera. Ti suggerisco di utilizzare un'interfaccia per tastiera PS2 se desideri utilizzare una tastiera in stile PC, tuttavia puoi creare la tua banca di pulsanti e il sistema di scansione se lo desideri. Se utilizzi PS2 dovrai generare un orologio e leggere dati seriali, quindi convertirli in dati paralleli.
  4. Hai bisogno di un blocco di conversione da tastiera. Questo prenderà il codice della tastiera e lo convertirà in un carattere che il display LCD può visualizzare. Ciò comporterà una memoria simile al blocco di inizializzazione, ma avrai bisogno di almeno una cella di memoria per ogni chiave, che richiede una matrice di diodi molto grande o una ROM. Se sei intelligente, puoi usare una ROM per entrambe le funzioni.

Come altri hanno sottolineato, tutto questo non è banale e richiederà molti chip logici per ogni sezione. Comunque può essere fatto e quando avrai successo avrai completato un progetto molto difficile.

Se espandi la definizione di porte logiche a porte virtuali in un FPGA, non sarebbe difficile.Puoi trovare blocchi HDL predefiniti per ingresso PS / 2 e uscita HD44780, o anche uscita VGA.
Michael Karas
2018-02-08 21:23:55 UTC
view on stackexchange narkive permalink

Vorrei aggiungere un'altra versione di questo. Se vuoi davvero imparare cosa serve da un punto di vista logico per interfacciare una tastiera a un modulo LCD con uno specifico design logico dedicato, allora posso dire una serie di cose ...

  1. È sempre fantastico poter imparare a fare le cose a livello di dadi e bulloni. Le cose apprese in questo modo rimarranno con te per tutta la vita.
  2. Piuttosto che avvicinarsi a questo con l'idea di costruire un mucchio di cavi e porte logiche, guardati intorno su eBay per una scheda di valutazione FPGA usata che ha una tastiera e un modulo LCD su di essa. Questi saranno collegati ai pin FPGA. È quindi possibile apprendere tutto ciò che si desidera sul processo di progettazione logica utilizzando le risorse di progettazione FPGA per creare la funzionalità desiderata.
  3. Scoprirai rapidamente che quasi tutte le persone che utilizzano una scheda di valutazione FPGA del tipo che ho descritto sopra progetteranno il loro sistema per includere un microcontrollore "soft core" nell'FPGA che quindi esegue un algoritmo software per azionare la tastiera e il Interfacce del modulo LCD !!
Adam Eberbach
2018-02-09 09:44:14 UTC
view on stackexchange narkive permalink

Assolutamente, ma ne avresti bisogno moltissimo!

Una risorsa utile potrebbe essere Code di Charles Petzold.Ne parla nella sua intervista qui.

Questo libro inizia esaminando come è possibile trasmettere le informazioni in un singolo bit, poi due bit (cioè uno se via terra, due se via mare), poi di più.Quindi esamina la logica e il modo in cui i gate potrebbero essere implementati con i relè, quindi si sposta su blocchi di costruzione sempre più complessi come infradito e sommatori.Troverai come implementare ritardi, divisori, multiplexer, memoria, praticamente tutto ciò di cui avresti bisogno.Se c'è una risorsa che parte dal nulla e costruisce un intero computer "a mano" probabilmente è proprio questa.

Sean Houlihane
2018-02-09 15:01:24 UTC
view on stackexchange narkive permalink

Sì, è possibile. È un compito abbastanza complesso, anche se lo implementaste in FPGA, probabilmente ci vorrebbero settimane anziché giorni.

Mi chiedo cosa imparerai da un progetto di questa complessità al di sopra della tua esperienza di fare lo stesso con un mcu (o qualcosa di più semplice, o semplicemente interfacciare il mondo con il tuo mcu).

Nel 1986 circa, ho costruito un "simulatore di sollevamento" utilizzando un paio di array di LED 8x8, alcuni chip contatore e una vasta gamma di diodi. Questo mi ha insegnato un po 'sulla progettazione del sistema, la minimizzazione della logica, alcuni concetti di macchine a stati, ma non molto sulla progettazione dei circuiti.

Certo, ha fatto una dimostrazione impressionante (la scuola l'ha tenuta e l'ha portata fuori per mostrarla agli open day), e all'epoca non era così lontana "all'avanguardia".

Facendo la stessa cosa oggi, userei una piattaforma MCU (il micro-bit ha anche la matrice incorporata) e il compito sarebbe il software. Se usassi un FPGA, scriverei più o meno lo stesso software in Verilog. Usare la logica discreta o persino gli array di diodi oggi ti sta insegnando abilità obsolete (sì, ho costruito un amplificatore a valvole a 144 MHz, quindi apprezzo che a volte possa essere pertinente).

La differenza tra il simulatore di ascensore e la scala dei progetti su cui lavoro oggi (100k gate, 5-10 i miei progetti) è in realtà il livello di astrazione. Suddividi il design in blocchi, modella le interazioni e crea la struttura giusta. L'implementazione di basso livello riguarda il riutilizzo di qualcosa che è stato fatto prima. Il design funzionale si basa anche per le sue prestazioni su un complesso decompressore software per ricostruire il flusso di dati che generi.

Se ti limiti a implementare solo in logica, perdi un enorme passaggio inventivo in cui il software può facilmente svolgere il tuo lavoro per te (esempio banale, ordinare un insieme di valori dell'indirizzo di configurazione in ordine crescente per applicare una regola di priorità.Certo, l'hardware può farlo, ma il costo dell'implementazione non è banale e anche inutile: il software che utilizza il mio progetto può farlo gratuitamente.

Una piccola quantità di elaborazione incorporata in un dispositivo ora è quasi gratuita: puoi spesso ridurre i costi di produzione aggiungendo un mcu (e ottenere più funzionalità che possono aggiungere valore reale o meno).



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...