查看: 3686|回复: 10

黑乌鸦的Arduino兵器库-----DS1302时钟模块

[复制链接]
  • TA的每日心情
    开心
    2019-6-3 22:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-6-1 21:40 | 显示全部楼层 |阅读模式
    本帖最后由 w466909383 于 2019-6-1 22:07 编辑


    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以  大家的回复将是我最大的动力!!!!!!!!!!!!!!!!!
    未经作者同意,禁止转载

    DS1302

    DS1302
    就是这个鬼东西了
    /* DS1302与Arduino连接方式
    CE(DS1302 pin5) --> Arduino D5
    IO(DS1302 pin6) --> Arduino D6
    SCLK(DS1302 pin7) --> Arduino D7
    */

    上代码
    [mw_shl_code=arduino,true]#include <stdio.h>
    #include <string.h>
    #include "DS1302.h"

    /* DS1302与Arduino连接方式
    CE(DS1302 pin5) --> Arduino D5
    IO(DS1302 pin6) --> Arduino D6
    SCLK(DS1302 pin7) --> Arduino D7
    */
    uint8_t CEPIN   = 9;
    uint8_t IOPIN   = 8;
    uint8_t SCLKPIN = 7;

    /* 日期变量缓存 */
    char buf[50];
    char day[10];

    /* 定义DS1302对象 */
    DS1302 rtc(CEPIN, IOPIN, SCLKPIN);


    void print_time()
    {

        Time t = rtc.time();
        /* 星期转换成字符串 */
        memset(day, 0, sizeof(day));
        switch (t.day)
        {
        case 1: strcpy(day, "Sunday"); break;
        case 2: strcpy(day, "Monday"); break;
        case 3: strcpy(day, "Tuesday"); break;
        case 4: strcpy(day, "Wednesday"); break;
        case 5: strcpy(day, "Thursday"); break;
        case 6: strcpy(day, "Friday"); break;
        case 7: strcpy(day, "Saturday"); break;
        }
        /* 日期格式化 */
        snprintf(buf, sizeof(buf), "%04d-%02d-%02d %02d:%02d:%02d %s", t.yr, t.mon, t.date, t.hr, t.min, t.sec, day);
        /* 打印输出 */
        Serial.println(buf);
    }


    void setup()
    {
        Serial.begin(9600);
        rtc.write_protect(false);
        rtc.halt(false);
       
        /* 初始化时间 */
        //Time t(2019, 5, 10, 17, 06, 0, 2);
        Time t = rtc.time();

        rtc.time(t);

        rtc.write_protect(true);

    }

    void loop()
    {   
        /* 串口显示时间 */
        print_time();
        delay(1000);
    }
    [/mw_shl_code]


    [mw_shl_code=arduino,true]/* 初始化时间 */
        //Time t(2019, 5, 10, 17, 06, 0, 2);
        //Time t = rtc.time();
    /*
    这两句就是初始化时间的  
    首次运行 放开Time t(2019, 5, 10, 17, 06, 0, 2);这一句
    然后注释掉
    Time t = rtc.time();放开这一句
    就可以了
    */[/mw_shl_code]

    想要学习更多内容加QQ群吧
    乌鸦的Arduino交流群:46127581




    DS1302.rar

    5.86 KB, 下载次数: 186

    DS1302库文件

  • TA的每日心情
    无聊
    2020-6-9 09:39
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-6-2 23:57 | 显示全部楼层
    期待后续,向你学习。
  • TA的每日心情
    开心
    2019-6-3 22:23
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-6-3 22:36 | 显示全部楼层
    感谢楼上的回复  你们的回复是我最大的动力
  • TA的每日心情
    慵懒
    2019-11-8 16:39
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2019-6-17 10:36 来自手机 | 显示全部楼层
    加油^0^~
  • TA的每日心情
    开心
    2020-7-6 22:31
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2019-9-13 22:45 | 显示全部楼层
    膜拜老大!继续努力学习
  • TA的每日心情
    开心
    2019-11-29 14:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-11-29 14:34 | 显示全部楼层
    实测可用,感谢分享。

    该用户从未签到

    发表于 2020-2-6 20:49 | 显示全部楼层
    板子原理图能给发一份嘛?

    该用户从未签到

    发表于 2020-5-16 19:55 | 显示全部楼层
    弱弱问一句,这模块如果时间不准应该怎么设置?初始化时间应该是编译时间,但是编译到最终运行差了好几秒
  • TA的每日心情
    擦汗
    2020-7-18 15:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2020-7-14 11:38 | 显示全部楼层
    有没有库的说明文件啊
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    arduinoUNO 用两个PIN控制一个spi设备(RFID)
    arduinoUNO 用两个PIN控制
    我已经测试,MRFC522的chipSelectPin 是正常的。当pin为低电平时可以正enable并都读写
    PIR和光线控制的小夜灯
    PIR和光线控制的小夜灯
    解答网友PIR和光线控制的小夜灯的提问, 1:光线暗和人走近RGB灯亮,或的逻辑关系。
    终于成功做出一个有界面的oled天气显示屏了!(小白流泪
    终于成功做出一个有界面的
    啊啊啊!忙活了一个月,终于做出来一个界面比较友好的天气oled显示屏了,在此感谢
    步进电机播放音乐
    步进电机播放音乐
    硬件:使用arduino uno板子与步进电机驱动器TB6600实物图 因为我这里用的是方波,才
    我的ESP8266继电器也不工作
    我的ESP8266继电器也不工
    代码是下的某音上的爆改车间主任控制灯泡的那一集 #define BLINKER_WIFI #define BLIN
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表