| Mogelijkheden: Met deze kleine draai-encoder en een AVR kun je een SLO2016 display geheel besturen, je kunt ook 3 drukknopjes gebruiken, maar via een draaiknop door de karakterset lopen werkt het een stuk handiger. Veronderstel je wilt een klein loopkrantje maken aan de hand van dit display, dat kun je bijv. zo doen: Selekteer een karakter op het eerste segment, druk vervolgens op de as en sla dit karakter op, laat em dan naar het tweede segment springen, en selekteer opnieuw, enz. bij het laatste segment moet je ervoor zorgen dat de 4 ingegeven karakters een plek naar links opschuiven, zodat je hele woorden/zinnen kan vormen. Als je klaar bent druk je bijv. 2 maal binnen 1 seconde en zal het woord/zin gaan voorbij lopen. Je kan een heleboel dingen uithalen aan de hand van dit schema. |

|
1 WR Schrijven 2 A1 Segment Selektie 3 A0 Segment Selektie 4 Vcc + Voeding 5 D0 Data 6 D1 Data 7 D2 Data 8 D3 Data 9 D4 Data 10 D5 Data 11 D6 Data 12 BL Display Doven 13 CLR Wissen 14 Massa |
| Hoe programmeer je de AVR: Stel de in- en uitgangen op deze manier in: ser temp out DDRB, temp clr temp out PORTB, temp ldi temp, 0b11111000 out DDRD, temp ldi temp, 0b00000111 out PORTD, temp Alleen PD0, 1 en 2 worden ingangen, met de interne pull-up-weerstanden aan, de rest zijn allen uitgangen. De schakel volgorde van de draai-encoder gaat als volgt: AB: 00 10 11 01 00 -> Rechtsom AB: 00 01 11 10 00 -> Linksom Onthoud dat deze encoder vaste standen heeft, dat zijn de posities met de waarden 00 en 11. De draairichting is ahankelijk van de volgorde, van 00 naar 11 met de waarde 10 passerend betekend rechtsom draaien. Vergeet niet de dender van de kontakten (ongeveer 2 msec), je kan dit handige programmaatje genaamd AVRdelayloop gebruiken, vul simpelweg 0.002 in en je hebt je kontaktdender vertragingsroutine. De display werkt als volgt; Kies eerst het segment waarop je data wilt afbeelden bijv. 3de cijfer, dit betekend dat je de twee adressen A0 en A1 op 1 moet zetten (zie datasheet), selekteer nu een karakter d.m.v. de juiste hex-code op PORTB te zetten, ik heb het zo gedaan: ser temp out DDRB, temp ldi temp, 0b11111000 out DDRD, temp sbi PORTD, A0 sbi PORTD, A1 ldi temp, 0b01000001 out PORTB, temp sbi PORTD, CLR cbi PORTD, WR sbi PORTB, BL Zoals je kunt zien nam ik de 'A', door dejuiste bit's aan te bieden (0b01000001) zie code tabel. Hier een voorbeeldje (opteller 0 - 99) Veel suc6! ![]() |



|
1x AT90S2313 1x 4 MHz resonator 2x SLO2016 1x 7805 2x 47uF/16V 2x 100n multilayer 1x 10k 1x 100n MKH |
| Besturen van twee SLO2016's: Het volgende schema laat zien hoe twee SLO2016 displays kunnen worden aangesloten op een AT90S2313. Aan de hand van dit schema kan je vele grootheden weergeven, zoals bijv. binaire data (bytes), frekwenties (MHz, kHz), audio (volume in dB), of je kan het gebruiken als bijv. een MIDI parameter weergever (sysex), vele mogelijkheden. Verbind alle pinnen door volgens schema (WR pinnen onafhankelijk) De schakelvolgorde om de karakters in de RAM buffers op te slaan gaat als volgt: Aktiveer eerst digit0 (lsd, op dezelfde manier als een byte werkt), maak WRB (rechter display) laag, zet de data op de data pinnen (D0 t/m D6), maak vervolgens WRB hoog, nu is een digit opgeslagen. Vervolg dit vier maal, schakel dan over naar display A (gebruik WRA), als alle acht digits zijn weggeschreven maak je BL (blanking) hoog, nu zullen de opgeslagen karakters worden weergegeven. Hier en klein stukje ASM code: cbi PORTD, A1 ;aktiveer digit0 cbi PORTD, A0 cbi PORTD, WRB ;WRB moet laag zijn ldi data, 'z' ;karakter = z out PORTB, data ;zet data op poort b sbi PORTD, WRB ;WRB omhoog sbi PORTB, BL ;schakel digits aan |