SBC6502 LED board:

Ak testujeme napríklad porty na 8255-ke, ako sa to najlepšie sleduje ? Samozrejme opticky. Tak som si postavil rýchlovku - dosku, ktorá je pripojená na port "A" nášho čipu 8255 a zobrazuje takto - log.1 = rozsvietená LED. Ako vždy nič nie je zadarmo a tak som musel pridať ešte jeden konektor - J4, kde som si vyviedol potrebné prívody na túto doštičku. Pretože som použil supersvietivý typ LED vlastná doska má odber pri rozsvietení všetkých 8 LED odber zväčšený iba o smiešnych 12.5mA. Pri normálnom používaní je možné prepínačom LED-ky vypnúť bez toho, aby bolo potrebné túto doštičku zo základnej dosky SBC6502 vyberať. A na demonštračné účely je takáto doštička ako stvorená.

Ešte si pripomenieme rozmiestnenie jednotlivých konektorov.

A pohľad na celú dosku SBC6502 "Erika0".
Nasleduje vlastná schéma:

Pre demonštračné účely je zapojený len jeden port a to port A.
Samozrejme ak to zopakujeme ešte 2x tak vieme ovládať spolu 24 LED, čo je už celkom slušné na LEDkovú show. Je možné namiesto tranzistorov použiť aj tranzistorové pole ULN2003, len je dobré na vstupe nechať na bázach tranzistorov uvedené 10k odpory. ULN2003 má v sebe na vstupe odpory 2k2, čo je dosť málo a mohlo by prísť k preťaženiu výstupov čipu 8255 - a tomu by sme sa radi vyhli.
Poďme si teda tú malú demonštračnú LED dosku postaviť na malej univerzálke:

Zoberieme malú univerzálnu dosku,
umiestnime na ňu konektor,
ktorý "napasujeme" na konektor J4.

8x LED, 8x bázové odpory, 8x kolektorové odpory,
8x tranzistor BC546 a 1x vypínač

Pohľad na LED doštičku.

Zväčšil som to, pohľad na univerzálnu doštičku zo spodnej strany,
takto to vyzerá "zadrátované".

