The next phase; working towards a (test) diagram:

I decided to take a 74HC138 for scanning the Rows of the dotmatrix display, and using 74HC595's for the Columns (16 displays x 5 Columns = 80 Columns totall -> 80 bits per Row / 1 byte -> ten 74HC595's are needed) The 74HC138 is a 3-to-8 line decoder/demultiplexer, with only 3 wires (A0, A1 and A2) you can set one output (Y0-Y7) low at a time, this is why I took this particular IC, you can only activate one Row at a time. Connect the 74HC138 to an AVR microcontroller type AT90S2313, like this:
Connecting the 74HC138
Only 3 wires are needed (saves 5 i/o's of the AVR)

Don't connect the opposite way the bits are, else the software will be more complicated (connect bitwise; msb <- lsb) The 74HC138 is normally enabled (E1, E2 to GND, E3 to Vcc) now, see function table in the datasheet. Now you can let the AVR switch the 3 address lines A0, A1, A2. The software can be setup like this:

.equ A0 = 0 ;address A0 to PB0
.equ A1 = 1 ;address A1 to PB1
.equ A2 = 2 ;address A2 to PB2


sbi DDRB, A0 ;output PB0
sbi DDRB, A1 ;output PB1
sbi DDRB, A2 ;output PB2

cbi PORTB, A0 ;A0 low
cbi PORTB, A1 ;A1 low
cbi PORTB, A1 ;A2 low

This part assembly (one possibility), let address Y0 of the 74HC138 become low (active), the other 7 address lines (Y1 to Y7) are in high state (+Vcc) Connect the address lines to the Rows of an Anode type (Common Anodes) LED dotmatrix display. The Columns are connected to a 74HC595 (making a bit 'hi' switches a dot On, bit 'lo' switches it Off), this way you can make an ASCII table (like the one of an
SLO2016)

Testing the 74HC138
The 74HC138 under test.


Now make a 3 bits counter, start at 000, after 7 times, or when the counter reaches 7, let it reset. In between each count, insert new data for the columns. If you use the bits 3 4 and 5 i.e., first read the port, than add the new value and restore the port, else you will set the other bits (i/o's) to zero. On the next page a simplified diagram with 8 dotmatrix displays, which will be used for software debugging, here using a 74HC259 (inversing polarity)

[back to top]