I have a temperature circuit that uses a common anode seven segment four digit temperature display.
It uses a PIC12F1572 to read the temperature from a one wire device and shift the numerical bits to a TLC5917 LED driver (shift register) to display the 0-9 on each of the four digits. This chip sinks each of the LED segments so the cathode is connected to each of the ports.
Daisy-chained off the TLC5917 is 74HC595 shift register. Its job is to control which digit is lit during the multiplex process. I only use 4 ports for the four digits which connects the common anodes of the display. While this works I am concerned that I am drawing too much current from the 74HC5959 so I added transistors to turn the digits on and off.
Here is my question / confusion:
I had to use a 3904 NPN with the emitter connected to ground and the collector connected to the anode of the appropriate digit. This is not how I learned to use BJTs, and it seems wrong. Am I missing something, did I make a mistake or is the correct? Whatever the response is, why?
This circuit works as desired and is exactly what I wanted to achieve.
I have also attached a schematic to better illustrate the circuit.
Images of each section for better visibility. Feedback is welcome, thank you.







