基于STM32F103C6T6的DS1302模块使用

3 篇文章 0 订阅
订阅专栏

目录

一、DS1302简介(简单看看)

1.概述

2.硬件引脚图

3.模块图 

 二、直奔程序

1.DS1302的时钟寄存器

2.DS1302的通讯时序

写时序:

读时序:

3.DS1302的初始时间设定

4.读取时间 


一、DS1302简介(简单看看)

1.概述

        DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW
        DS1302 是由DS1202 改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等
产品领域下面将主要的性能指标作一综合
􀁺 实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力
􀁺 31 8 位暂存数据存储RAM
􀁺 串行 I/O 口方式使得管脚数量最少
􀁺 宽范围工作电压2.0 5.5V
􀁺 工作电流 2.0V 时,小于300nA
􀁺 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式
􀁺 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配
􀁺 简单 3 线接口
􀁺 与 TTL 兼容Vcc=5V
􀁺 可选工业级温度范围-40 +85
􀁺 与 DS1202 兼容
􀁺 在 DS1202 基础上增加的特性
对Vcc1 有可选的涓流充电能力双电源管用于主电源和备份电源供应备份电源管脚可由电池或大容量电容输入附加的7 字节暂存存储器。

2.硬件引脚图

3.模块图 

本文使用的事带电池模块

 二、直奔程序

1.DS1302的时钟寄存器

        首先先介绍下DS1302的时钟寄存器,DS1302简单的说就是时钟,开启后就会自己运行,然后我们用单片机去读一下时间就行,而时间就存在DS1302的寄存器中。这里主要介绍用到的寄存器分别是:秒-分-时-日-月-星期-年-写保护寄存器。如下图所示:

秒寄存器:CH的意思是时钟停止位,如果写1就停止时钟即DS1302停止计时,写0则开启时钟。也可以通过读取这位来判断DS1302是否在运行。这里是10seconds的意思是秒的十位,如图读上来的值是0x36,那么这个3就是十位,6是各位,那么时间就是36s,使用的时候需要转换一下:转换公式如下 :0x36/16*10+0x36%16。16的意思是右移4位。

分寄存器:和秒差不多,少了个CH位而已。

时寄存器:bit7 是 1 的话代表是 12 小时制,0 代表是 24 小时制;bit6 固定是 0,bit5 在 12 小时制下 0 代表的是上午,1 代表的是下午,在 24 小时制下和 bit4 一起代表了小时的十 位,低 4 位代表的是小时的个位。

日/月/星期/年寄存器:和分寄存器一样,个位值是低4位。

2.DS1302的通讯时序

写时序:

类似I2C一样,先写地址,然后写数据,低位先行 在CLK上升沿的时候将DS1302采集I/O的数据。所以通过时序图简单写个写数据的程序:

#define DS1302CS   	PAout(2)//位带操作  CS使能线
#define DS1302DAT   PAout(1)//数据线
#define DS1302CLK   PAout(0)//时钟线
#define DAT_IO	GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)//读取数据线的信号

void DS1302WriteCommand(uint8_t command,uint8_t data)
{
	uint8_t i;
	DS1302CS=0; 
	DS1302CLK=0;
	DS1302CS=1;	//CS给个上升沿,让DS1302使能
	for(i=0;i<8;i++)//先写命令
	{
		DS1302CLK=0;
		DS1302DAT=((command>>i)&0x01);//每次将最低位写入
		DS1302CLK=1;
	}
	
	for(i=0;i<8;i++)//数据
	{
		DS1302CLK=0;
		DS1302DAT=((data>>i)&0x01);
		DS1302CLK=1;
	}
	DS1302CS=0;
}

读时序:

读的话需要先写寄存器地址,写完后DS1302会控制数据线 ,此时需要将数据线的模式改为输入模式。与写时序不同,读的话前8位是上升沿DS1302读取数据线数据,但是将这8位发完后,DS1302会立刻在CLK的下降沿把数据发出来。简单读程序如下:

uint8_t DS1302ReadData(uint8_t command)
{
	uint8_t i;
	uint8_t returndata=0x00;
	DS1302CS=0;
	DS1302CLK=0;
	DS1302CS=1;	//CS上升沿  DS1302运行
	
	GPIOChange(1);//这个是改数据线的GPIO配置,1为将模式改为腿玩输出 0改为上来输入
	for(i=0;i<8;i++)
	{
		DS1302CLK=0;
		DS1302DAT=((command>>i)&0x01);
		DS1302CLK=1;
	}
	
	GPIOChange(0);//这个是改数据线的配置,1为将模式改为腿玩输出 0改为上来输入
	for(i=0;i<8;i++)
	{
		DS1302CLK=0;
		returndata=returndata>>1;
		if(DAT_IO)//定义在前面写时序那
			returndata |=0x80;
		DS1302CLK=1;
	}
	DS1302CS=0;//记得拉低
	return returndata;//如果需要使用数据的进行打印的话 需要转化为十进制
}
/*********************************************/
/**************更改GPIO配置*******************/
void GPIOChange(uint8_t flag)//1写0读
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
	if(flag)			 
	 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
	else
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	
	 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
	 GPIO_Init(GPIOA, &GPIO_InitStructure);	
}

