资源描述:
《DS3231高精度时钟模块程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、模块参数: 1.尺寸:38mm(长)*22mm(宽)*14mm(高) 2.重量:8g 3.工作电压:3.3--5.5V 4.时钟芯片:高精度时钟芯片DS3231 5.时钟精度:0-40℃范围内,精度2ppm,年误差约1分钟 6.带2个日历闹钟 7.可编程方波输出 8.实时时钟产生秒、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿 9.芯片内部自带温度传感器,精度为±3℃ 10.存储芯片:AT24C32(存储容量32K) 11.IIC总线接口,最高传输速度400KHz(工作电压为5V时) 12.可级联其它IIC设备,24C32地址可通过短路A
2、0/A1/A2修改,默认地址为0x57 13.带可充电电池LIR2032,保证系统断电后,时钟任然正常走动 接线说明,以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;
3、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 0
4、x01 //分#defineDS3231_HOUR 0x02 //时#defineDS3231_WEEK 0x03 //星期#defineDS3231_DAY 0x04 //日#defineDS3231_MONTH 0x05 //月#defineDS3231_YEAR 0x06 //年//闹铃1 #defineDS3231_SALARM1ECOND0x07 //秒#defineDS3231_ALARM1MINUTE0x08 //分#defineDS3231_AL
5、ARM1HOUR 0x09 //时#defineDS3231_ALARM1WEEK 0x0A //星期/日//闹铃2#defineDS3231_ALARM2MINUTE0x0b //分#defineDS3231_ALARM2HOUR 0x0c //时#defineDS3231_ALARM2WEEK 0x0d //星期/日#defineDS3231_CONTROL 0x0e //控制寄存器#defineDS3231_STATUS 0x0f //状态寄存器#defineBSY 2 //忙#def
6、ineOSF 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
7、,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码转换