Ds 1302 ( relogio digital )

Enviado:
13 Nov 2006 00:06
por zero
alguem sabe como programar este ci ? ou tem alguma documentação falando ?

Enviado:
13 Nov 2006 07:16
por xultz
Se você for usar PIC e CCS, tem driver pronto prá ele no programa.

Enviado:
13 Nov 2006 07:31
por brasilma

Enviado:
13 Nov 2006 18:54
por jrmanke
Baixei umas bibliotecas prontas do forum antigo..
Os autores que me perdoem so estou compartilhando estas informações com o pessoal.. ainda naum tive tempo para testala mas la vai..
**********************************************************
#define ds1307_SDA PIN_e1
#define ds1307_SCL PIN_e0
#use i2c(master, sda=ds1307_SDA, scl=ds1307_SCL)
void iniciar_ds1307(void); // responsavel de colocar os pinos do
void escrever_hora(char hora, char minuto, char segundo);//função
void escrever_data(char dia,char data,char mes,char ano);//função
void ler_ds1307(char dados);//função responsavel pela leitu
void ler_ds1307(unsigned char *dados){
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_start();
i2c_write(0xd1);
//dados[0]
dados[0]=i2c_read();
dados[1]=i2c_read();
dados[2]=i2c_read();
dados[3]=i2c_read();
dados[4]=i2c_read();
dados[5]=i2c_read();
dados[6]=i2c_read();
dados[7]=i2c_read(0);
i2c_stop();
}
void iniciar_ds1307(void){
output_float(ds1307_scl);
output_float(ds1307_sda);
}
void escrever_hora(char hora,char minuto,char segundo){
char set_dezhora,set_hora,set_dezminuto,set_minuto,set_dezsegundo,set_segundo;
set_dezhora=hora/10;
set_hora=hora%10;
hora=set_dezhora;
hora=hora<<4;
hora= hora | set_hora;
set_dezminuto=minuto/10;
set_minuto=minuto%10;
minuto=set_dezminuto;
minuto=minuto<<4;
minuto=minuto | set_minuto;
set_dezsegundo=segundo/10;
set_segundo=segundo%10;
segundo=set_dezsegundo;
segundo=segundo<<4;
segundo=segundo | set_segundo;
i2c_start();
i2c_write(0xd0);
i2c_write(0x00);
i2c_write(segundo);
i2c_stop();
i2c_start();
i2c_write(0xd0);
i2c_write(0x01);
i2c_write(minuto);
i2c_stop();
i2c_start();
i2c_write(0xd0);
i2c_write(0x02);
i2c_write(hora);
i2c_stop();
}
void escrever_data(char dia,char data,char mes,char ano){
char set_dezdia,set_dia,set_dezdata,set_data,set_dezmes,set_mes,set_dezano,set_ano;
set_dezdia=dia/10;
set_dia=dia%10;
dia=set_dezdia;
dia=dia<<4;
dia=dia | set_dia;
set_dezdata=data/10;
set_data = data%10;
data=set_dezdata;
data=data<<4;
data=data | set_data;
set_dezmes=mes/10;
set_mes = mes%10;
mes=set_dezmes;
mes=mes<<4;
mes=mes | set_mes;
set_dezano=ano/10;
set_ano = ano%10;
ano=set_dezano;
ano=ano<<4;
ano=ano | set_ano;
i2c_start();
i2c_write(0xd0);
i2c_write(0x03);
i2c_write(dia);
i2c_stop();
i2c_start();
i2c_write(0xd0);
i2c_write(0x04);
i2c_write(data);
i2c_start();
i2c_write(0xd0);
i2c_write(0x05);
i2c_write(mes);
i2c_stop();
i2c_start();
i2c_write(0xd0);
i2c_write(0x06);
i2c_write(ano);
i2c_stop();
}
************************************************************
Valeu
" Não sou perfeito no que eu faço, porém faço o melhor de mim. Principalmente porque não é para mim. "