1、ds1302芯片使用相对简单,其采用spi三接口同步通信。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此可应用于测量系统中。ds1302内部读写寄存器存放的数据格式为bcd码,在读取后的数据转换时除以16得到相应10进制数。
2、部分核心程序:
发送地址及数据(向芯片里面写入数据):
void write1302(unsigned char addr,unsigned dat){
RST=0;//不让数据传输进ds1302
SCLK=0;//初始化时钟总线
RST=1;
for(int i=8;i>0;i--){
SCLK=0;
IO=addr&0x01;
addr>>=1;
SCLK=1;
}
for(int i=8;i>0;i--){
SCLK=0;
IO=dat&0x01;
dat>>=1
SCLK=1;
}
RST=0;
}
数据读取程序(读取到cpu内部处理):
unsigned char read1302(unsigned char addr){
unsigned char j,data;
RST=0;
SCLK=0;
RST=1;//1302可以用了
for(int i=8;i>0;i--){
SCLK=0;
IO=addr&0x01;
addr>>=1;
SCLK=1;
}
for(int i=8;i>0;i--){
SCLK=0;
if(IO)
j=j|0x80;
j>>=1;
SCLK=1;
}
RST=0;
SCLK=0;
data=j/16*10+j%16;
return data;
}
3、实物图:略;
4、还有许多要发觉的东西,比如外部供电部分等 纯手打 太累了,不写了。晚安
5、明天先弄一个小项目:多点采集温度并通过485/232通信传输到电脑上,或者接入另外一个单片机可以查询采集到的数据信息;