下载此文档

ds3231程序.docx


文档分类:汽车/机械/制造 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
接线说明,以Arduinounor3为例:代码部分:#inelude<>#>#defineueharunsignedchar#defineuintunsignedintsbitSDA=P3A6;//模拟I2C数据传送位SDA**************sbitSCL=P3A7;//模拟I2C时钟控制位SCL**************sbitINT=P3A2;sbitRESET=P3A3;〃**************sbitled0=P1A0;sbitled1=P1A1;sbitled2=P1A2;sbitled3=P1A3;sbitled4=P1A4;sbitled5=P1A5;sbitled6=P"6;sbitled7=P1A7;〃**************bitack;//应答标志位#defineDS3231WriteAddressOxDO//器件写地址**************#defineDS3231ReadAddress0xD1//器件读地址**************#defineDS3231SECOND0x00//秒#defineDS3231MINUTE0x01//分#defineDS3231HOUR0x02//时#defineDS3231WEEK0x03//星期#defineDS3231DAY0x04//#defineDS3231MONTH0x05//月#defineDS3231YEAR0x06//〃闹铃1#defineDS3231SALARM1ECOND0x07//秒#defineDS3231ALARM1MINUTE0x08//分#defineDS3231ALARM1HOUR0x09//时#defineDS3231ALARM1WEEK0x0A//星期/日〃闹铃2#defineDS3231ALARM2MINUTE0x0b//分#defineDS3231ALARM2HOUR0x0c//时#defineDS3231ALARM2WEEK0x0d//星期/日#defineDS3231CONTROL0x0e//控制寄存器#defineDS3231STATUS0x0f //状态寄存器#defineBSY2 〃忙#defineOSF7 //振荡器停止标志#defineDS3231_XTAL0x10 //晶体老化寄存器//温度寄存器高字节(8位)//温度寄存器低字节(高2位)#defineDS3231_TEMPERATUREH0x11#defineDS3231TEMPERATUREL0x12//**************//0,1,2,3//4,5,6,7,8,9,offucharcodedis_code[11]={0xc0,0xf9,0xa4,,0x92,0x82,0xf8,0x80,0x90,0xff};uchardatadis_buf[8];uchardatadis_index;uchardatadis_digit;//**************ucharBCD2HEX(ucharval)//BCD转换为Byteuchartemp;temp=val&0x0f;val>>=4;val&=0x0f;val*=10;temp+=val;returntemp;}ucharHEX2BCD(ucharval) 〃B码转换为BCD码{uchari,j,k;i=val/10;j=val-i*10; **************k=j+(i<<4);returnk;}voiddelayus(uintus) 注:单片机型号不同{while(us--);}voidStart_I2C(){SDA=1; //发送起始条件的数据信号delayus(1);SCL=1;delayus(5); //起始条件建立时间大于 ,延时SDA=O; //发送起始信号delayus(5); //起始条件锁定时间大于 4阴SCL=O; //钳住I2C总线,准备发送或接收数据delayus(2);}voidStop_l2C(){SDA=0;//发送结束条件的数据信号delayus(1);//发送结束条件的时钟信号SCL=1;//结束条件建立时间大于 4usdelayus(5);SDA=1;//发送I2C总线结束信号delayus(4);}voidSendByte(ucharc){t;for(t=O;t<8;t++) //要传送的数据长度为 8位{if((c<<t)&0x80)SDA=1; //判断发送位elseSDA=0;delayus(1);SCL=1; //置时钟线为高,通知被控器开始接收数据位delayus(5); //保证时钟高电平周期大于4阴SCL=0;}delayus(2

ds3231程序 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人maritime_4
  • 文件大小61 KB
  • 时间2020-09-28