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月份才入职, 大四又没课,抓紧学学,工作了肯定时间会很紧,.

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

版权声明:本文为CSDN博主「幻想成为大牛的小杰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_49850892/article/details/121500836

生成海报
点赞 0

幻想成为大牛的小杰

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

单片机按键扫描编程

实验四  单片机按键扫描编程 一、实验目的 1、掌握单片机按键扫描的工作方式; 2、掌握单片机按键扫描的编程方法。 二、实验内容 1、学习单片机按键扫描的工作方式; 2、扫描按键,控制LED

51单片机c语言开发工具keil安装

单片机分好几种,常见的51单片机开发需要安装keil对应c51版本,不能安装成了mdk版本。这个需要注意。目前,比较好的工具,windows下自然是keil了。但是它是收费的&#xff0c

【51单片机】数码管的静态显示

数码管的静态显示 锁存引脚高电平表示直通状态,为低电平表示锁存状态段锁存定位显示数字,位锁存定位用哪段数码管12M的晶振接两个30pf的电容,6M的晶振接20pf的电容三态:高电平,低电