🚀write in front🚀
🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝💬本系列哔哩哔哩江科大51单片机的视频为主以及自己的总结梳理📚
前言:
本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。
引用:
51单片机入门教程-2020版 程序全程纯手打 从零开始入门_哔哩哔哩_bilibili
c51语言变量语句意思,C51中循环语句-CSDN博客
正文:
0. 🌿概述
在淘宝上购买了江协科技51单片机开发板套件(普中科技STC51单片机A2型号),就上在上一篇博文里说的自己计划学习下江协科技51单片机开发教程,通过STC51单片机这种MCU这种贴近于裸机的开发来增加对于系统硬件层面知识的了解和掌握。
术语和缩略语:
缩写 | 全称 | 说明 |
RTC | Real Time Clock | 实时时钟 |
1. 🚀DS1302实时时钟芯片
DS1302实时时钟芯片引脚定义如下
引脚 | 描述 |
VCC2 | 双供电配置中的主电源供应管脚 |
VCC1 | VCC1 连接到备用电源,在主电源失效时保持时间和日期数据 |
X1 | 接外部晶振 32.768KHz |
X2 | 接外部晶振 32.768KHz |
GND | 接地 |
SCLK | 串行时钟 |
I/O | 输出输出 |
CE | 使能控制位 |
🍎CE使能位控制对DS1302时间寄存器的读写,当CE=0时对寄存器的读写无效。注意CE为并不影响DS1302的计时部分,计时CE=0 DS1602的计时部分也会正常计时。
DS1302内部模块框图
DS1302命令字:
- MSB7:第7位必须为1
- MSB6:第6位为0时表示实时时钟数据,为1表示内部RAM数据。
- MSB5~MSB1:共5位表示寄存器地址
- MSB0:第0位为0表示写,为1表示读。
DS1302单字节读/写时序:
- 🧃单字节读指令时序:
🐳 CE为1高电平,使能DS1302读写。
🐳 SCLK串行时钟每次上升沿,I/O口上的数据一位移动到DS1302的移位寄存器中,I/O发送数据时先发送LSB最低位。SCLK 经过8个时钟上升沿之后,DS1302命令字传输完成。
🐳 接下来,在SCLK的时钟下降沿DS1302将命令字中要读取的指定地址的寄存器内容的一位送到I/O,SCLK每一次时钟下降沿指定要读取寄存器的下一位输出到I/O,经过8个时钟下降沿之后,要读取指定地址的寄存器里的值输出完成。DS1302寄存器读取时LSB先输出。
- 🧃单字节写指令时序:
🐳 CE为1高电平,使能DS1302读写。
🐳 SCLK串行时钟每次上升沿,I/O口上的数据一位移动到DS1302的移位寄存器中,I/O发送数据时先发送LSB最低位。SCLK 经过8个时钟上升沿之后,DS1302命令字传输完成。
🐳 接下来,要写入的数据的D0位写到I/O,SCLK串行时钟每次上升沿,I/O口上的数据一位移动到DS1302的移位寄存器中,SCLK 经过8个时钟上升沿之后要写入的数据 D0~D7写入到寄存器完成。
注意:
😎,SCLK时钟一直是由单片机控制输出的,DS1302按照SCLK时钟的时序从I/O口读取数据到移位寄存器,或者从移位寄存器输出数据到I/O口。
DS1302的寄存器地址定义