Ds 1302 ( relogio digital )

Componentes, Dispositivos, Equipamentos, etc...

Moderadores: 51, guest2003, Renie

Ds 1302 ( relogio digital )

Mensagempor zero » 13 Nov 2006 00:06

alguem sabe como programar este ci ? ou tem alguma documentação falando ?
Avatar do usuário
zero
Nibble
 
Mensagens: 65
Registrado em: 12 Nov 2006 23:57
Localização: Indaiatuba - SP

Mensagempor xultz » 13 Nov 2006 07:16

Se você for usar PIC e CCS, tem driver pronto prá ele no programa.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor brasilma » 13 Nov 2006 07:31

" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor jrmanke » 13 Nov 2006 18:54

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. "
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC


Voltar para Componentes\Equipamentos Eletrônicos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x