IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机--时钟芯片ds1302 -> 正文阅读

[嵌入式]51单片机--时钟芯片ds1302

1.ds1302的性能指标

1)可以计算2100年之前的秒、分、时、日、星期、月、年,并且可以调整闰年。
2)内部有31个字节静态RAM,供用户访问
3)串行数据传送方式(SPI3线接口
4)工作电压:2.0~5.5v
5) 工作电流:2v时,小于300nA(功耗低)
6)时钟或RAM数据的读写,有两种传送方式:单字节传送、多字节传送
7)主电源和负电源双电源供电(备份电源可以用电池或大电容实现)

2.SPI

1)spi的中文意思是“串行外围接口”
2)spi的应用场景:EEPROM,FLASH,实时时钟,AD转换器,数字信号处理器,数字信号解码器
3)spi接口是在CPU和外围低速器件之间进行同步串行数据传输。在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,全双工通信,数据传输速度总体比IIC快,速度可达到几Mbps。
4)spi接口工作方式:主从工作方式,通常是1个主器件及1个或多个从器件。包括4种信号:MOSI(主器件数据输出,从器件数据输入),MISO(主器件数据输入,从器件数据输出),SCLK(时钟信号,由主器件产生),/CS(从器件使能信号,由主器件控制)
5)补充:spi接口的内部硬件原理,首先它有一个时钟,这个时钟控制移位寄存器来移位,,,,,,,,,,,,,,,,
6)缺点:没有应答机制,不能确定是否接收到数据

3.ds1302硬件

在这里插入图片描述X1和X2接晶振
复位引脚CE,低电平有效
SCLK:串行时钟输入引脚
vcc1工作电源引脚
vcc2备用电源引脚(接入电源断电时,备用电池供电)

4.ds1302的寄存器及片内RAM

ds1302内部包括1个控制寄存器,12个寄存器(7个与日历、时钟相关,存放的数据是BCD码形式)和31个RAM
1)控制寄存器
用于存放ds1302的控制命令字,
ds1302的复位引脚回到高电平后写入的第一个字就是控制命令,控制着ds1302的读写过程**。在这里插入图片描述在这里插入图片描述下图是对控制字节的配置
D6=0,是时钟、日历寄存器
在这里插入图片描述D6=1,是片内31个RAM

在这里插入图片描述下面是日历、时钟寄存器
在这里插入图片描述在这里插入图片描述对于小时寄存器,D7为12/24小时的选择位。D7=1,即12小时制。D7=0,即24小时制。
在12小时模式下,D5=1是上午。D5=0是下午。D4为小时的时位。
在24小时模式下,D5和D4是小时的时位

对于秒寄存器,其CH位是时钟暂停位,为1则时钟暂停,为0则时钟启动。

写保护寄存器,WP为写保护位,WP=1写保护,WP=0未写保护。
对日历、时钟寄存器、片内RAM写时,WP清零。
对日历、时钟寄存器、片内RAM读时,WP置1。

片内RAM

在这里插入图片描述IO输入输出
在这里插入图片描述请添加图片描述

代码的实现

(1)
main()
在这里插入图片描述
初始化时钟芯片
处理数据
显示数据

(2)
初始化
在这里插入图片描述首先看一下Ds1302write(0x8E,0x00);
在这里插入图片描述它是通过配置CE SCLK IO的高低电平(即时序)来实现写入数据的。
请添加图片描述那么Ds1302write(0x8E,0x00);的参数代表什么意义呢?
在这里插入图片描述对于0x8E
需要看一下写保护寄存器的配置
若想对该寄存器实现写操作,
则要配置控制命令为1000 1110用16进制表示成0x8E。
若想对该寄存器实现读操作(不可写),
则要配置控制命令为1000 1111用16进制表示成0x8F。
这里提到的控制命令是指“ds1302的复位引脚回到高电平后写入的第一个字就是控制命令,控制着ds1302的读写过程**。”
ds1302的复位引脚回到高电平后写入的第二个字就是具体的数据
也就是说第一个字节是寄存器的地址,第二个字节是寄存器的模式
若想配置“写保护寄存器”,首先输入0x8E。
紧接着配置寄存器
配置寄存器时,按下图要求配置
在这里插入图片描述写保护寄存器,WP为写保护位,WP=1写保护,WP=0未写保护。
对日历、时钟寄存器、片内RAM写时,WP清零。
对日历、时钟寄存器、片内RAM读时,WP置1。
所以配置的数据应该为0x00
这就解释了Ds1302write(0x8E,0x00);的两个参数
到这里就完成了关闭写保护(即可以向寄存器写值)
关闭写保护之后,就要向具体的“分-秒-时-日-月-周-年”寄存器写入数据。
分-秒-时-日-月-周-年一共是7份数据
这就解释了为什么要循环7次
在这里插入图片描述代码中写入的是 Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);
WRITE_RTC_ADDR[n]是寄存器地址
TIME[n]是具体的值
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};
uchar TIME[7] = {0, 0, 0x15, 0x23, 0x09, 0x04, 0x21};

在这里插入图片描述对于各寄存器地址
注意,写的时候D0配置为0
写入时
秒:1000 0000即0x80
分:1000 0010即0x82
时:1000 0100即0x84
日:1000 0110即0x86
月:1000 1000即0x88
周:1000 1010即0x8a
年:1000 1100即0x8c

读取时
秒:1000 0001即0x81
分:1000 0011即0x83
时:1000 0101即0x85
日:1000 0111即0x87
月:1000 1001即0x89
周:1000 1011即0x8b
年:1000 1101即0x8d
在这里插入图片描述日期
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:20:39  更:2021-09-26 10:21:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:32:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码