Fork me on GitHub

Microcontrolandos

O Blog está passando por uma fase de mudanças. Todos os posts estão sendo atualizados, códigos, links e imagens estão sendo arrumados. Conteúdos novos ainda estão por vir.

PIC: PCF8583

Share:

PIC: PCF8583



O PCF8583 é um relógio/calendário e alarme digital da NXP Semiconductors com uma memória RAM de 256 x 8 bits, que controlado através de um microcontrolador, fornece data e hora em tempo real.

Utiliza o barramento I2C. Possui endereçamento selecionável através do pino A0, podendo assim, ligar até dois relógios no mesmo barramento.


O PCF8583 fornece informações do ano, mês, dia e dia da semana, hora, minuto, segundo e  centissegundo. Todos no formato BCD.

O endereço 0x00 é usado como um registro de controle e status. Os endereços de 0x01 até 0x07 são usados como contador para a função relógio. Os endereços de 0x08 até 0x0F podem ser programados como registro do alarme ou utilizado como memória RAM livre, quando o alarme está desativado.

CARACTERÍSTICAS

  • Barramento I2C;
  • Tensão de alimentação de 1.0V à 6.0V. Isso permite adicionar uma pequena bateria de backup de 3V no caso de ocorrer uma falha de energia;
  • Memória RAM de 256 x 8 bits;
  • Função relógio com 4 anos ( incluindo ano bissexto );
  • Formato de horas: 24h ou 12h ( AM/PM );
  • Alarme e Timer com interrupção programável.

REGISTRO DE CONTROLE E STATUS
Este registro contém as flags de interrupção do alarme e do timer, que são os bit 1 e 0, respectivamente. O bit 7 quando setado pausa o relógio. Os bits 5 e 4 configuram o clock. O bit 3 funciona como uma chave para habilitar/desabilitar todas as interrupções.

REGISTRO DE CONTROLE DO ALARME
Este registro contém a configuração de contagem do timer ( bits 2, 1 e 0 ). O bit 3 é usado para habilitar/desabilitar a interrupção do timer. Os bits 5 e 4 configuram o modo do alarme e o bit 7 habilita/desabilita a interrupção do alarme.

MODO ALARME
No modo alarme você define a hora para ele disparar. Quando a hora atual e a hora do alarme forem iguais uma interrupção será gerada, e a flag será setado. Esta flag deverá ser limpa via software. Para configurar como alarme você deve:

  1. Definir a hora do alarme ( endereços 0x09 até 0x0E )
  2. Configurar o modo do alarme ( bits 5 e 4 do registro de controle do alarme )
  3. Habilitar a interrupção do alarme ( bit 7 do registro de controle do alarme )
MODO TIMER
No modo timer você define um tempo para ele disparar. Esse tempo pode ser incrementado de segundos em segundos, ou minutos ou horas ou dias, configurando os bits 2, 1 e 0 do registro de controle do alarme. A contagem inicia a partir do valor definido pelo usuário até 99. Após isso ocorrerá um estouro, retornando a contagem para 0 e gerando uma interrupção. A flag também será setado. Esta flag deverá ser limpa via software, assim como o valor do timer. Para configurar o timer você deve:
  1. Definir um valor inicial do timer ( endereço 0x0F )
  2. Configurar o modo de contagem ( bits 2, 1 e 0 do registro de controle do alarme )
  3. Habilitar a interrupção do timer ( bit 3 do registro de controle do alarme )
BIBLIOTECA
MikroC PRO PIC

EXEMPLO
MikroC PRO PIC

2 comentários:

  1. oi Tiago os teus codigo fonte são fixe, tenho testado quase todos e dão sempre certo... ola aprendi a programar o pic com voce e hoje tenho criado muitos projectos... obrigado...

    ResponderExcluir
  2. Olá Tiago,
    Será que me poderia ajudar a fazer um código deste género para um dsPIC33FJ64MC802?
    Obrigado,
    jm93

    ResponderExcluir