Os dois esquemas são duas versões da tela, cátodo comum na parte superior e ânodo comum na parte inferior. Presumo que você tenha a versão comum do cátodo.
Você conecta os segmentos A..G, DP através de resistores da série 8 a 8 pinos de E / S do microcontrolador. Dirigir um pino alto acenderá esse LED no dígito selecionado. Para selecionar qualquer um dos 4 dígitos, você baixa o cátodo comum correspondente por meio de um transistor NPN, que você dirige novamente a partir de um pino de E / S por meio de um resistor.
Se a sua tensão de alimentação for 5 V e você estiver usando LEDs vermelhos, poderá usar resistores de 150 instead em vez de 330. Diminua também os valores do resistor de base do transistor para 2,2 kΩ e use, por exemplo, BC337 s para os transistores.
Para acionar a tela cheia, você primeiro reduz o pino 12 ao acionar seu transistor com um nível alto e define as E / Ss para os segmentos desse dígito. Algum tempo depois, você desliga o pino 12 e os segmentos, liga 9 e, novamente, os segmentos do segundo dígito. E assim por diante. Se você passar de um dígito para outro em menos de 2,5 ms, o display inteiro alterna entre 10 ms ou 100 Hz, o que é suficiente para evitar oscilações visíveis.
Você pode usar o driver Maxim, como o MAX7219 , mas é Damn Expensive ™: 12,80 dólares em 1s no Digikey. O bom disso é que ele cuida da multiplexação para você, então você só precisa carregá-lo com os dados do segmento para os quatro dígitos. Ele também possui controle de brilho do software.
Verifiquei a folha de dados do PIC16F690 e, ao contrário de outros microcontroladores, suas E / Ss não parecem capazes de obter 20 mA (o que é decepcionante). Então você precisará de transistores na porta 2 também:
R1 foi um dos resistores na porta 2. Portanto, insira Q1 e R2 entre eles e repita isso para cada um dos 8 segmentos. Atenção, Q2 é um PNP! Qualquer transistor PNP de uso geral serve.