Sommario:
- Forniture
- Passaggio 1: costruirlo
- Passaggio 2: il codice Atari - BASIC
- Passaggio 3: il codice Atari - Assemblea 6502
Video: Cubo LED Atari: 3 passaggi
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-10 13:47
Panoramica
Questa istruzione esamina l'utilizzo della porta joystick Atari 800 per le uscite con un cubo LED come esempio.
introduzione
Hai mai visto uno di quei cubi LED? Sono assolutamente fantastici. Ti sei mai chiesto se il tuo Atari potrebbe fare qualcosa di simile? Anche io.
Forniture
Un Atari a 8 bit - Sto usando un 800 XL
Multiplexer a 16 canali: cerca CD74HC4067 utilizzando il tuo motore di ricerca preferito
Una tonnellata di LED: ho realizzato una matrice 4x4x4 che utilizza 64
fili
resistori
Connettore D femmina a 9 pin x 2
Passaggio 1: costruirlo
Basti dire che costruire queste cose è molto più difficile di quanto sembri (se hai le zampe invece delle dita), e riparare le giunture difettose è come fare un intervento chirurgico al buco della serratura con un saldatore.
Non ho intenzione di dedicare tempo alla costruzione della matrice perché ci sono ragazzi che l'hanno fatto molto meglio. Dai un'occhiata a
www.instructables.com/id/LED-Cube-4x4x4/
o
www.instructables.com/id/8x8x8-RGB-LED-Cub…
multiplexing
Questa è la parte intelligente. Avere 64 LED normalmente significa 64 fili per controllarli, ma l'Atari non ha molti pin che possono essere usati per scrivere.
Entra nel multiplexer!
Il cubo è diviso in 16 colonne e 4 righe. Ogni colonna di LED condivide un ingresso +v dal multiplexer e ogni riga condivide un 0v. Quindi, per accendere un LED, determiniamo in quale colonna si trova, e accendiamo la linea +v, quindi accendiamo la massa appropriata.
Tuttavia, puoi accendere solo un LED alla volta. Se ne provi due o più, si accenderanno anche altri LED.
Tieni presente che il tuo multiplexer potrebbe avere connessioni diverse dal mio! Controlla prima le tue istruzioni.
Passaggio 2: il codice Atari - BASIC
Oltre al normale funzionamento, le porte del joystick possono anche scrivere. C'è un piccolo trucco per farlo funzionare;
1) Poke porta A controlla $ D302 con $ 38
2) Poke porta A $D300 con $FF
3) Poke porta A controlla $D302 con $ 3C. Questo attiva il bit 2 permettendoci di scrivere sulla porta.
C'è un po' di più sull'uso delle porte del joystick come interfaccia qui
www.atariarchives.org/creativeatari/Interf…
La porta A è strutturata in modo che i bit da 0 a 3 si occupino dello stick 0 e i bit da 4 a 7 si occupino dello stick 1. Inserendo i bit da 0 a 3 con 1 a 15 possiamo controllare il multiplexer e accendere una colonna di LED. Se poi attiviamo i bit da 4 a 7, possiamo controllare una riga. Nel punto in cui la colonna e la riga coincidono, si accende un LED.
Non è necessario attivare singole righe; combinando i bit da 4 a 7, saranno attive due o più righe. Fai solo attenzione che anche altri LED che non vuoi accendere potrebbero accendersi.
5 LIMITE=60
10 PORTE=54016
20 PCTL=54018
30 POKE PCTL, 56
40 PORTA POKE, 255
50 POKE PCTL, 60
60 I=RND(1)*239+16
70 POKE PORT, I
75 FOR WAIT=0 PER LIMITARE:PROSSIMA ATTESA
90 VAI A 60
Non sta succedendo niente qui; il codice imposta la porta A per la scrittura quindi accende un LED a caso. L'effetto è un po' come quello di un computer di un banale spettacolo di fantascienza dei primi anni '80.
Passaggio 3: il codice Atari - Assemblea 6502
La base va bene per accendere un LED alla volta, ma le cose fantasiose accadono quando inizi ad accenderli e spegnerli rapidamente, il che dà l'illusione che più LED siano accesi contemporaneamente. L'effetto è chiamato persistenza della visione e si basa sulla commutazione dei LED più veloce di quanto l'occhio sia in grado di rilevare. La base è troppo lenta, quindi è tempo di assemblaggio.
Questo codice accende i LED angolari
10 *=$6000
20 PORTE = 54016
30 PCTL = 54018
70 LDA #56
80 STA PCTL
90 LDA #$FF
100 STA PORTO
110 LDA #60
120 STA PCTL
130 LDY #0
140 PRINCIPALE
150 CLC
160 LDA SEQ, Sì
170 STA PORTO
180 INY
190 CPY #8
200 BNE PRINCIPALI
210 LDY #0
220 JMP PRINCIPALE
310 SEQ
320. BYTE 16, 18, 24, 26
330. BYTE 64, 66, 72, 74
Ci sono alcuni file "sperimentali" nell'allegato Leds.atr.
Godere