DS1302是一个实时时钟芯片,带有一个备用电池,在单片机不工作的时候继续走时;单片机

自带的定时器时钟并不能够调电继续运行,不能断电,然而这个时钟芯片带有备用电池,会给1302继续提供电流。(在主电源工作时,还可以为备用电源充电)

DS1302的时序图:
原理:

三条线,配置寄存器,CE使能端一直置1;时序sclk每来一个上升沿,I/O口就写入或者读取一个字节,从低位开始,例如第一位是r或者w,用0和1表示读写两种不同的状态;

DS1302的时序模拟 写入操作:
DS1302_CE = 1;
for(i=0;i<8;i++){    DS1302_IO = Command&(0x01<<i);  //每一个上升沿就写入一个字节DS1302_SCLK = 1;  //模拟时序sclk的上升下降沿DS1302_SCLK = 0;}for(i=0;i<8;i++){    DS1302_IO = Data&(0x01<<i);  //每一个上升沿就写入一个字节DS1302_SCLK = 1;  //sclk的上升下降沿DS1302_SCLK = 0;}

这里的0x01和Command按位相与,可根据时序脉冲从低位到高位写入每一个字节。

DS1302的时序模拟 读取操作:
    DS1302_CE = 1;for(i=0;i<8;i++){    DS1302_IO = Command&(0x01<<i);  //每一个上升沿就写入一个字节DS1302_SCLK = 0; //模拟时序sclk的上升下降沿DS1302_SCLK = 1;}for(i=0;i<8;i++){    DS1302_SCLK = 1;    //模拟时序sclk的上升下降沿DS1302_SCLK = 0;if(DS1302_IO){Data = Data|(0x01<<i);  //这样就将最低位 置1}//这里  || 和 |  是不以一样的}DS1302_CE = 0;DS1302_IO=0;    //读取后将IO设置为0,否则读出的数据会出错

其中涉及到一些需要注意的地方:

    • BCD码和十进制之间的转换:
2.exern关键字的用法:

extern的理解用法请参考此处

3.“&” “|” “!” "~"的区分

& 和 | 是按位相与/相或,!是按逻辑取反,~是按位取反。

51单片机---一起来学习DS1302可调时钟(stc89c52芯片)相关推荐

  1. 51单片机独立按键数码管可调时钟显示程序

    /************************************************************************** 独立按键数码管时钟显示程序 ********** ...

  2. 51单片机——DS1302可调时钟

    目录 一.功能介绍 二.主要模块介绍 2.1 DS1302模块 2.1.1 DS1302芯片介绍 2.1.2  DS1302的使用 三.程序汇总 3.1测试文件test.c 3.2 LCD1602模块 ...

  3. 51单片机c语言电子钟(已加入调时 '整点报时功能1),51单片机c语言电子钟(已加入调时、闹铃、整点报时功能1)万年历2...

    51单片机c语言电子钟(已加入调时.闹铃.整点报时功能1)万年历2 51单片机c语言电子钟(已加入调时.闹铃.整点报时功能1)万年历1 ·一个固定数组 ·时钟,秒表,日历,闹钟 */ #include ...

  4. 基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料)

    资料编号:117 仿真图proteus 7.8 程序编译器:keil 5 编程语言:C语言 采用51单片机,用PWM控制电机脉冲频率应控制在25HZ-35HZ之间 定时1ms,1个周期30ms,脉冲频 ...

  5. 基于51单片机的PWM控制马达电机调速正反转

    资料编号:117  下面是相关功能视频演示: 117-基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料) 仿真图proteus 7.8(理论上高于7.8均可以打开) 程序编译器:ke ...

  6. 电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键

    电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键 这次课程设计要完成的是制作一个基于51单片机的电子时钟的万年历(protues仿真),需要用到1602液晶屏+DS130 ...

  7. 立创EDA入门3 通过51单片机最小板学习PCB设计

    立创EDA入门3 通过51单片机最小板学习PCB设计 一.本文目的 二.原理图设计 1. 新建工程,命名为51系统 2. 各模块原理图 3. 一些常用操作 (1)放置普通元器件 (2)封装.标签设置 ...

  8. 时钟加闹钟c语言程序,51单片机c语言电子钟(已加入调时、闹铃、整点报时功能)...

    <51单片机c语言电子钟(已加入调时.闹铃.整点报时功能)>由会员分享,可在线阅读,更多相关<51单片机c语言电子钟(已加入调时.闹铃.整点报时功能)(13页珍藏版)>请在技术 ...

  9. 【DS1302可调时钟】

    DS1302可调时钟 0.原理图 1.DS1302介绍 2.引脚定义与应用电路 3.内部结构框图 4.寄存器定义 5.时序定义 6.BCD码 7.源码 ==main.c== ==DS1302.c== ...

最新文章

  1. hbase性能优化2
  2. Andrew Ng 深度学习笔记-01-week2-课程
  3. 矩阵快速幂求大斐波那契poj3070(java)
  4. 解析性语言与编译性语言优劣对比
  5. opengl加载显示3D模型X类型文件
  6. wxWidgets:wxAutomationObject类用法
  7. 创业思路(1) - 收藏夹分享平台
  8. Navigation execution entry point
  9. weex eros框架源码解析
  10. mysql 5.5 主从同步问题_MySQL 5.5 主从复制异步、半同步以及注意事项详解
  11. Android--Activity中使用Intent传值
  12. Python基本数据类型(数字、字符串、列表、元组、集合、字典)
  13. 简历关于计算机办公软件怎么写,简历中怎么写办公软件
  14. 计算机主机内的零件有什么用,ROM和RAM分别是什么?有什么区别?与电脑的什么配件的作用是一? 爱问知识人...
  15. html中怎样隐藏列,关于jquery:隐藏/显示HTML表中的列
  16. 美国队长的工资 python代码-Python入门必学,用Python练习画个美队盾牌
  17. C++先序和中序确定二叉树
  18. Linux实验精华总结
  19. Python爬虫-爬取手机应用市场中APP下载量
  20. 微软2018年重组背后,扒一扒受影响的人与事

热门文章

  1. CAPM+APT多因子模型
  2. CString实现机理_转自数字英才
  3. 数据分析师如何“述职”?
  4. 二维数组的初始化,下标,遍历,及数组间的赋值
  5. 原来这才是高铁霸座男的真实目的!
  6. 屏幕一直显示android,lenovo!屏幕一直显示poweredbyandroid是什么意思
  7. 人工神经网络 经验公式_文科生看了会沉默,理科生看了会流泪的物理公式!你知道几个?(看完长见识)...
  8. 基于STM32蓝牙智能手环脉搏心率计步器体温显示设计
  9. React Redux 进阶: Hooks 版本用法 Custom Context 局部 Store 实践
  10. 什么是openssl