[an error occurred while processing this directive]
|
#include sbit sda=P3^7; unsigned char input_time[7]; void set_time(unsigned char *input_time); input_time[0]=0;//second // write_control(); void write_control(void){ unsigned char read_time(void){ void ds_ask(void){ void write_data(unsigned char input_data){ unsigned char read_data(void){
E-mail:
info@telesys.ru
sbit scl=P1^7;
unsigned char output_time[7];
unsigned char input_data, output_data, control=0x10;
unsigned char read_time(void);
void start_cond(void);
void stop_cond(void);
void ds_ask(void);
void write_data(unsigned char input_data);
unsigned char read_data(void);
void write_control(void);
void main(void){
sda=1;
scl=1;
input_time[1]=0x25;//minutes
input_time[2]=0x18;//hours
input_time[3]=0x4;//data
input_time[4]=0x20;//date
input_time[5]=0x3;//month
input_time[6]=0x3;//year
// while(1);
// set_time(input_time);
// while(1);
read_time();
while(1);
}
start_cond();
write_data(0xD0);
ds_ask();
write_data(0x07);
ds_ask();
write_data(control);
ds_ask();
stop_cond();
return;
}
unsigned char count;
for(count=0; count<8; count++){
start_cond();
write_data(0xD0);
ds_ask();
write_data(count);
ds_ask();
stop_cond();
start_cond();
write_data(0xD1);
ds_ask();
output_time[count]=read_data();
stop_cond();
}
return(output_time[7]);
}
void set_time(unsigned char *input_time){
unsigned char count;
start_cond();
write_data(0xD0);
ds_ask();
write_data(0x00);
ds_ask();
for(count=0; count<8; count++){
write_data(input_time[count]);
ds_ask();
}
stop_cond();
return;
}
void start_cond(void){
sda=1;
scl=1;
sda=0;
scl=0;
return;
}
void stop_cond(void){
sda=0;
scl=1;
sda=1;
return;
}
sda=1;
scl=1;
while(sda);
scl=0;
return;
}
unsigned char count;
for(count=0; count<8; count++){
sda=((input_data&0x80)?1:0);
input_data<<=1;
scl=1;
scl=0;
}
return;
}
unsigned char count;
output_data=0x00;
for(count=0; count<8;count++){
output_data<<=1;
scl=1;
output_data|=sda;
scl=0;
}
return(output_data);
}
Ответы