下载此文档

ds3231程序新版资料.doc


文档分类:建筑/环境 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
#include<>#include<>#defineucharunsignedchar#defineuintunsignedintsbitSDA=P3^6;//模拟I2C数据传送位SDAsbitSCL=P3^7;//模拟I2C时钟控制位SCL//sbitINT=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;bitack;//应答标志位#defineDS3231_WriteAddress0xD0//器件写地址#defineDS3231_ReadAddress0xD1//器件读地址#defineDS3231_SECOND0x00//秒#defineDS3231_MINUTE0x01//分#defineDS3231_HOUR0x02//时#defineDS3231_WEEK0x03//星期#defineDS3231_DAY0x04//日#defineDS3231_MONTH0x05//月#defineDS3231_YEAR0x06//年//闹铃1#defineDS3231_SALARM1ECOND0x07//秒#defineDS3231_ALARM1MINUTE0x08//分#defineDS3231_ALARM1HOUR0x09//时#defineDS3231_ALARM1WEEK0x0A//星期/日//闹铃2#defineDS3231_ALARM2MINUTE0x0b//分#defineDS3231_ALARM2HOUR0x0c//时#defineDS3231_ALARM2WEEK0x0d//星期/日#defineDS3231_CONTROL0x0e//控制寄存器#defineDS3231_STATUS0x0f//状态寄存器#defineBSY2//忙#defineOSF7//振荡器停止标志#defineDS3231_XTAL0x10//晶体老化寄存器#defineDS3231_TEMPERATUREH0x11//温度寄存器高字节(8位)#defineDS3231_TEMPERATUREL0x12//温度寄存器低字节(高2位)ucharcodedis_code[11]={0xc0,0xf9,0xa4,0xb0,//0,1,2,30x99,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;i=val/10;j=val;k=j+(i<<4);returnk;}voiddelayus(uintus){while(us--);}voidStart_I2C(){SDA=1;//发送起始条件数据信号delayus(1);SCL=1;delayus(5);//,延时SDA=0;//发送起始信号delayus(5);//起始条件锁定时间大于4μsSCL=0;//钳住I2C总线,准备发送或接收数据delayus(2);}voidStop_I2C(){SDA=0;//发送结束条件数据信号delayus(1);//发送结束条件时钟信号SCL=1;//结束条件建立时间大于4usdelayus(5);SDA=1;//发送I2C总线结束信号delayus(4);}voidSendByte(ucharc){t;for(t=0;t<8;t++)//要传送数据长度为8位{if((c<<t)&0x80)SDA=1;//判定发送位elseSDA=0;delayus(1);SCL=1;//置时钟线为高,通知被控器开始接收数据位delayus(5);//确保时钟高电平周期大于4μsSCL=0;}delayus(2);SDA=1;//8位发送完后释放数据线,准备接收应答位delayus(2);SCL=1;delayus(3);if(SDA==1)ack=0;elseack=1;//判定是否接收到应答信号SCL=0;delayus(2);}ucharRcvByte(){ucharretc;t;retc=0;SDA=1;//置数据线为输入

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人书犹药也
  • 文件大小37 KB
  • 时间2020-11-01