3.DS1302的初始时间设定

        第一次运行的时候先设定个时间,设定好之后后面就不需要再次设定了,所以设定一次就够。设定程序如下: 

int main(void)
 {	
	delay_init();	    	 //延时函数初始化	  
	DS1302GPIO_Init();		  	//初始化与LED连接的硬件接口
	DS1302WriteCommand(0x8E,0x00);//写使能
	DS1302WriteCommand(0x80,0x00);//设置0s
	DS1302WriteCommand(0x82,0x50);//设置0分
	DS1302WriteCommand(0x84,0x13);//设置13时
	DS1302WriteCommand(0x86,0x31);//设置日期31号
	DS1302WriteCommand(0x88,0x10);//设置12月
	DS1302WriteCommand(0x8C,0x23);//设置23年
	DS1302WriteCommand(0x8E,0x80);//关闭写功能
	while(1)
	{
	}
 }

4.读取时间 

        设置完成时间后就将设置时间的函数屏蔽掉(不屏蔽的话每次上电运行都会重新设定时间,所以设定完成后就别在设定了),然后在while里面不断的获取时间,程序如下:

 int main(void)
 {	
	delay_init();	    	 //延时函数初始化	  
	DS1302GPIO_Init();		  	//初始化与LED连接的硬件接口
/*	DS1302WriteCommand(0x8E,0x00);//写使能
	DS1302WriteCommand(0x80,0x00);//设置0s
	DS1302WriteCommand(0x82,0x50);//设置50分
	DS1302WriteCommand(0x84,0x13);//设置13时
	DS1302WriteCommand(0x86,0x31);//设置日期31号
	DS1302WriteCommand(0x88,0x10);//设置12月
	DS1302WriteCommand(0x8C,0x23);//设置23年
	DS1302WriteCommand(0x8E,0x80);//关闭写功能*/
	while(1)
	{
		date[0]=DS1302ReadData(0x8D);//年
		date[1]=DS1302ReadData(0x89);//月
		date[2]=DS1302ReadData(0x87);//日
		date[3]=DS1302ReadData(0x85);//时
		date[4]=DS1302ReadData(0x83);//分
		date[5]=DS1302ReadData(0x81);//秒
	}
 }

 通过keil仿真显示时间视频如下:

DS1302读取时间

通过仿真后可以看出,秒在不断的加1,经过测试后我这快芯片每2个小时会快1秒。 

STM32F103 驱动DS18B20
Hsy的博客
03-14 6683
转自本人博客园博客:https://www.cnblogs.com/JYU-hsy/p/9857804.html 目录 一、前言 二、环境与准备 三、硬件连接 1.寄生接法 2.正常供电 四、DS18B20的“1Wire”协议 A、初始化 B、发送ROM命令 C、发送功能命令 五、驱动编写 DS18B20.h DS18B20.c 六、问题总结 一、前言   最近在...
STM32F103x46_DS_CH_V2(2).pdf
08-19
STM32F103C6、STM32F103R6和STM32F103T6型号则有6K字节的闪存。 该微控制器还具备丰富的外设接口,包括6个定时器、2个ADC、6个通信接口等。这些接口支持USB、CAN、I2C、USART和SPI等通信协议,使其适用于需要多种...
stm32 使用DS1302 RTC时钟芯片驱动程序
07-03
编译通过的驱动程序,可以直接加入工程使用使用前需要定义一下你驱动该芯片的3个管脚 在头文件里面定义
STM32驱动DS1302
李同学
05-01 1990
使用STM32驱动DS1302实时时钟,有自己写的完整的驱动程序,简单移植即可使用。带有逻辑分析仪波形分析、理解。
DS1302时钟芯片全解析——概况,性能,MCU连接,样例代码
最新发布
Dunkle.T的博客
07-29 1623
DS1302时钟芯片全解析——概况,性能,MCU连接,样例代码
stm32驱动DS1302芯片
weixin_30478619的博客
10-07 627
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电...
STM32 DS1302驱动
01-15
STM32 DS1302 RTC 时钟 GPIO STM32f103软仿驱动时钟芯片DS1302.
STM32使用DS1302 模块
zkl389的博客
06-12 664
DS1302模块是一款由美国DALLAS公司推出的高性能、低功耗的实时时钟芯片。
STM32F103C8T6读取DS18B20串口显示程序
02-14
STM32F103C8T6是意法半导体(STMicroelectronics)生产的一款基于ARM Cortex-M3内核的微控制器,属于STM32系列的入门级产品。这款芯片具有丰富的外设接口,包括GPIO、UART、SPI、I2C等,广泛应用于嵌入式系统设计。 ...
启明欣欣stm32f103rct6开发板原理图
03-25
STM32F103RCT6是一款基于ARM Cortex-M3内核的微控制器,由意法半导体(STM)生产。这款芯片具有高性能、低功耗的特点,适用于各种嵌入式应用,如工业控制、消费电子和通信设备等。启明欣欣STM32F103RCT6开发板提供了...
STM32F103C8T6底板
11-30
STM32F103C8T6是意法半导体(STMicroelectronics)出品的一款基于ARM Cortex-M3内核的32位微控制器。这款芯片以其高性能、低功耗的特点而被广泛应用于各种嵌入式系统中,特别是对实时性能有较高要求的应用场合。 ##...
DS1302 STM32 驱动
06-25
stm32f103软仿驱动时钟芯片DS1302.
STM32 DS1302
06-26
基于STM32DS1302驱动,喜欢的可以下载
STM32函数DS1302驱动文件
02-20
根据51单片机DS1302代码移植,基于STM32函数开发原理的DS1302驱动文件。亲测可用。
STM32F103RCT6使用DS1302时钟模块
12-25
函数版本,运行后设置初始时间,通过串口通讯发送实时时间至电脑,波特率9600,本工程引脚对应PC_10->DS1302_DAT PC_11->DS1302_RST PC_12->DS1302_CLK,不固定I2C引脚,可自行在头文件更改。此工程也适用于F103其他型号(需修改工程)
STM32F103驱动DS1302程序(带注释)_STM32F103_stm32f103ds1302_ds1302
09-11
STM32f103驱动DS1302的文档说明,详细代码解释
STM32控制DS1302时钟模块获取实时时间
KINO32的博客
05-01 1552
时间记录:2024/4/30。
基于STM32DS1302时钟模块驱动程序
热门推荐
qq_43270506的博客
03-19 3万+
目录 1.项目概述 2.DS1032的数据手册解析 2.1 DS1302的引脚介绍 2.2 DS1302的通讯协议及时序 2.3 DS1302的相关寄存器 3.程序代码及其注释 4.结果演示 5.附录:7针0.96寸OLED屏驱动代码(SPI驱动) 1.项目概述 本程序采用的主控芯片为STM32F103RCT6,通过主控芯片驱动DS1302时钟模块,并将其实...
stm32-DS1302时钟模块驱动
jx5631833的博客
08-07 4687
DS1302是时钟芯片,本文介绍STM32实现时间显示。
写文章

