51单片机的DS1302模块使用
DS1302时钟显示
显示年月日 时钟秒
再可以通过按键调节时间
有种当初买的小手表的感觉
其实我们芯片内部也是可以用计时的,但是过分占用了芯片内部的计时模块,我们不如通过外部的时间模块DS1302来操作
单片机的定时器不能掉电继续执行,时钟芯片会有备用电池
RTC就是实时时钟,一种集成电路 通常称为时钟芯片
电源Vcc2就是主电源和单片机连接在一起
还有一个Vcc1是备用电池
GND用来接地,
我们开发板上并没有接备用电池
x1 x2固定接晶振 32.768KHZ (就是我们再通常用时钟的时候都会采用这个系列的晶振 因为这个晶振最精确最好用)
这几个串口和移位寄存器操作类似
CE芯片使能 IO数据输入/输出 SCLK 串行时钟
CE说是芯片使能 更是就像一种芯片判断的,中介开关的作用
CE为高,这些操作才有用 CE为低 这些操作就没有用
命令字 地址命令字字节
我们时钟芯片需要对寄存器进行读写 需要完成任务 在哪? 写入 什么? 在哪读出(什么 ) 这个是我们DS1302输出的,我们需要得到这两个东西 ?
在我们了解这些之后就方便操作了
地址 命令字正体现了这些 在哪写入在那读出
所有时间都存放在了内部31x8的寄存器中
寄存器内部空间开辟好了
地址和空间都规划好了 内部自动走时
我们只有进行对寄存器进行读写就能实现
访问 读写 CE是芯片使能 就是用来判断 移位寄存器 整个读出
CE为高 操作有效
I/E和SCLK 用来实现移位寄存器的用法
效果和之前LED点阵读取
寄存器都有一个地址
每个地址下就是一个数据 数据是一个字节一个字节存储的 一个字节是8位
第一个寄存器是秒寄存器
第二个分
小时
天
月
年
最下面是充电用的 我们寄存器不需要配置
地址命令字字节
我们时钟芯片需要对寄存器进行读写 需要完成任务 在哪? 写入 什么? 在哪读出(什么 ) 这个是我们DS1302输出的,我们需要得到这两个东西 ?
在我们了解这些之后就方便操作了
地址 命令字正体现了这些 在哪写入在那读出
在哪 写入 什么
在哪 读出 什么
1,在哪,就是确定在分钟还是秒还是小时
2.写入 还是读出 确定的是 实现操作的方式
3. 什么就是内容是什么
命令字一共有8位 最高位默认是1
第六位如果给1就是操作RAM
如果给0就是操作时钟
第五位到第一位就是我们的操作的东西
第0 位就是读写
命令字就是在这里的
CE的作用是当为1时才启动整个操作
在时钟上升沿在I/O端口的数据会被写入
在时钟下降沿DS1302会把数据输出
我们先讲述一下单字节的写
单字节的写
先把CE置于高电平
设置最低位R/W
然后再上升命令字的最低位就会写入单片机然后再把第一位A0 循环八次把数据都传入后 就相当于完成了写这个操作
当然另一端是一样的
然后对于读出 前面半部分是一样的
写入和读出正好对应寄存器的八位