2025蓝桥杯(单片机)备赛--扩展外设之DS1302的使用(九)

1.DS1302数据手册的使用

a. DS1302 features:

工作电压:2V-5.5V

通信协议:3线接口(CE、IO、SCLK)

计时:秒、分、小时、月日期、月、星期、年(闰年补偿器期至2100年)

b.原理图接线说明:

框图:

板子实际接线:

注意:X1,X2连接了32.768KHz的晶振,6pf电容起振

(1)DS1302使用:

address/command Byte

说明:

bit7: 1:DS1302工作,0 : DS1320不工作

bit6: 1:指定RAM数据,0 : 指定clock/calend数据

bit5-1: 指定输入或 输出的寄存器

bit0 :0 :Write ,1 :Read

DS1302操作:

数据读写: DS1302数据在clock的下降沿输出,在clock的 上升沿向DS1302输入数据。

图四:说明 数据的写入与读出 ,都是读写command后紧跟着data,上电时 ,CE必须为0,当VCC>2v时,CE=1;

数据低位先行!!!

操作步骤:

说明:DS1302储存的数据是BCD(二进制编码的十进制),而我们常使用DEC。所以要进行DEC-BCD和BCD-DEC的转换 .

BCD(Binary-Coded Decimal)

* **定义**:BCD,即二-十进制代码,是一种二进制的数字编码形式,用于二进制和十进制之间的快捷转换。它利用四个位元(bit)来储存一个十进制的数码。

* **编码方式**:在BCD编码中,每个十进制数字(0-9)都被表示为一个四位的二进制数。例如,十进制数5被表示为二进制的0101。

DEC-BCD:

两位DEC需要 两个BCD码,一个BCD码是4位,也就是每进一位需要乘2^4,相当于左移4位,先取出DEC的十位,再乘16(左移4位)得到BCD的十位,

DEC再%10得到BCD的个位。

cpp 复制代码
DECToBCD(dec)    (dec/10*16)+(dec%10)

BCD-DEC:

与上面类似:bcd/16得到高4位乘10变成十位,bcd%16得到低4位即DEC的个位。

cpp 复制代码
BCDToDEC(bcd)   (bcd/16*10)+(bcd%16 )      

1)关闭写保护,根据RTC表,应该是对0X8E这个寄存器,写0x00 。否则数据无法写入

2)操作要写入的寄存器,奇数为读取,偶数为写入。

  1. 关闭写保护,0X8E,0X80。

2.设置DS1302初始时分秒的代码

注意:注意传入参数顺序为,年月日,时分秒,不要忘了DECToBCD

cpp 复制代码
void DS1302_Init(u8 hour,u8 min,u8 sec)
    //注意传入参数顺序为,年月日,时分秒
{
    Write_Ds1302(0x8e,0x00);//关闭写保护
    Write_Ds1302(0x84,DECToBCD(hour);//时
    Write_Ds1302(0x82,DECToBCD(min));//分
    Write_Ds1302(0x80,DECToBCD(sec));//秒
    Write_Ds1302(0x8e,0x80);//打开写保护
}     

读取DS1302的时分秒:

注意:不要忘了BCDToDEC,DS1302为12MHZ正常显示

cpp 复制代码
void DS1302_Process(void)
{
    hour=BCDToDEC(Read_DS1302(0X85));
    min=BCDToDEC(Read_DS1302(0X83));
    sec=BCDToDEC(Read_DS1302(0X81));
}

相关博客:

2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--PCF8591(九)-CSDN博客

2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--PCF8591(八)-CSDN博客

2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--AT24C02(七)-CSDN博客

2025蓝桥杯(单片机)备赛--扩展外设控制之DS18B20(六)-CSDN博客

2025蓝桥杯(单片机)备赛--基本外设控制之共阳数码管(四)-CSDN博客

2025蓝桥杯(单片机)备赛--基本外设控制之继电器和蜂鸣器(三)-CSDN博客

2025蓝桥杯(单片机)备赛--基本外设控制之LED(二)_2024蓝桥杯单片机资料-CSDN博客

2025蓝桥杯(单片机)备赛--基本框架搭建(一)_蓝桥杯单片机大赛-CSDN博客

相关推荐
国科安芯2 小时前
Buck 电路调试避坑手册:国产电源芯片纹波超标、斩波不稳定解决方案
网络·单片机·嵌入式硬件·fpga开发·性能优化
易知嵌入式小菜鸡4 小时前
STM32Ccubemx-H7-24-GPS模块-ATGM336H-5N卫星导航模块
stm32·单片机·嵌入式硬件
bai5459365 小时前
STM32 常用数据类型
stm32·单片机·嵌入式硬件
AAA阿giao5 小时前
大厂面试之反转字符串:深入解析与实战演练
前端·javascript·数据结构·面试·职场和发展·编程技巧
d111111111d7 小时前
关于STM32的选项字节的问题:如果我通过操作指针把数据写在了单片机的选项字节区域那么换别的程序时候数据会进行变化吗?
笔记·stm32·单片机·嵌入式硬件·学习
steins_甲乙10 小时前
stm32入门篇2
stm32·单片机·嵌入式硬件
一枝小雨11 小时前
单片机内存布局管理:sct分散加载详解
stm32·单片机·嵌入式·编译链接·sct分散加载·单片机内存布局
小尧嵌入式12 小时前
基于HAL库实现ETH以太网
网络·arm开发·stm32·单片机·嵌入式硬件
我命由我1234512 小时前
Excel - Excel 找回意外关闭的未保存的文档
学习·职场和发展·excel·求职招聘·职场发展·运维开发·学习方法
Ka1Yan13 小时前
[数组] - LeetCode 704. 二分查找
java·开发语言·算法·leetcode·职场和发展