Vzdušný display ovládaný pamäťou RAM

21.03.2014 21:52

Keď som sa tak pekne začal hrať s pamäťou RAM tak ma napadlo že by sa pomocou nej dal postaviť blikač, ktorý má 8 LEDiek a každá svieti len v presne určenom okamihu a vďaka zotrvačnosti zraku takto vzniká dojem, že text alebo iné znaky sú vykresľované vo vzduchu. 

Teraz k praktickému zapojeniu... 
Ako už bolo povedané, tento blikač/display je ovládaný RAMkou a to presne A625308 ( 32k/8bit ). Samozrejme ešte to potrebuje nejakú tú elektroniku pre ovládanie ako generátory impulzov (555), posuvný 8bit register... 

Pamäť RAM A625308 predstavuje akúsi tabuľku širokú 8 stĺpcov (bitov) s 32768 riadkami. Do tejto tabuľky sa dá zapisovať buď logická 1 (5V) alebo log. 0 (0V). Riadok (Adresa) tabuľky ktorý chceme čítať alebo doň zapisovať sa volí kombináciou hodnôt na adresných vstupoch A0 až A14 (dokopy 15--> 2^15= 32 768 kobminacii). Zadávanie adresy zaobstaráva čítač 4040, ktorý počíta vstupné impulzy, ktoré prichádzaju z oscilátora IO4 555 alebo ručne z IO7 pomocou tlačítka. Na vstupe IO2 je malý piezomenič aby som vedel či čítač dostáva impulzy... v praxi sa to veľmi osvedčilo, takisto ako čítač, ktorý počíta impulzy a zobrazuje ich číslom, s dátami sa potom lahšie pracuje.
 

Blikač som programoval nasledovne... Po zapnutí som vývod CE uzemnil a tým "aktivoval" RAM. Ak by som uzemnil aj OE ( povoľuje výstup) tak by som videl na výstupe náhodné dáta kde svietiaca LED predstavuje 1 a zhasnutá 0. Najprv som zmazal pamäť tak že som uzemnil CE aj WE (zápis). Ak je vstup WE uzemnený tak sa do pamäte zapíšu hodnoty ktoré sú prítomné na Q0 až Q7. Aby som nemusel používať tlačítka pre zadávanie každého bitu zvlášť, tak som použil posuvný 8bitový register 164, ktorý načíta jednu hodnotu po druhej (pomocou IO6 a DATA IN) a potom sa všetky dáta dajú naraz zapísať na zvolenú adresu. Ale takto som zmazal len bity na jednej adrese. Ak chcem zmazať celú pamäť tak je potrebné spustiť oscilátor. Pokým sa zmaže celá RAM tak to chvílu trvá.. :D Pri frekvencii asi 800Hz to trvalo približne 40 sekund. Aby čítač nečítal stále dookola tak som mu zaradil poistku (T2 a R35), ktorá sníma či daný vstup (Q3 IO3 - pomyselný Q15) dosiahol logickú 1 a ak áno tak uzemní vstup clk a čítač prestane čítať, rozsvieti sa LED10 a zvuk v piezo ustane.

 

RAM je zmazaná a teraz nastupuje akési "programovanie" alebo zápis dát tlačítkami. Postupoval som tak, že som zresetoval čítače 4040 krátkym stlačením spínača "RESET". Vstupy RAM som nastavil CE-0 WE-1 OE-1. Pripravil som si na papieri ako majú vyzerať zapisované hodnoty aby som dostal požadovaný text. Je to veľmi jednoduché, na každú adresu sa zapíšu hodnoty, ktoré zobrazujú jednotlivé body znaku po stĺpcoch. Ja som využil len 5 LED ale daju sa využiť samozrejme všetky. Pre zapísanie "WTF" som použil 20 bytov pričom 3 bity z každého sú nevyužité. 

 

Znaky sa musia opakovať a aby som nemusel čakať pokým čítač prečíta všetkých 32768 impulzov tak som vyrobil automatický reset ak dosiahne 32 impulzov (výstup Q5 je vtedy 1, tranzistor T1 sa zopne a zresetuje čítač... program beží odznova stále dookola a ja pri pohybe výstupných LED diód vidím zapísané dáta v podobe textu, ktorý visí vo vzduchu :D .
Moje chaotické vysvetľovanie je naprd. ale kto sa tým zaoberá tak to pochopí... 

klikni pre väčši obrázok

dáta pre "WTF" .. ked si to otočíte o 90° tak niečo uvidíte :D