模块参数: :38mm(长)*22mm(宽)*14mm(高) :8g :-- :高精度时钟芯片DS3231 :0-40℃围,精度2ppm,年误差约1分钟 、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿 ,精度为±3℃ :AT24C32(存储容量32K) ,最高传输速度400KHz(工作电压为5V时) ,24C32地址可通过短路A0/A1/A2修改,默认地址为0x57 ,保证系统断电后,时钟任然正常走动 接线说明,以Arduinounor3为例: SCL→A5 SDA→A4 VCC→5V GND→GND 代码部分:#include<>#include<>#defineuchar unsignedchar #defineuint unsignedintsbitSDA=P3^6; //模拟I2C数据传送位SDA sbitSCL=P3^7; //模拟I2C时钟控制位SCLsbitINT=P3^2; sbitRESET=P3^3;sbitled0=P1^0;sbitled1=P1^1;sbitled2=P1^2;sbitled3=P1^3;sbitled4=P1^4;sbitled5=P1^5;sbitled6=P1^6;sbitled7=P1^7;bit ack; //应答标志位#defineDS3231_WriteAddress0xD0 //器件写地址 #defineDS3231_ReadAddress 0xD1 //器件读地址#defineDS3231_SECOND 0x00 //秒#defineDS3231_MINUTE 0x01 //分#defineDS3231_HOUR 0x02 //时#defineDS3231_WEEK 0x03 //星期#defineDS3231_DAY 0x04 //日#defineDS3231_MONTH 0x05 //月#defineDS3231_YEAR 0x06 //年//闹铃1 #defineDS3231_SALARM1ECOND0x07 //秒#defineDS3231_ALARM1MINUTE0x08 //分#defineDS3231_ALARM1HOUR 0x09 //时#defineDS3231_ALARM1WEEK 0x0A //星期/日//闹铃2#defineDS3231_ALARM2MINUTE0x0b //分#defineDS3231_ALARM2HOUR 0x0c //时#defineDS3231_ALARM2WEEK 0x0d //星期/日#defineDS3231_CONTROL 0x0e //控制寄存器#defineDS3231_STATUS 0x0f //状态寄存器#defineBSY 2 //忙#defineOSF 7 //振荡器停止标志#defineDS3231_XTAL 0x10 //晶体老化寄存器#defineDS3231_TEMPERATUREH0x11 //温度寄存器高字节(8位)#defineDS3231_TEMPERATUREL0x12 //温度寄存器低字节(高2位) ucharcodedis_code[11]={0xc0,0xf9,0xa4,0xb0, //0,1,2,3 0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //4,5,6,7,8,9,offuchardatadis_buf[8];uchardatadis_index;uchardatadis_digit; ucharBCD2HEX(ucharval) //BCD转换为Byte{ uchartemp; temp=val&0x0f; val>>=4; val&=0x0f; val*=10; temp+=val; returntemp;}ucharHEX2BCD(ucharval) //B码转换为BCD码{ uchari,j,k;
ds3231高精度时钟模块程序 来自淘豆网www.taodocs.com转载请标明出处.