热门文章

  • STM32使用MAX7219控制点阵屏和点阵屏级联 6583
  • 基于STM32F103C6T6的DS1302模块使用 3202
  • STM32+舵机 低成本简易宿舍蓝牙开关灯 1006
  • FreeRTOS-队列管理 962
  • FreeRTOS任务优先级更改与删除任务 541

分类专栏

  • 应用 3篇
  • CM22
  • FreeRTOS 6篇

最新评论

  • STM32+舵机 低成本简易宿舍蓝牙开关灯

    好家伙!53: 链接里面的代码没有注释哩up主

  • STM32使用MAX7219控制点阵屏和点阵屏级联

    Eden yu: 那你要对比一下哪里不一样了

  • STM32使用MAX7219控制点阵屏和点阵屏级联

    qq_41726253: 你的可以驱动吗?我的不行

  • STM32使用MAX7219控制点阵屏和点阵屏级联

    Eden yu: 显示函数一节,显示函数名未写,各位copy时记得自己加上去

  • 基于STM32F103C6T6的DS1302模块使用

    CSDN-Ada助手: 恭喜您写了第8篇博客!标题《基于STM32F103C6T6的DS1302模块使用》非常吸引人。通过您的博客,我学到了如何使用这款模块。您的文章非常详细,对于初学者来说非常友好。希望您能继续分享更多关于STM32开发的经验和技巧。 在下一篇博客中,我建议您可以深入探讨DS1302模块的更多功能和应用场景。您可以介绍一些实际项目中使用该模块的案例,或是分享一些高级功能的编程技巧。我相信您的经验和知识一定能够帮助更多的读者解决问题。 再次感谢您的分享,期待您的下一篇博客!

最新文章

  • STM32使用MAX7219控制点阵屏和点阵屏级联
  • FreeRTOS-队列管理
  • FreeRTOS任务优先级更改与删除任务
2023年9篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家太原景区玻璃钢雕塑设计舟山玻璃钢雕塑造型汽车商场美陈需要什么物料上海个性化玻璃钢雕塑供应商玻璃钢雕塑戏曲中国玻璃钢雕塑工业玻璃钢花盆费用四川佛像玻璃钢雕塑图片山西大同商场美陈玻璃钢浮雕校园不锈钢雕塑设计玻璃钢学校雕塑出售义乌玻璃钢花盆商场里美陈是什么沈阳玻璃钢雕塑厂家哪家好山西广场玻璃钢彩绘雕塑西宁玻璃钢景观雕塑设计绍兴商场美陈费用延安仿铜玻璃钢雕塑定制潍坊玻璃钢雕塑公司灵璧县玻璃钢小品雕塑哪有玻璃钢广场雕塑设计美陈玻璃钢卡通雕塑供应商家张店玻璃钢花盆花器甘南景区玻璃钢雕塑哪家好广东商城玻璃钢抽象艺术雕塑摆件蚌埠玻璃钢雕塑商家浙江省玻璃钢雕塑加工海南玻璃钢奶牛雕塑昆明欧式玻璃钢雕塑定制常州玻璃钢仿铜雕塑多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化