PIC18+DS1302程序设计

2019-04-15 12:57发布

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通信传输到电脑上,或者接入另外一个单片机可以查询采集到的数据信息;