Osadená LED doska na motherboarde SBC6502 "Erika0".
Pretože som to chcel otestovať tak sú tu 2 Basicové programy
(ktoré som napísal, pozor adresy čipu 8255 sú napísané pre SBC6502 s verziou 32kB RAM):
4 REM (c)2016 Igi, SBC6502 Erika0
5 PRINT CHR$(12): PRINT:PRINT: PRINT "KNIGHT RIDER"
6 PRINT "Speed range 50-400"
7 PRINT "NUMBER:";:INPUT Q
8 IF Q>400 THEN GOTO 6
9 IF Q<50 THEN GOTO 6
10 POKE 32771,128
20 POKE 32768,0:GOSUB 1000
22 PRINT "BREAK = CTRL+C"
25 REM
30 POKE 32768,1:GOSUB 1000
40 POKE 32768,2:GOSUB 1000
50 POKE 32768,4:GOSUB 1000
60 POKE 32768,8:GOSUB 1000
70 POKE 32768,16:GOSUB 1000
80 POKE 32768,32:GOSUB 1000
90 POKE 32768,64:GOSUB 1000
100 POKE 32768,128:GOSUB 1000
110 POKE 32768,64:GOSUB 1000
120 POKE 32768,32:GOSUB 1000
130 POKE 32768,16:GOSUB 1000
140 POKE 32768,8:GOSUB 1000
150 POKE 32768,4:GOSUB 1000
160 POKE 32768,2:GOSUB 1000
990 GOTO 25
999 END
1000 FOR F=0 TO Q:NEXT F:RETURN
____________________________________________________________
Nasleduje druhý program - rozšírené LED DEMO (7 efektov):
1 REM LED show
4 REM (c)2016 Igi, SBC6502 Erika0
5 Q=200:W=32768:A=0
10 POKE 32771,128
20 POKE W,0:GOSUB 1000
22 PRINT CHR$(12);"1 - KNIGHT RIDER"
25 REM
30 POKE W,1:GOSUB 1000:POKE W,2:GOSUB 1000
50 POKE W,4:GOSUB 1000:POKE W,8:GOSUB 1000
70 POKE W,16:GOSUB 1000:POKE W,32:GOSUB 1000
90 POKE W,64:GOSUB 1000:POKE W,128:GOSUB 1000
110 POKE W,64:GOSUB 1000:POKE W,32:GOSUB 1000
130 POKE W,16:GOSUB 1000:POKE W,8:GOSUB 1000
150 POKE W,4:GOSUB 1000:POKE W,2:GOSUB 1000
170 A=A+1:IF A=5 THEN Q=77
180 IF A=20 THEN Q=45
182 IF A=40 THEN Q=30
185 IF A=60 GOTO 200
190 GOTO 25
200 Q=2000:POKE W,0:GOSUB 1000:Q=200
201 A=0
202 PRINT "2 - The middle"
205 POKE W,0:GOSUB 1000
210 POKE W,129:GOSUB 1000:POKE W,195:GOSUB 1000
220 POKE W,228:GOSUB 1000:POKE W,255:GOSUB 1000
230 A=A+1:IF A=17 GOTO 300
235 GOTO 205
300 A=0:Q=200
302 PRINT "3 - Double LED Knight rider"
305 POKE W,0:GOSUB 1000
310 POKE W,24:GOSUB 1000:POKE W,36:GOSUB 1000
320 POKE W,66:GOSUB 1000:POKE W,129:GOSUB 1000
335 POKE W,129:GOSUB 1000:POKE W,66:GOSUB 1000
345 POKE W,36:GOSUB 1000:POKE W,24:GOSUB 1000
360 A=A+1:IF A=20 THEN Q=150
362 IF A=20 THEN Q=100
365 IF A=40 THEN Q=55
366 IF A=60 GOTO 400
370 GOTO 310
400 A=0:Q=40
402 PRINT "4 - Binary counter up, down"
405 A=A+1:POKE W,0:GOSUB 1000:Q=40
420 FOR R=0 TO 255
430 POKE W,R:GOSUB 1000
450 NEXT R
452 POKE W,0:GOSUB 1000:Q=40
455 FOR R=255 TO 0 STEP -1
456 POKE W,R:GOSUB 1000
457 NEXT R
460 IF A=2 GOTO 500
470 GOTO 405
500 A=0:Q=130:POKE W,0:GOSUB 1000
501 POKE W,255:GOSUB 1000
502 PRINT "5 - Negative Knight rider"
505 REM
510 POKE W,254:GOSUB 1000:POKE W,253:GOSUB 1000
530 POKE W,251:GOSUB 1000:POKE W,247:GOSUB 1000
550 POKE W,239:GOSUB 1000:POKE W,223:GOSUB 1000
570 POKE W,191:GOSUB 1000:POKE W,127:GOSUB 1000
590 POKE W,191:GOSUB 1000:POKE W,223:GOSUB 1000
610 POKE W,239:GOSUB 1000:POKE W,247:GOSUB 1000
630 POKE W,251:GOSUB 1000:POKE W,253:GOSUB 1000
645 POKE W,254:GOSUB 1000
650 A=A+1:IF A=10 THEN Q=80
651 IF A=20 THEN Q=60
652 IF A=40 THEN Q=30
655 IF A=60 GOTO 700
670 GOTO 505
700 A=0:Q=200
702 PRINT "6 - Full LED on off"
710 POKE W,0:GOSUB 1000:POKE W,255:GOSUB 1000
720 A=A+1
730 IF A=13 THEN GOTO 800
750 GOTO 710
800 A=0:Q=300:GOSUB 1000
802 PRINT "7 - Middle LED effect"
810 POKE W,129:GOSUB 1000:POKE W,195:GOSUB 1000
820 POKE W,231:GOSUB 1000:POKE W,255:GOSUB 1000
830 POKE W,195:GOSUB 1000:POKE W,231:GOSUB 1000
850 POKE W,255:GOSUB 1000:POKE W,231:GOSUB 1000
860 POKE W,195:GOSUB 1000:POKE W,129:GOSUB 1000
870 A=A+1: IF A=20 THEN GOTO 5
880 GOTO 830
990 END
1000 FOR T=0 TO Q:NEXT T:RETURN
___________________________________________________________
Vytvorenie a použitie rozličných efektov z LED doskou je na Vás. Zase pripomínam, že ak si urobíte zapojenie na všetky porty - t.j. A, B a C tak môžete ovládať celkom 24 LED, čo je už celkom slušná "šnúra" svetiel.
Na dnes je to všetko. (Keď chcete vidieť ako funguje demonštračná LED doska, pozrite si 6.pokračovanie, sú tam dve videá, kde je už zapojená aj LED board.)
___________________________________________________________
Návrat do všetkých pokračovaní o SBC6502:
/igi/post/SBC6502-0-UvodIntroduction.aspx
____________________________________________________________
Vaše hodnotenie, Rate post: