ds1302程序流程图_ds1302中文手册

ds1302程序流程图_ds1302中文手册DS1302时钟芯片调试经验,奉上调试时钟芯片DS1302的程序时钟芯片DS1302目前得到广泛的应用,但是DS1302的调试还是很有难度的。这篇文章就来说说DS1302时钟芯片的调试经验,奉上时钟芯片调试程序贴,是网上下的,我已经通过硬件测试,绝对没有问题。DS13

DS1302时钟芯片调试经验,奉上调试时钟芯片DS1302的程序   时钟芯片DS1302目前得到广泛的应用,但是DS1302的调试还是很有难度的。这篇文章就来说说DS1302时钟芯片的调试经验,奉上时钟芯片调试程序贴,是网上下的,我已经通过硬件测试,绝对没有问题。   DS1302时钟芯片调试经验总结   1. 在上电时,RST 必须为逻辑0 直至Vcc》2.0V。同时SCLK 在RST 驱动至逻辑1 状态时必须为逻辑0。   2. 数据输入是在SCLK的上升沿,数据输出是在SCLK的下降沿。   3. 传输方式:低位先传输。   4. 时钟运行:秒寄存器的最高位(BIT7)是作为时钟控制位,当为逻辑1时,时钟停止,为0时钟运行。所以如果要时钟运行的话就必须将秒寄存器的最高位清0   5. 12/24小时模式:小时寄存器的第7位(最高位)是选择12小时制还是24小时制。当为逻辑1时选择12小时,逻辑0选择24小时。当为12小时制时,小时寄存器的第5位用来表示上午AM和下午PM,逻辑1的时候表示PM,逻辑0的时候表示AM。   6. 在企图对DS1302操作之前,必须将WP位清零。   7. 读写模式:有两种模式,可以单字节读写,以及连续多字节读写(burst mode)。在连续多字节读写时,即burst mode,地址是必须从地址0的0位开始的。如果对时钟操作,即CLOCK操作,则必须连续写满8个字节。若是对RAM操作,则可以不必须写满31个字节。   8. DS1302包含了实时时钟日历和31个字节的RAM,这里需要注意的是实时时钟日历的8个寄存器和31个字节的RAM是独立的,没有任何关系,不要混淆。31个RAM字节可以做其他用途,如闹钟等。因为DS1302有电池供电,所以RAM的内容不会丢失,相当于EEPROM了。用户可以用来实现特别的要求。   9. 时序必须严格按照其数据手册上来。   调试时钟芯片DS1302程序   C/C++ code   #define WRITE_SECOND 0x80   #define WRITE_MINUTE 0x82   #define WRITE_HOUR 0x84   #define READ_SECOND 0x81   #define READ_MINUTE 0x83   #define READ_HOUR 0x85   #define WRITE_PROTECT 0x8E   //位寻址寄存器定义   sbit ACC_7 = ACC^7;   //管脚定义   sbit SCLK = P3^5; // DS1302时钟信号 7脚   sbit DIO= P3^6; // DS1302数据信号 6脚   sbit CE = P3^7; // DS1302片选 5脚   //地址、数据发送子程序   void Write1302 ( unsigned char addr,dat )   {   unsigned char i,temp;   CE=0; //CE引脚为低,数据传送中止   SCLK=0; //清零时钟总线   CE = 1; //CE引脚为高,逻辑控制有效   //发送地址   for ( i=8; i》0; i– ) //循环8次移位   {   SCLK = 0;   temp = addr;   DIO = (bit)(temp&0x01); //每次传输低字节   addr 》》= 1; //右移一位   SCLK = 1;   }   //发送数据   for ( i=8; i》0; i– )   {   SCLK = 0;   temp = dat;   DIO = (bit)(temp&0x01);   dat 》》= 1;   SCLK = 1;   }   CE = 0;   }   //数据读取子程序   unsigned char Read1302 ( unsigned char addr )   {   unsigned char i,temp,dat1,dat2;   CE=0;   SCLK=0;   CE = 1;   //发送地址   for ( i=8; i》0; i– ) //循环8次移位   {   SCLK = 0;   temp = addr;   DIO = (bit)(temp&0x01); //每次传输低字节   addr 》》= 1; //右移一位   SCLK = 1;   }   //读取数据   for ( i=8; i》0; i– )   {   ACC_7=DIO;   SCLK = 0;   ACC》》=1;   SCLK = 1;   }   CE=0;   dat1=ACC;   dat2=dat1/16; //数据进制转换   dat1=dat1%16; //十六进制转十进制   dat1=dat1+dat2*10;   return (dat1);   }   //初始化DS1302   void Initial(void)   {   Write1302 (WRITE_PROTECT,0X00); //禁止写保护   Write1302 (WRITE_SECOND,0x56); //秒位初始化   Write1302 (WRITE_MINUTE,0x34); //分钟初始化   Write1302 (WRITE_HOUR,0x12); //小时初始化   Write1302 (WRITE_PROTECT,0x80); //允许写保护   }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/78896.html

(0)
上一篇 2024年 8月 3日 上午9:28
下一篇 2024年 8月 3日

相关推荐

关注微信