A maioria dos leitores que estudaram lógica digital conhece a notação binária. Trata-se de um item obrigatório em qualquer currículo para eletrônica digital ou microcontroladores. Este artigo demonstrará ao leitor como montar um relógio microcontrolado com um mostrador bastante diferente do usual.
Márcio José Soares
Ao invés de "displays" ou "ponteiros", o mostrador do nosso relógio é composto por LEDs que mostram hora, minutos e segundos no formato binário (BCD). Desta forma, além do leitor ter em sua mesa um relógio bem diferente e curioso, também poderá "praticar" diariamente a interpretação "binária".
Nota: Artigo publicado na Eletrônica Total 115 de 2006
Numeração ou Notação Binária
Para aqueles que ainda não se depararam com a notação binária, um pouco de teoria poderá ajudar na compreensão do funcionamento do relógio proposto neste artigo. Para outros que já a conhecem, a teoria poderá ajudar a "relembrar".
Atualmente utilizamos o sistema de numeração decimal. Neste sistema temos 10 algarismos (0 a 9) que nos permitem "construir" e "interpretar" qualquer valor desejado. Esta "interpretação" utiliza o método dos "pesos", de acordo com a posição do algarismo no valor. Para valores até nove não existe qualquer peso, pois estamos na "primeira posição". Para valores acima de nove são adotados "pesos": a dezena assume peso "1", a centena peso "2", o milhar peso "3" e assim por diante. Veja na figura 1 um exemplo disso.
O leitor deve ter percebido que estes pesos são, na verdade, "expoentes" que elevam a "base" da notação (ou numeração). Como estamos tratando da notação decimal, esta base é o valor 10.
O leitor já pensou como seria um "sistema digital" baseado na numeração decimal? Para que um sistema digital pudesse interpretar os 10 algarismos citados. o mesmo teria de ser capaz de interpretar 10 níveis de tensão diferentes. Para que tal sistema pudesse ser confiável estes níveis teriam de ter uma boa margem de segurança (distância entre níveis segura). Neste caso, os níveis de tensão teriam de ser meio altos para que as "janelas" (ou zonas de transição) pudessem ser inseridas adequadamente entre os mesmos. Na figura 2 temos uma representação hipotética deste sistema digital.
Um sistema digital trabalha de acordo com uma determinada lógica.
Os níveis de tensão internos são sempre interpretados de acordo com urna situação lógica.
Se fossemos utilizar a "lógica do sim ou não" para este sistema, como a mesma poderia ser traduzida por ele?
Como exemplo poder-se-ia determinar que o valor "0" fosse interpretado como um "não absoluto", o valor "1" seria um "quase não", o valor 2 poderia ser traduzido como um "pode ser que não", o valor 3 como "um talvez não”, o valor 4 como um "quase talvez", o 5 como um "talvez", até chegar no valor 10 onde teríamos um "sim com certeza"? Cada desenvolvedor poderia dar a interpretação que melhor conviesse ao seu sistema e a "interconexão" entre sistemas seria quase impossível.
E mais um problema: o grau de complexidade do circuito eletrônico capaz de gerar 10 níveis de tensão diferentes seria enorme. Atualmente existem no mercado Cls (circuitos integrados) digitais com milhares de transistores e processadores com milhões deles. O leitor já pensou nos "números" relacionados a este novo CI com a tal "lógica digital decimal"??? Um tanto inviável, não acha?
Todos estes problemas foram resolvidos com a adoção de apenas dois níveis de tensão para os sistemas digitais. Ao se trabalhar com dois níveis de tensão a interpretação destes fica mais fácil para o sistema (e desenvolvedor) e a sua construção também é mais simples, pois os níveis de tensão adotados geralmente são sempre "Vcc" e "GND". É possível perceber também que a simplicidade do sistema binário permite que este seja menos susceptível ao erro.
Porém, como interpretar um número qualquer escrito no sistema binário? Temos agora apenas dois algarismos para gerar nossos valores (0 e 1)?
Simples! Utilizaremos a mesma ideia dos "pesos" adotadas no sistema decimal também para o sistema de numeração ou notação binária, apenas mudando a base. Como na notação binária só temos dois algarismos, nossa base agora é o "2". Na figura 3 o leitor pode observar como isso é feito.
A partir do que foi explicado, fica bem fácil compreender como será feita a conversão de um valor decimal para binário e vice-versa. Para converter um valor decimal para binário basta realizar divisões sucessivas por "2" até que o resto seja menor que "2". O resultado da conversão é então obtido considerando o último quociente e lendo os restos da última até chegar à primeira divisão realizada. A figura 4 demonstra um exemplo do que foi dito.
A conversão inversa de binário para decimal é também bem simples. O valor binário deve ter seus "pesos-anotados e convertidos. Em seguida, multiplica-se o valor do dígito binário (0 ou 1) pelo valor do peso convertido e então soma-se tudo. Acompanhe como isso é feito na figura 5.
O leitor poderá estar se perguntando sobre a interpretação dos valores binários menores que 1. Até o presente momento, tudo o que foi demonstrado foi feito levando-se em conta apenas valores inteiros. Porém, os sistemas digitais também são capazes de trabalhar com valores fracionados. Se não fosse assim, nossas calculadoras e computadores seriam inúteis. Para a interpretação de valores menores que "1" na base binária utilizamos a mesma ideia dos pesos, mas estes são agora negativos. Ou seja, os expoentes agora serão negativos (-1, -2, -3, -4, e assim sucessivamente).
Muitas são as informações interessantes sobre sistemas digitais e o sistema de notação binária, porém nosso "espaço" não nos permite tratar mais profundamente do assunto e também não é esse o nosso intuito. Nossa intenção foi apenas dar uma certa noção ao leitor sem conhecimento no sistema binário para que o mesmo pudesse compreender a montagem proposta. Sugerimos ao leitor interessado que busque mais informações sobre o assunto em livros especializados. Um deles é o livro "Curso de Eletrônica Digital" do autor Newton C. Braga, que pode ser encontrado na Saber Marketing.
O Circuito
Na figura 6 o leitor tem o circuito para a montagem proposta. O "coração" (ou cérebro, como alguns preferem chamar) do circuito é o microcontrolador PIC16F628-04/P da Microchip (C11). Este “pequeno”, mas notável microcontrolador já foi utilizado nesta revista em outros projetos. Suas principais características são:
- Memória de programa FLASH com 2 kbytes;
- 224 bytes de RAM para dados;
- 128 de EEPROM para dados (setup e outras);
- 15 pinos de I/O com dreno de corrente na ordem de 20mA;
- Dois comparadores analógicos;
- Dois "timers" de 8 bits e um de 16 bits;
- Um canal CCP (Capture, Compare and PWM);
- Um canal USART para comunicação RS-232 ou SPI;
- Várias opções para oscilador inclusive interno a 4 MHz;
- Watch Dog Timer (cão de guarda) interno;
- Controle de "Power-on Reset" e "Power-up Timer";
- Proteção de código contra cópias (antipirataria);
- Código de instruções reduzido (35 instruções Assembly);
- Encapsulamento DIP com 18 pinos; - etc.
Para aqueles que desejam maiores informações sobre este microcontrolador, aconselhamos o "download" do seu "datasheet" no site do fabricante, www.microchip.com. Como o circuito não é crítico, o autor optou pelo uso do "clock" interno do microcontrolador (4 MHz). O pino de "reset" foi utilizado como pino de ainda mais o número destes disponíveis no circuito. Parte dos pinos de I/O das portas "A" e "B" foram utilizados no controle da "matriz de LEDs" que forma o mostrador do relógio.
Todo relógio precisa de uma base de tempo para a contagem do mesmo.
A mais comum delas é a frequência presente na rede elétrica (no caso do Brasil, 60Hz). Esta frequência é bastante precisa e fácil de ser retirada da rede elétrica e lida por um microcontrolador. Dado que o circuito conta com uma fonte de alimentação com transformador redutor de tensão ficou bem simples a retirada deste sinal. Ela é feita através de CI3, um opto-acoplador 4N25. Este CI possui internamente um diodo emissor de raios infravermelhos (IR — Infra Red) e um fototransistor. Desta forma isolamos o microcontrolador "opticamente" do sinal a ser retirado da rede. Na figura 7 é mostrado o diagrama interno deste CI.
Este sinal é então inserido no microcontrolador através do pino de I/0 RB0. Este pino de I/0 pode ser configurado para gerar uma interrupção no microcontrolador sempre que o mesmo "sentir" a transição da borda de um sinal.
Sabemos que toda porta lógica tem tempos de transição bem definidos. Quando um sinal aplicado à entrada de uma porta lógica tem tempos de transição menores aos valores mínimos permitidos (cada família lógica tem seus próprios valores), verifica-se em sua saída algumas oscilações à medida que o sinal de entrada passa pelo intervalo de "indeterminação". O leitor deve estar atento para o fato de que estamos recolhendo um sinal analógico do tipo senoidal para a nossa base de tempo. Assim, uma porta lógica comum sofreria oscilações indesejáveis devido à natureza do sinal. Porém, sempre que o pino de I/O RB0 do PIC é configurado para "ler" um sinal externo e gerar uma interrupção, ele assume características de "Schmitt Trigger".
Uma porta lógica do tipo "Schmitt Trigger" é projetada para aceitar sinais cuja transição é lenta e fornecer uma saída livre de qualquer tipo de oscilação. Esta saída geralmente é muito rápida, com tempos de transição em torno de 10 ns, e é independente das características do sinal de entrada. Desta forma podemos usar o sinal da frequência da rede elétrica (60 Hz) para realizar a contagem do tempo necessário de forma muito precisa. Analisando a figura 8, o leitor poderá entender melhor o que foi dito com a comparação dos comportamentos de uma porta inversora comum e uma inversora com entrada Schmitt Trigger.
R13 é o resistor limitador de corrente para o LED interno ao opto-acoplador. D3 serve para conduzir a parte "negativa" do sinal de entrada, evitando que o LED interno ao opto-acoplador se danifique por excesso de corrente reversa sobre o mesmo.
R14 mantém o nível de tensão sobre o pino RB° (habilitado para trabalhar com interrupção externa) sempre "alto" (5 VDC), quando o valor do sinal de entrada for máximo. LED1 a LED20 forma o mostrador do relógio. A forma de controle destes LEDs segue o mesmo método de controle para "matrizes de LEDs-(linha x coluna). Assim, para ligar ou desligar cada LED é preciso inserir um valor de tensão correto na linha e coluna onde este LED se encontra. Chamaremos a partir deste momento de "linha" os pontos onde estão ligados os "catodos" dos LEDs e de "colunas pontos onde estão ligados os "anodos" dos mesmos.
Para facilitar ainda mais a compreensão do que será dito daqui para a frente, chamaremos de coluna "1" a conexão dos anodos entre os LEDs 1 e 2, de coluna "2" a conexão entre os anodos dos LEDs 3, 4, 5 e 6 até coluna -6" onde temos a conexão aos anodos dos LEDs 17, 18, 19 e 20 erros então a contagem das colunas os morda para direita.
O leitor deve ter notado que algumas linhas e colunas possuem menos LEDs que outras. O porquê disso será detalhado mais adiante quando falarmos sobre a "Interpretação do Mostrador". Por ora, vamos nos ater apenas aos detalhes de funcionamento do nosso relógio.
Já para as linhas, denominaremos de linha “1” a conexão entre os catodos dos LEDs 2, 6, 9, 13, 16 e 20, de linha “2" a conexão entre os catodos dos LEDs 1, 5, 8, 12, 15 e 19 até a linha '4" onde temos a conexão entre os catodos dos LEDs 3, 10 e 17. A numeração das linhas será feita então de baixo para cima.
As colunas são controladas pelos transistores Q1 a Q6 (BC327- PNP) e as linhas pelo CI ULN2003, um circuito integrado com sete "drivers" tipo "darlington". Este CI permite o controle, através de suas saídas, de motores DC, motores de passo, LEDs e outros dispositivos que trabalhem com tensão de até 50 VDC e dreno de corrente de até 500 mA máximos por "drive". Sua entrada tem níveis de tensão e corrente dentro do padrão TTL. Na figura 9 temos o diagrama interno deste CI.
O relógio possui uma fonte de alimentação própria formada pelo transformador T1 (ligado a CN1), os diodos retificadores D1 e D2, os capacitores de filtro C1, C2, C3 e C4 além de C14, um regulador de tensão para 5 VDC.
O jumper JP1 permite a-seleção para o modo do mostrador: aberto -"12:00” e fechado - "24:00". A chave S1 possibilita ajustar o relógio (horas e minutos) e a chave S2 permite trocar o ajuste entre horas e minutos.
Montagem eletrônica
Na figura 10 o leitor tem nossa sugestão do "layout” para confecção do circuito impresso. Trata-se de uma placa dupla face. Este modo foi o escolhido visando a redução do tamanho final da placa e consequentemente do relógio, uma vez que o mesmo foi pensado como um relógio de mesa ou cabeceira.
Aquele que não se sentir à vontade com placas dupla face poderá redesenhar o layout com apenas uma face, bastando para isso seguir o circuito elétrico. Uma alternativa é a montagem do circuito em placa do tipo padrão, visto que o mesmo não é crítico.
Pensamos que o leitor que ainda não confeccionou uma placa dupla face, deva fazê-lo. Para aquele que aplica os conhecimentos adquiridos profissionalmente isso é muito importante, pois nos dias de hoje raras são as empresas que não utilizam este tipo de placa (dupla face). O técnico ou engenheiro que pretende conquistar ou manter seu emprego deve ter os conhecimentos necessários sobre desenho, confecção e funcionamento de um circuito com "layout" de dupla-face e em alguns casos "multilayer" (várias camadas).
Para o "hobista" este conhecimento também é recomendável. A confecção de uma placa dupla face não é difícil e segue a mesma "filosofia" de uma placa com face simples com apenas a diferença de agora ser necessário um novo desenho sobre a face superior com o correto "casamento" entre as furações inferior e superior.
Após a confecção da placa, comece por montar na mesma os suportes para os CIs (exceto CI4). Não recomendamos a solda dos CIs diretamente na placa, principalmente do microcontrolador. Ao soldar os resistores tenha cuidado para não os trocar entre si. Utilize o código de cores fornecido na lista de materiais para se orientar e montá-los corretamente na placa.
Os LEDs, capacitores eletrolíticos, diodos e os CIs são polarizados. A montagem destes componentes de maneira invertida comprometerá o funcionamento do circuito e quiçá a integridade dos mesmos (você poderá danificá-los irremediavelmente). Tome cuidado ao montá-los! Siga atentamente a "máscara" fornecida na figura 10 para o correto posicionamento dos componentes. É altamente recomendável o uso de um radiador de calor para C14, pois o uso do circuito é contínuo.
O transformador T1 será conectado ao circuito através de CN1. A ligação de um fusível de proteção, uma chave liga/desliga e do rabicho podem ser vistos no esquema fornecido na figura 11.
O jumper JP1 pode ser construído a partir de uma barra de pinos com dois segmentos ou então substituído por uma chave "on/off' (chave "H-H").
As chaves S1 e S2 devem ser do tipo NA (normalmente aberta) e devem ser as indicadas para montagem na placa PCI, ou ainda do tipo aérea para montagem em gabinetes.
O programa
Em nosso site disponibilizamos um programa desenvolvido na linguagem C chamado relógio_nerd.c. Utilizamos para a montagem e compilação deste programa o compilador PICC CCS (www.ccsinfo.com). A empresa CCS fornece uma versão demo que poderá ser utilizada pelo leitor em seus testes. Esta versão possui algumas limitações como os tipos de microcontroladores habilitados e também no tamanho máximo do programa a ser compilado, porém é uma boa alternativa para aqueles que desejam "entrar" no mundo da programação na Linguagem C, mais especificamente dedicada aos microcontroladores PIC Microchip.
O programa foi ricamente comentado para ajudar nosso leitor na sua compreensão. Porém, a seguir trataremos um pouco sobre o seu funcionamento, descrevendo as operações mais importantes do programa.
Na figura 12 temos o fluxograma que descreve a operação do programa desenvolvido para a montagem proposta neste artigo.
O programa começa configurando o microcontrolador, definindo o modo de uso dos pinos (entrada ou saída), o tempo para o "Watch Dog Time( (relógio cão de guarda que reseta o microcontrolador após um período evitando que o programa se perca assim que o microcontrolador trave por algum motivo) e a configuração da "INT EXT" (interrupção externa responsável pela recepção do sinal para a base de tempo do relógio —60 Hz).
Após a configuração do microcontrolador, o programa verifica qual o modo escolhido para a demonstração do horário: se 12 ou 24 horas. Após esta verificação, o programa confere se algum ajuste no relógio já foi feito. Geralmente, quando o circuito é ligado nenhum ajuste foi feito e o relógio fica aguardando o modo ajuste, e isso é informado no mostrador através da função "pisca ajuste ()" que faz as colunas piscarem informando a situação.
Na função "main ()"o estado das chaves S1 e S2 é lido, o WDT é zerado e a matriz de LEDs é atualizada. O sinal para base de tempo é colhido via interrupção.
A função "atualiza_ matriz ()" atualiza as "linhas" e "colunas" do mostrador através do método da varredura. Isso quer dizer que nunca teremos todos os LEDs acesos de uma só vez. Cada linha é acertada com o valor desejado e a coluna referente é então ligada e desligada a cada 0,03 segundos. Como essa velocidade é grande e considerando. o efeito da "Persistência Retiniana", temos a "ilusão" de que todos os LEDs estão acesos ao mesmo tempo e o leitor poderá então "ver" as horas no mostrador.
A função "EXT_isr ()" tem papel fundamental para o relógio. Ela é chamada 60 vezes por segundo (frequência da rede elétrica = 60 Hz). A cada chamada ela atualiza a contagem para segundos, minutos e horas. Assim, a cada 60 contagens temos 1 segundo, a cada 60 segundos contados temos um minuto e a cada 60 minutos contados uma hora. Esta função é. assim, a responsável pela contagem do tempo.
As outras funções presentes são auxiliares do programa e permitem o ajuste do relógio e sua operação.
Nota: Para o leitor sem conhecimento na linguagem C, aconselhamos a leitura da série "Linguagem C", do autor Márcio José Soares, publicada entre as edições 98 e 103 da revista Eletrônica Total e agora também disponível na Revista Saber Eletrônica Especial CD 011 (série completa no CD - arquivos no formato PDF). Nesta série o autor aborda os fundamentos da Linguagem C, passando informações e dicas importantes para o uso da linguagem tanto em PCs como em microcontroladores.
Um outro detalhe também muito importante é que o compilador CCS insere no código final, a ser gravado no microcontrolador, comandos que permitem ligar e desligar as interrupções. Isso evita que ao atender uma determinada interrupção, o microcontrolador sofra uma segunda interrupção, e assim consecutivamente. Ou seja, ao entrar em uma função de tratamento de interrupção, todas as outras (e a própria) são desabilitadas. Enquanto as operações dentro da função de tratamento da interrupção atual não se finalizarem, nenhuma outra será chamada. Agora o leitor pode entender a importância do "Watch Dog Timer". Caso algo na lógica do programa saia errado, o "WDT' fará o "reset" do microcontrolador, iniciando as operações.
Observando o que foi dito anteriormente, o leitor compreenderá porque, neste programa, foi utilizada uma única interrupção. O controle de tempo para atualização da matriz poderia ter sido feito via interrupção de um dos "timers" do microcontrolador, por exemplo, mas isso seria um erro.
Se neste caso, enquanto o microcontrolador estivesse atualizando a matriz durante uma interrupção do "timer", uma interrupção causada pelo sinal de 60 Hz tivesse que ser atendida, isto não aconteceria e, consequentemente, uma ou mais contagens poderiam ser perdidas. Atualizando a matriz e realizando todas as outras operações necessárias no relógio de forma "manual” temos certeza que a interrupção externa será atendida sempre que solicitada.
E para aqueles que gostariam de conhecer um pouco mais sobre o compilador CCS, recomendamos o livro "Microcontroladores PIC —Programação C", de Fábio Pereira.
Interpretação do mostrador
O relógio proposto neste artigo tem seu mostrador desenvolvido para mostrar horas, minutos e segundos na forma binária "BCD". As colunas demonstrarão o horário conforme a tabela 1.
O leitor deve estar curioso a respeito do mostrador e a forma selecionada para o mesmo. É importante salientar que utilizamos uma particularidade da notação binária neste mostrador. Os valores não são demonstrados no formato binário puro, mas sim no formato BCD (Binary Coded Decimal - Decimal Codificado em Binário).
No formato BCD cada dígito de um valor decimal qualquer é codificado (ou representado) separadamente. Como um dígito decimal pode assumir valores entre O a 9, são necessários quatro bits para a codificação em BCD de cada dígito decimal. Considere o valor 47 decimal. Sua codificação BCD ficaria então:
Se a conversão do valor 47 fosse feita para o binário puro, o resultado seria b00101111. O leitor deve ter notado que os bits foram dispostos de maneira completamente diferente para ambos os casos. No caso binário puro a conversão é feita de forma direta, mas no caso BCD, cada “dígito decimal" (4 e 7) foi convertido separadamente.
Se o mostrador do relógio fosse desenvolvido para mostrar valores binários puros, este teria para segundos, minutos e horas um número de LEDs de acordo com o máximo valor para cada, ou seja, para segundos e minutos seriam necessários seis LEDs (para cada) e para as horas cinco LEDs no total. Um total de 17 LEDs apenas seriam necessários para nosso mostrador (três a menos que a configuração escolhida). A figura 13 demonstra este tipo de mostrador.
Fica fácil concluir que neste tipo de codificação torna-se difícil identificar com precisão e velocidade o horário correto. Pense mais no assunto e como exemplo escreva em binário, utilizando a figura, o seguinte horário: 22:18:49 (HH: MM: SS). Claro que a operação não foi das mais fáceis. Agora imagine a situação contrária: ao invés de escrever um determinado horário, você terá de ler o mesmo.
Não entraremos nos detalhes envolvidos na programação do microcontrolador PIC Microchip neste artigo. Acreditamos que o leitor que se propôs a montar o circuito aqui sugerido possui a experiência necessária com a gravação do microcontrolador utilizado. Aos leitores que não têm esta experiência aconselhamos que busquem auxílio técnico com amigos e/ou professores com experiência comprovada no assunto.
Com a notação BCD tudo fica mais fácil. Cada coluna de LEDs guardará apenas os seguintes algarismos em binário:
- de 0 a 9 para as unidades de hora, minutos e segundos
- de 0 a 6 para as dezenas de minutos e segundos
- de 0 a 2 para a dezena das horas
Assim fica mais fácil a leitura. Veja o mesmo exemplo dado anteriormente para o horário 22:18:49 na figura 14, agora no formato BCD adotado em nosso mostrador. Com um pouco de treino o leitor será capaz de bater o olho no mostrador e dizer com precisão o horário, sem nenhum problema.
Teste e uso
Após a montagem, seja qual for o método escolhido, aconselhamos uma verificação minuciosa na mesma. Reveja todas as ligações, as soldas, posições dos componentes, etc. Gaste alguns minutos nesta checagem. Não tenha pressa em ligar o circuito. Alguns minutos gastos em uma boa verificação poderão representar a diferença entre o sucesso e o fracasso nesta montagem.
Faça o "download" do programa disponível em nosso "site" para gravar o microcontrolador. Grave o arquivo HEX fornecido no microcontrolador.
Configure o jumper "JPi" de acordo com o formato desejado para as horas (12 ou 24). Ligue o circuito à rede elétrica. Imediatamente o leitor poderá ver as colunas dos LEDs, da direita para esquerda, se acenderem sequencialmente. Isso indica que nenhum horário está acertado no relógio. Pressione "S1" ou "S2" quando a sequência estiver se iniciando (quando a primeira coluna a direita estiver para acender). Se o modo ajuste foi aceito, a coluna da "unidade" dos minutos piscará indicando que o ajuste será feito para os minutos. Pressione S1 (AJUSTE) até obter o tempo desejado para os minutos (1 até 60 em BCD).
Para ajustar agora as horas, pressione momentaneamente S2 (TROCA). A coluna para "unidade" das horas piscará indicando que o ajuste agora será feito para as horas. De acordo com "JP1" o ajuste pode ir até 12 ou então até 24 (em notação BCD). Com o ajuste pronto, pressione mais uma vez S2. O relógio piscará novamente sequencialmente todas as colunas (apenas uma vez), indicando que o ajuste foi finalizado e o tempo começará a ser contado (basta observar a contagem dos segundos — início em 0).
O circuito é funcional e não apresentou qualquer problema durante os testes no laboratório do autor. O relógio está em uso em sua mesa desde a sua idealização (janeiro/2006) sem nenhuma alteração em relação ao circuito aqui publicado.
Caso o seu relógio não funcione adequadamente, você deverá verificar sua montagem novamente. Reveja todas as etapas. Cheque se não existem erros na confecção da placa, se não há soldas frias ou pequenos curtos provocados por pontos muito próximos, a ligação dos LEDs, etc.
Toda verificação deve ser feita com muita calma, e preferencialmente com a ajuda de um amigo ou professor. Geralmente um "terceiro" tem mais chance de encontrar um erro que nos passou despercebido.
Conclusão
Sabemos que a maioria dos circuitos dos relógios montados nos cursos de eletrônica digital são feitos com lógica digital discreta, sem o uso de microcontroladores. Para a maioria de nossos leitores "estudantes" a montagem de um relógio "digital" microcontrolado é também bastante interessante, pois complementará o seu aprendizado. E o projeto aqui apresentado tem grandes chances de fazer sucesso em uma feira de eletrônica, pois além de demonstrar bons domínios sobre microcontroladores também poderá impressionar professores e visitantes com relação à leitura do mostrador binário. Boa montagem e até a próxima!