| Introduction: With this rotary-encoder you are able to control the SLO2016 completely, you can also use 3 push-buttons, but it's easier to turn a knob and scroll through the characters of the display. Suppose you want to make a tiny scroller of this display, you can do it like this: Select a character on the first display, then push and store, then let it jump to the second display, and select a character again, etc. at the 4th display, you have to let scroll the displays one position to the left after store, so that you can make complete words, when finished push e.g. twices with in 1 sec. and now it start to scroll. You can do many tricks with this tiny display! |

|
1 WR Write 2 A1 Digit Select 3 A0 Digit Select 4 Vcc 5 D0 Data 6 D1 Data 7 D2 Data 8 D3 Data 9 D4 Data 10 D5 Data 11 D6 Data 12 BL Display Blank 13 CLR Clear 14 GND |
| How to program the AVR: Set the inputs and outputs e.g. like this: ser temp out DDRB, temp clr temp out PORTB, temp ldi temp, 0b11111000 out DDRD, temp ldi temp, 0b00000111 out PORTD, temp Only PD0, 1 and 2 are inputs with internal pull-ups on, rest are outputs. The switch sequence of the encoder goes as follows: AB: 00 10 11 01 00 -> CW AB: 00 01 11 10 00 -> CCW Remember this encoder has detend positions, that are the positions with the values 00 and 11. The direction depends on the sequence as shown, so from 00 to 11 with 10 passed means a clockwise turn. Don't forget the bouncing of the contacts (approx. 2 msec for this encoder), you can use a nice delayloop program called AVRdelayloop, simply fill in 0.002 sec, and you have your debounce delay routine. The display works as follows; First choose the digit you want e.g. digit-3, this means you must set the addresses A0 and A1 hi (see datasheet), now select a character by setting the right code to PORTB, I did it like this: 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 As you can see I took character 'A', by setting the right bits (0b01000001) see code table. Here an example (upcounter 0 - 99) Have fun ! ![]() |



|
1x AT90S2313 1x 4 MHz resonator 2x SLO2016 1x 7805 2x 47uF/16V 2x 100n multilayer 1x 10k 1x 100n MKH |
| Connecting two SLO2016's: The next diagram shows how to connect two SLO2016 displays to an AT90S2313 microcontroller. With this setup you can show many parameters, like a data display (byte, binairy), frequencies (MHz, kHz), audio volume (dB), or you can use it i.e. as a MIDI analizer, endless possibilities. Connect all pins together except the WR (write) pins, connect those independent. The sequence of writing of the characters goes as follows: First activate digit0 (lsd, works out the same way works as a databyte), make WRB (righthand display) lo, set the right data on the data pins (D0-D6), make WRB hi, now one digit is stores in the RAM buffer of the righthand display. Continue this sequence four times, now switch to display A (use WRA), when all eight digits written make BL hi, now the characters will be displayed. Here a part of ASM code: cbi PORTD, A1 ;activate digit0 cbi PORTD, A0 cbi PORTD, WRB ;WRB must be lo ldi data, 'z' ;character = z out PORTB, data ;set data on portb sbi PORTD, WRB ;write goes hi |