DS1302N的时钟逻辑

2024-01-02 06:54:39

时钟也是一个实时的串口,也是很简单的,不过要注意以下的要点:

要点:

(1)里面有很多数据,所以需要定义一个结构体变量,将其中的数据写进去。

(2)写进去的数字是需要转换成特定的格式,才能写进去的,同时读出来的格式也是需要特定的转换才能变成数字的。

(3)写数据是从低到高,和IIC是相反的。

(4)时钟逻辑的初始化就是将那三个信号线初始化了一下。

基本的逻辑:这里面也有读时序和写时序,时序里面也有写字节和读字节的函数,不过这里面需要注意写字节和读字节之间的衔接转换。

while (1)
    {
        Int_DS1302N_GetDate(&st_date);
        temperature = Int_DS18B20_GetTemperature();
        sprintf(str, "20%02d/%02d/%02d %s",
                (int)st_date.year,
                (int)st_date.month,
                (int)st_date.day,
                WEEK_NAME[st_date.day_of_week - 1]);
        Int_LCD1602_ShowStr(0, 0, str);
        sprintf(str, "%02d:%02d:%02d Temp:%d",
                (int)st_date.hour,
                (int)st_date.minute,
                (int)st_date.second,
                (int)temperature);
        Int_LCD1602_ShowStr(1, 0, str);
        Delay1ms(50);
    }

这个是主函数,其中需要强制转换,同时要分两次写。

文章来源:https://blog.csdn.net/Caesar2334/article/details/135330651
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。