Você está na página 1de 2

13/03/2017 FAÇA UM MODESTO RELÓGIO C/CALENDÁRIO – COM PIC 16F628A , DS1307 E LCD (REF167) – larios.tecnologia.

ws

FAÇA UM MODESTO RELÓGIO C/CALENDÁRIO – COM PIC
16F628A , DS1307 E LCD (REF167)
Claudio Larios 9 comentários 27 de novembro de 2014

0
Muitos iniciantes na programação de microcontroladores ficam tentados a construir um relógio.
Que tal uma versão simples e confiável?

Usando as facilidades do DS1307 fica fácil montar um simples relógio com calendário. Veja o
esquema abaixo:

Mas o que é o circuito integrado DS1307?
Trata­se de um RTC (real­time clock) ou seja, um circuito integrado de 8 pinos com todas as
facilidades para se obter, de forma precisa, as horas, minutos, segundos, além do dia da semana
(domingo a sábado) e o calendário com dia, mês e ano, com todas as correções que um
calendário tem que ter (ex. ano bissexto, com mês de fevereiro com 29 dias).
A comunicação com o microcontrolador é por meio do protocolo I2c usando apenas 2 fios e o gnd.
Internamente ele dispõem de 8 registradores acessíveis, que armazenam segundos, minutos,
horas, dia, data, mês e ano, bem como um registrador de controle para algumas funcionalidades
extras (gerar clock externo programável em 4 escala no pino SQW/OUT).
O usuário poderá também dispor de 56 bytes de ram para uso geral, acessíveis pelo barramento
I2C. A exatidão da frequência é garantida por um pequeno cristal de 32768 hz, de baixo custo,
facilmente encontrado no comércio de componentes eletrônicos. Para que os dados não se
percam por falta de energia na alimentação, deverá ser instalado uma pequena bateria de 3 volts.
http://blog.larios.tecnologia.ws/iBlog/archives/6476/ 1/2
13/03/2017 FAÇA UM MODESTO RELÓGIO C/CALENDÁRIO – COM PIC 16F628A , DS1307 E LCD (REF167) – larios.tecnologia.ws

Se esta for de lithium (48mA) terá duração de aproximadamente 10 anos de uso em uma
temperatura média de +25C°.
 
Quanto ao programa em ‘C’, o que ele faz é buscar as informações internas dos 8 registradores e
apresentar no LCD nas posições determinadas pelas linhas de código.
 
Note que não foi usado nenhuma biblioteca externa, mas o código foi criado tanto para o LCD
como para o I2C. Creio que isto facilita o aprendizado, por podermos acompanhar o processo de
cada etapa, na mesma ‘pagina’ de visualização.

Para ajustar inicialmente o relógio e calendário, deveremos apertar o botão ‘ADJ’. Logo ao
pressionar, começará a piscar o relógio. Apertando botão ‘SEG’ irá incrementar os dígitos de
segundos e o mesmo ocorrerá com os botões ‘MIN’ e ‘HORA’. Um novo aperto no botão ‘ADJ’ irá
fazer piscar o dia da semana (domingo a sábado). Apertando ‘SEG’ ou ‘MIN’ ou ‘HORA’ irá trocar
sequencialmente o dia da semana. Um outro aperto em ‘ADJ’ fará piscar o calendário que será
alterado com os botões de ‘SEG’ para dia, ‘MIN’ para mês e ‘HORA’ para ano. Mais um aperto em
‘ADJ’ sairá do modo de ajuste do relógio, parando de piscar qualquer dígito. O Lcd usado foi um
16×2 da TECH 1602B , mas poderá ser usado qualquer um disponível que faça uso do
controlador interno HD44780 ou similar.
A fonte de alimentação poderá ser fornecida por 4 pilhas AA com um diodo 1N4007 em série, ou
um adaptador de parede com saídas diretas em 5 volts (carregadores de celulares) ou mesmo
usar uma fonte convencional com transformador de 110/220v para 9 volts, com retificadores,
capacitores de filtro e um regulador de tensão 7805.
Obs. Esta montagem é apenas didática, sendo realizada em placa de protoboard, sujeita a bugs
ainda não observados, sendo fornecido os arquivos que poderão ser alterados conforme a
necessidade do hobista.

Segue pasta com os arquivos da montagem, atualizada em 03/03/2015:

RELOGIO_CALENDARIO_V_2

Manuais:

DS1307
16F628a
LCD 16×2

http://blog.larios.tecnologia.ws/iBlog/archives/6476/ 2/2

Você também pode gostar