目录
1.项目概述
2.DS1032的数据手册解析
2.1 DS1302的引脚介绍
2.2 DS1302的通讯协议及时序
2.3 DS1302的相关寄存器
3.程序代码及其注释
4.结果演示
5.附录:7针0.96寸OLED屏驱动代码(SPI驱动)
本程序采用的主控芯片为STM32F103RCT6,通过主控芯片驱动DS1302时钟模块,并将其实时时间显示在7针0.96寸OLED屏上。使用STM32的普通IO口模拟DS1302的通信时序,使用STM32的SPI外设驱动OLED屏。下面从DS1302的数据手册开始完成整个项目。

2.1DS1302引脚介绍

VCC1,VCC2是电源引脚,VCC1是主供电引脚,VCC2接备用电池,当主供电电源电量不足或者断电时,备用电池会通过VCC2及时供电,保证时钟模块在主供电引脚断电后任然会正常计时。GND是地引脚。X1,X2是有关晶振的引脚,不做深究。
CE引脚是输入引脚,在单片机从DS1302读取数据或者向其写入数据时,CE引脚必须配置为高电平。在芯片内部连接有40K下拉电阻。I/O引脚充当双向数据引脚,即数据的发送和接收都在这条线上完成。SCLK是同步时钟引脚,控制I/O引脚上数据的接收和发送。
2.2 DS1302的通讯协议及时序

指令字节启动每次的数据传输,上图说明了指令字节的构造。①位7必须为逻辑1,位7为逻辑0时指令会失效。②我们使用的不是RAM当中的寄存器及数据,故位6应该为逻辑0。③位1到位5为寄存器地址。④位0为逻辑0时表明要往指定寄存器里面写数据,为逻辑1时要从指定寄存器里面读出数据。指令字节的传输总是从位0(LSB)开始传输。

上图是ds1302通信时序图。
1.CE和时钟控制。
将CE置高将开启数据传输,CE输入提供俩个功能,首先CE开启了通信数据进入移位寄存器的通路,其次CE提供了一个可以终止单个字节或者多个字节的数据传输。
对于ds1302接收数据来说,每当时钟的上升沿时采集由单片机发送的数据位;对于ds1302发送数据来说,每当时钟的下降沿时便向外发送一位数据。如果CE置低,所有数据传输被终止I/O端口变为高阻态。需要注意的是,当CE被从0置为1时,时钟线必须为逻辑0。
2.向ds1302指定寄存器写一字节数据
先将CE拉高开启数据传输通道,之后通过16个时钟周期,在每个时钟上升沿由低位到高位地传输数据位,前8个时钟周期传输写指令字节,后八个时钟周期传输要写入寄存器的内容字节,最后将时钟线、CE拉低,完成数据传输。
3.从ds1302指定寄存器读一字节数据
先将CE拉高开启数据传输通道,之后在前8个时钟周期的每个上升沿由低位到高位传输读指令字节,从第8个时钟周期的下降沿开始,在每个时钟周期的下降沿ds1302由低位到高位地传输指定寄存器的内容字节,内容字节传输完毕后,最后将时钟线、CE拉低,完成数据读取。
4.这显然不是SPI通讯或者IIC通讯,固要拿STM32的GPIO端口模拟通信。
2.3DS1302的相关寄存器

第一列指读取相应寄存器的读指令字节,第二列指写相应寄存器的写指令字节。时间和日历可以通过读取相对应的寄存器的值得到,同时时间和日历还可以通过向对应的寄存器写数据来设置或初始化。时间和日历寄存器内容的存储形式为BCD码。
秒寄存器:bit3-bit0为秒的个位,bit4-bit6为秒的十位,均为BCD码存储形式。bit7CH(the clock halt flag)即时钟停止标志位,bit7置1时,时钟振荡器停止,不再计时;置0时,时钟振荡器起振,开始计时。
分寄存器:bit3-bit0为分的个位,bit4-bit6为分的十位。
时寄存器:bit7为高选择12小时制,为低则选择24小时制。若24小时制,bit3-bit0为小时的个位,bit5-4为小时的十位。若12小时制,bit3-bit0为小时的个位,bit4为小时的十位,bit5为高则为PM,为低则为AM。
日期寄存器:bit3-bit0为日期的个位,bit5-bit4为日期的十位。
月寄存器:bit3-bit0为月的个位,bit4为月的十位。
星期寄存器:bit2-bit0即为星期几。
年寄存器:bit3-bit0为年的个位,bit5-bit4为年的十位。
写保护寄存器:当bit7为高时,会打开写保护,阻止向任何其它寄存器写数据;当bit7为低时,会关闭写保护,这时便可以向其它寄存器写数据。因此当我们想要配置寄存器时先要关闭写保护,写好之后再打开写保护,防止误操作。
涓流充电寄存器:涓流充电在DS1302上电不做配置时是自动关闭的,不做深究。
ds1302.h
ds1302.c
main.c


oled.c
oled.h
oledfont.h
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/11829.html