Innholdsfortegnelse:

Atari LED Cube: 3 trinn
Atari LED Cube: 3 trinn

Video: Atari LED Cube: 3 trinn

Video: Atari LED Cube: 3 trinn
Video: Data Frog Y3 Lite (GAMESTICK) | ОБЗОР, КОТОРЫЙ ЖДАЛИ! 🔥🎮 2024, Juli
Anonim
Atari LED Cube
Atari LED Cube

Oversikt

Denne instruksen ser på bruk av Atari 800 joystick -porten for utganger med en LED -kube som et eksempel.

Introduksjon

Har du noen gang sett en av disse LED -kuber? De er helt kule. Har du noen gang lurt på om Atari kan gjøre noe lignende? Jeg også.

Rekvisita

En 8 bit Atari - jeg bruker en 800 XL

16 kanals multiplexer - søk etter CD74HC4067 med din favoritt søkemotor

Massevis av lysdioder - jeg laget en 4x4x4 -matrise som bruker 64

Ledninger

Motstander

Kvinne 9 -pins D -kontakt x 2

Trinn 1: Bygg den

Bygge den
Bygge den
Bygge den
Bygge den
Bygge den
Bygge den

Det er nok å si at å bygge disse tingene er mye vanskeligere enn det ser ut (hvis du har poter i stedet for fingre), og å fikse dårlige ledd er som å gjøre nøkkelhullsoperasjon med et loddejern.

Jeg kommer ikke til å bruke noe tid på konstruksjonen av matrisen, da det er gutter som har gjort det så mye bedre. Se på

www.instructables.com/id/LED-Cube-4x4x4/

eller

www.instructables.com/id/8x8x8-RGB-LED-Cub…

Multiplexing

Dette er den smarte biten. Å ha 64 lysdioder betyr vanligvis 64 ledninger for å kontrollere dem, men Atari har ikke så mange pinner som kan brukes til å skrive.

Skriv inn multiplexeren!

Kuben er delt inn i 16 kolonner og 4 rader. Hver kolonne med lysdioder deler a +v -inngang fra multiplexeren, og hver rad deler en 0v. Så for å slå på en LED, regner vi ut hvilken kolonne den er i, og slår på +v -linjen, og slår deretter på den riktige bakken.

Du kan imidlertid bare tenne en LED om gangen. Hvis du prøver to eller flere, tennes også andre lysdioder.

Vær oppmerksom på at multiplexeren din kan ha forskjellige tilkoblinger til min! Sjekk instruksjonene dine først.

Trinn 2: Atari -koden - BASIC

Image
Image
Atari -koden - 6502 forsamling
Atari -koden - 6502 forsamling

I tillegg til normal drift kan joystick -porter også skrive. Det er litt triks for å få det til å fungere;

1) Poke port A kontroll $ D302 med $ 38

2) Poke port A $ D300 med $ FF

3) Poke port A kontroll $ D302 med $ 3C. Dette slår på bit 2 slik at vi kan skrive til porten.

Det er litt mer om hvordan du bruker joystick -portene som grensesnitt her

www.atariarchives.org/creativeatari/Interf…

Port A er strukturert slik at bitene 0 til 3 tar vare på pinne 0, og bitene 4 til 7 omhandler pinne 1. Ved å stikke bitene 0 til 3 med 1 til 15 kan vi styre multiplexeren og slå på en kolonne med LED. Hvis vi deretter slår på bit 4 til 7, kan vi kontrollere en rad. Der kolonnen og raden sammenfaller, tennes en LED.

Du trenger ikke slå på individuelle rader; ved å kombinere bits 4 til 7, vil to eller flere rader være på. Bare vær oppmerksom på at andre lysdioder du ikke vil slå på, også kan lyse.

5 LIMIT = 60

10 PORT = 54016

20 PCTL = 54018

30 POKE PCTL, 56

40 POKE PORT, 255

50 POKE PCTL, 60

60 I = RND (1)*239+16

70 POKE PORT, I

75 FOR VENTE = 0 TIL GRENS: NESTE VENT

90 GOTO 60

Ingenting blits skjer her; koden angir port A for skriving og slår deretter på en LED tilfeldig. Effekten er litt som en datamaskin fra et osteaktig sci-fi-show fra begynnelsen av 80-tallet.

Trinn 3: Atari -koden - 6502 -forsamlingen

Image
Image

Basic er greit for å slå på én LED om gangen, men de fancy tingene skjer når du begynner å slå dem av raskt, noe som gir en illusjon om at flere lysdioder er på samtidig. Effekten kalles persistens of vision og er avhengig av at lysdiodene bytter raskere enn øyet er i stand til å oppdage. Basic er bare for tregt, så det er monteringstid.

Denne koden slår på hjørnelysene

10 *=$6000

20 PORT = 54016

30 PCTL = 54018

70 LDA #56

80 STA PCTL

90 LDA #$ FF

100 STA PORT

110 LDA #60

120 STA PCTL

130 LDY #0

140 HOVED

150 CLC

160 LDA SEQ, Y

170 STA PORT

180 INY

190 CPY #8

200 BNE HOVED

210 LDY #0

220 JMP HOVED

310 SEKV

320. BYTE 16, 18, 24, 26

330. BYTE 64, 66, 72, 74

Det er noen "eksperimentelle" filer i Leds.atr -vedlegget.

Nyt

Anbefalt: