Die beiden Schaltpläne sind zwei Versionen der Anzeige, die gemeinsame Kathode oben und die gemeinsame Anode unten. Ich gehe davon aus, dass Sie die übliche Kathodenversion haben.
Sie verbinden die Segmente A..G, DP über 8 Vorwiderstände mit 8 E / A-Pins des Mikrocontrollers. Wenn Sie einen Pin hoch drücken, leuchtet diese LED auf der ausgewählten Ziffer. Um eine der 4 Stellen auszuwählen, stellen Sie die entsprechende gemeinsame Kathode über einen NPN-Transistor auf Low, den Sie wiederum über einen Widerstand von einem E / A-Pin ansteuern.
Wenn Ihre Versorgungsspannung 5 V beträgt und Sie rote LEDs verwenden, können Sie 150 Ω-Widerstände anstelle von 330 verwenden. Verringern Sie auch die Basiswiderstandswerte des Transistors auf 2,2 kΩ und verwenden Sie beispielsweise BC337 s für die Transistoren.
Um die vollständige Anzeige anzusteuern, setzen Sie zuerst Pin 12 auf Low, indem Sie den Transistor mit einem hohen Pegel ansteuern, und stellen Sie die E / A für die Segmente dieser Ziffer ein. Einige Zeit später schalten Sie Pin 12 und die Segmente aus und 9 ein und erneut die Segmente für die zweite Ziffer. Und so weiter. Wenn Sie in weniger als 2,5 ms von einer Ziffer zur nächsten wechseln, wechselt die gesamte Anzeige mit 10 ms oder 100 Hz, was ausreicht, um ein merkliches Flackern zu vermeiden.
Sie können den Maxim-Treiber wie den MAX7219 verwenden , aber es ist Damn Expensive ™: 12,80 Dollar in 1s bei Digikey. Das Gute daran ist, dass es sich um das Multiplexing für Sie kümmert, sodass Sie es nur mit den Segmentdaten für die 4 Ziffern laden müssen. Es hat auch Software-Helligkeitsregelung.
Ich habe das PIC16F690-Datenblatt überprüft und im Gegensatz zu anderen Mikrocontrollern scheinen die E / A nicht in der Lage zu sein, 20 mA zu liefern (was enttäuschend ist). Sie benötigen also auch Transistoren an Port 2:
R1 war einer der Widerstände an Port 2. Sie fügen also Q1 und R2 zwischen sie ein und wiederholen dies für jedes der 8 Segmente. Achtung, Q2 ist ein PNP! Jeder Allzweck-PNP-Transistor reicht aus.