Ds1302 时钟芯片的使用

    Ds1302 我看过芯片资料后,很懵逼,看完我买开发板送的视频后才基本了解了使用方式.

Ds1302时钟芯片采用的是3 线SPI 接口; 这个3 线SPI 接口我之前也没学到,又去了解了3 线SPI 接口;了解前先了解 什么是SPI;

   SPI 是串行外围接口的一种, 时CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信, 全双工就是 即可以发,又可以收的通信.SPI接口是以主从方式工作的,通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:
(1)MOSI – 主器件数据输出,从器件数据输入
(2)MISO – 主器件数据输入,从器件数据输出
(3)SCLK – 时钟信号,由主器件产生
(4)/CS  – 从器件使能信号,由主器件控制

3 线SPI 接口就是把MOSI 和MOSO 公用一条线.

这个我在网上找的DS1302 的芯片管脚图,

管脚定义 

X1、X2:32.768KHz晶振接入引脚。
GND:地。
RST(非):复位引脚,低电平有效,操作时高电平
I/O:数据输入/输出引脚,具有三态功能。
SCLK:串行时钟输入引脚。
Vcc1:工作电源引脚。
Vcc2:备用电源引脚。 接入电池断电时提供1302电源
DS1302有一个控制寄存器、12个日历、时钟寄存器和31个RAM。可读写,
我这次没用他的RAM,就读取了时钟寄存器里的秒 分 时,通过8个八段数码管显示.可以说是相当简陋了.步骤我是先用思维导图大概理了一遍; 有问题还望提出,

 在操作DS1302时 先初始化时间既写入当前时间,  控制字是由以下规则确定的,无论读写都要先写入控制字,及选择模式 和操作的寄存器,传送的第一个8位字节就是控制字,如果是读那么第二给八位数据就是读取的内容,写就是要写入的内容,但在写时要先关闭写入保护,不然无法写入.写入后也要开启保护. 在读写过程中,读写都是一位一位的读 利用循环实现,读到的数据通过移位保存在无符号char的类型中,.

 

写入控制字:以下摘抄的!!!

控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下:

  D7

D6

D5

D4

D3

D2

D1

D0

  1

RAM/CK

A4

A3

A2

A1

A0

RD/W

         D7:固定为1
D6:RAM/CK位,=1片内RAM,=0日历、时钟寄存器选择位。
D5~D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择见表。
D0: 读写选择,=0写,=1读

寄存器名称

D7

D6

D5

D4

D3

D2

D1

D0

1

RAM/CK

A4

A3

A2

A1

A0

R/W

秒寄存器

1

0

0

0

0

0

0

0或1

分寄存器

1

0

0

0

0

0

1

0或1

小时寄存器

1

0

0

0

0

1

0

0或1

日寄存器

1

0

0

0

0

1

1

0或1

月寄存器

1

0

0

0

1

0

0

0或1

星期寄存器

1

0

0

0

1

0

1

0或1

年寄存器

1

0

0

0

1

1

0

0或1

寄存器名称

D7

D6

D5

D4

D3

D2

D1

D0

1

RAM/CK

A4

A3

A2

A1

A0

R/W

写保护寄存器

1

0

0

0

1

1

1

0或1

慢充电寄存器

1

0

0

1

0

0

0

0或1

时钟突发模式

1

0

1

1

1

1

1

0或1

RAM0

1

1

0

0

0

0

0

0或1

¼

1

1

¼

¼

¼

¼

¼

0或1

RAM30

1

1

1

1

1

1

0

0或1

RAM突发模式

1

1

1

1

1

1

1

0或1

DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码形式。日历、时钟寄存器的格式如表。

寄存器名称

取值范围

D7

D6

D5

D4

D3

D2

D1

D0

秒寄存器

00~59

CH

秒的十位

秒的个位

分寄存器

00~59

0

分的十位

分的个位

小时寄存器

01~12或00~23

12/24

0

A/P

HR

小时的个位

日寄存器

01~31

0

0

日的十位

日的个位

     
写完控制字紧跟就通过你选择读写进行读或写入数据,在读完成时要将时钟转换一次给芯片恢复时间,我最开始没给导致数据会时不时间断一下. 读写的时间数据都是BCD码,这个也得注意,取值范围就是普通的时间范围. 时钟是通过单片机引脚模拟的,写入是高电平,读是低电平读入;
其他感觉也没啥了.
  我实现的很简单就读取了时分秒寄存器的数据 显示 就没用其他的,带以后有机会使用更多功能我在继续增加. 主要是第一次还不知道咋写好 多多包含.不断学习,不断成长!!!

      我纯小白,学校上学期讲过单片 基本都忘差不了  就讲到 串口通讯 课程就结束了;这学期觉悟了;打算通过单片机, 入嵌入式开发; 这学期开始恶补 c语言, 从0开始 在网上找视频看,买了本书,但感觉还是看视频学的快; 不过现在找的视频都是基础视频,进阶的还没找到,求推荐>>>.

   单片机我买了一个开发板, 吃灰很久的开发板; 大一就买了,当时觉得好玩就买了,现在大四了;我觉得还有希望,就重新捡起来学了,打算在毕业前入门嵌入式; 随便把毕业设计也基于51 单片机了; 一举两得.主要最近十分艰难的找到一个工作, 感到无技术傍身以后将举步维艰; 我觉悟了, 工作要明年6月份才入职, 大四又没课,抓紧学学,工作了肯定时间会很紧,.

     迷茫了很长一段时间了,今天正式开启我的嵌入式入门之路! 我将通过博客分享我学到的, 一来巩固自己学到的; 二来 如果大家发现了我的问题了 给我指导,我又得到了提升,还能给其他人避坑,一举多得. 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻想成为大牛的小杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值