The Bubble LED Display Module allows up to two HP 5082-7400 series 7 segments LED displays to be controlled from the RC2014. It should also work with the newer HP QDSP-6064 displays, although so far these have not been tested.
This module is based on the Digital I/O Module, and shares many similarities. A 74HCT138 3-8 decoder uses address lines A0-A7 along with M1, !WR and !IORQ to select the flip-flop driving either the digits or the segments. With the default configuration, A0 and A2-A7 need to be low, and A1 is used to select digits if low or segments if high. ie Port 0 = digits and Port 1 = segments.
U2 is a 74HCT374 flip-flop which connects to a ULN2803 Darlington array that is used to sink current from each of the common cathodes on the displays. Whatever is on the databus when Port 0 is selected goes through the ‘374 and has the inverted output on the Darlington array. Eg OUT 0,8 will result in an output from the Darlington array of 0x11110111, which means that the common cathode from the 3rd digit is currently sinking current so will be enabled. The leftmost digit is 1 and the rightmost digit is 128
U3 is another HCT374 flip-flop, and this connects via current limiting resistors to the 7 segments and decimal point of the display. The segments a-g and dp of the enabled digit are lit up by the data on the databus when a write to Port 2 happens. So an OUT 2,91 will put 0x01011011 on the bus, which corresponds to segments abdeg, or the numeral 2
The HP Bubble LED Displays
The HP 5082-7400 series came out in the late 70s and were one of the earliest 7 segment LED displays. Each digit is on its own die and is tiny, so the bubble shape acts as a magnifying glass to make them more readable.
Although this module is designed around the 5082-7414 which is a 4 digit display, it will also work with the 5082-7412 and 5082-7413, which both have 3 active digits in a 4 digit case (aligned to the right and left respectively). These other models will work exactly the same, although obviously nothing will display if the nonexistent digit is selected. There is also a 5082-7415 which is a 5 digit display, but this will not work with this module.
The HP QDSP-6064 is a later model which looks very similar to the 5082-7414 and the pinout is the same too, so this should work, although at the moment this hasn’t been tested.
Driving the display is pretty straightforward, requiring just 2 OUT statements per digit. The following BASIC program will display ” rc2014 “;
10 OUT 0,1:OUT 2,0:GOSUB 1000 20 OUT 0,2:OUT 2,49:GOSUB 1000 30 OUT 0,4:OUT 2,57:GOSUB 1000 40 OUT 0,8:OUT 2,91:GOSUB 1000 50 OUT 0,16:OUT 2,63:GOSUB 1000 60 OUT 0,32:OUT 2,6:GOSUB 1000 70 OUT 0,64:OUT 2,102:GOSUB 1000 80 OUT 0,128:OUT 2,0:GOSUB 1000 90 GOTO 200 1000 FOR Z=1 TO 5:NEXT Z: OUT 2,0:RETURN
The first OUT 0,x statements on each line selects the digit to use, going from left to right. The second OUT 2,x statement is the segments to be lit on the selected digit. So, for example, line 50 first sends an OUT 0,16 which is the fifth digit from the left. Then OUT 0,63 puts 63 (0x00111111) on the data bus. This corresponds to segments a,b,c,d,e,f which represents the digit “0”. Then the GOSUB jumps to a small FOR/NEXT loop which keeps that digit on the display for a moment before clearing it and returning.
Note that although the digits each have to be activated for a moment, there is no specific need to do them in that order. Also, you do not need to activate digits you are not using (so line 10 and 80 are redundant in this example). It is possible to drive more than one digit at a time if they are displaying the same data. eg OUT 0,5: OUT 2,63 will display a “0” on digit 1 and 4
Sheila Dixon has written some more advanced software in BASIC, FORTH and Z80 ASM, including a Bubble Display Toolbox, which can be found on GitHub https://github.com/RC2014Z80/Bubble-display-toolbox
Bill of materials
1 RC2014 Bubble LED PCB
1 40 pin RA header
2 20 pin narrow DIL socket
1 18 pin narrow DIL socket
1 16 pin narrow DIL socket
1 24 pin narrow DIL socket
2 HP 7414 Display
1 10k resistor
8 330R resistor